主要内容

增益调度三回路自动驾驶仪的调谐

这个示例使用systune为三环自动驾驶仪生成平滑增益计划。

机身模型和三环自动驾驶仪

这个例子使用了一个机身俯仰轴动力学的三自由度模型。这些状态是地球坐标$(X_e,Z_e)$,身体坐标$(u,w)$,俯仰角\θ美元,以及音高速率q = \点\θ美元.下图总结了惯性架与机体架、飞行路径角之间的关系$\gamma$,入射角$\alpha$,以及俯仰角\θ美元

我们使用一个经典的三回路自动驾驶仪结构来控制飞行路径角度$\gamma$自动驾驶仪通过提供足够的正常加速度来调整飞行路径$az$(加速度w美元).反过来,通过调整电梯偏转产生法向加速度\三角洲美元以引起俯仰和改变升力的大小。自动驾驶仪使用比例积分(PI)控制在螺距率环路问美元比例控制$az$$\gamma$循环。闭环系统(机身和自动驾驶仪)在Simulink中建模。金宝app

开放式系统(“rct_机身”

自动驾驶仪增益调度

机身动力学是非线性的,气动力和力矩依赖于速度五美元和发病率$\alpha$.以获得适当的性能(\α,V)美元飞行包络线,自动驾驶仪增益必须作为函数调整$\alpha$五美元来补偿植物动态的变化。这种调整过程称为“增益调度”$\alpha,V$称为调度变量。在Simuli金宝appnk模型中,增益调度被实现为由测量驱动的查询表$\alpha$五美元

增益调度是一种用于控制非线性或时变对象的线性技术。其思想是计算被控对象在各种运行条件下的线性逼近,在每个运行条件下调整控制器增益,并在运行期间交换增益作为运行条件的函数。常规增益调度包括以下三个主要步骤。

  1. 在每个操作条件下修剪和线性化工厂

  2. 在每个操作条件下,调整线性化动力学的控制器增益

  3. 协调增益值以提供操作条件之间的平稳过渡。

在本例中,通过将自动驾驶仪增益参数化为中的一阶多项式,组合步骤2和步骤3$\alpha,V$直接调整整个飞行包线的多项式系数。这种方法消除了第3步,并保证了平滑的增益变化随时间的变化$\alpha$五美元.此外,增益调度系数可以自动调整systune

修剪和线性化

假设$\alpha$在-20到20度之间变化,这是速度五美元在700和1400 m/s之间变化。当忽略重力时,机身动力学是对称的$\alpha$.因此,只考虑正的值$\alpha$.使用线性间隔的5 × 9网格(\α,V)美元结对覆盖飞行信封。

nA = 5;% alpha值的数量nV = 9;V值的百分比(α,V) = ndgrid (linspace(0, 20日nA) *π/ 180,linspace(700、1400、nV));

对于每种飞行状态(\α,V)美元,线性化机身动力学在修剪(零法向加速度和俯仰力矩)。这就需要计算电梯的挠度\三角洲美元和球场问美元结果是稳定的w美元问美元.要做到这一点,首先在单独的Simulink模型中隔离机身模型。金宝app

mdl =“rct_airframeTRIM”;open_system (mdl)

使用operspec要指定修剪条件,请使用findop来计算的配平值\三角洲美元问美元,并对产生的工作点的机身动力学进行线性化。有关详细信息,请参阅修剪和线性化机身(金宝app仿真软件控制设计).在45个飞行条件下重复这些步骤(\α,V)美元

计算每一个的配平条件(\α,V)美元对。

ct=1:nA*nV alpha_ini = alpha(ct);% (rad)发生率v_ini = V (ct);%速度[米/秒]指定纵倾条件操作规范(ct)=操作规范(mdl);% Xe、Ze:已知,不稳定opspec (ct) .States(1)。知道= (1,1);opspec (ct) .States(1)。稳态= (0,0);%u,w:已知,w稳定opspec (ct) .States(3)。已知= [1 1];opspec (ct) .States(3)。SteadyState = [0 1];%西塔:已知,不稳定opspec (ct) .States(2)。= 1;opspec (ct) .States(2)。稳态= 0;%问:未知,稳定opspec (ct) .States(4)。知道= 0;opspec (ct) .States(4)。稳态= 1;结束opspec =重塑(opspec,[nA nV]);

根据给定的规格修剪模型。

选择= findopOptions (“DisplayReport”,“关”);op = findop (mdl、opspec选项);

在配平条件下对模型进行线性化。

G =线性化(mdl, op);G.u =“δ”;G.y = {“阿尔法”,“V”,“问”,“阿兹”,“伽马”,“h”};G.SamplingGrid =结构(“阿尔法”α,“V”, V);

该过程在45个飞行条件下产生5×9的线性化电厂模型阵列(\α,V)美元.整个飞行包络线上的植物动态变化很大。

σ(G)标题(“机身动力学的变化”

可调增益表面

自动驾驶仪由四个增益组成$K_p, K_i, K_a, K_g作为一项功能被“安排”(调整)$\alpha$五美元。实际上,这意味着在相应的四个查找表中分别调整88个值。与其单独调整每个表项,不如将增益参数化为二维增益曲面,例如,具有简单多线性依赖关系的曲面$\alpha$五美元

$$K(\alpha,V)=K_0+K_1\alpha+K_2 V+K_3\alpha V$$

这将每个查询表的变量数量从88个减少到4个。使用tunableSurface对象参数化每个增益面。注意:

  • TuningGrid指定“调整网格”(设计点)。此网格应与用于线性化的网格匹配,但无需与循环表断点匹配

  • ShapeFcn指定表面参数化的基本函数($\alpha$,五美元,$ \αV $

使用的调优结果将每个曲面初始化为常数增益$\alpha$= 10度五美元=1050 m/s(中频设计)。

TuningGrid =结构(“阿尔法”α,“V”, V);ShapeFcn = @(alpha,V) [alpha,V,alpha*V]; / /输出Kp = tunableSurface (“金伯利进程”0.1、TuningGrid ShapeFcn);Ki = tunableSurface (“吻”2 TuningGrid ShapeFcn);Ka = tunableSurface (“卡”0.001、TuningGrid ShapeFcn);公斤= tunableSurface (“公斤”、-1000、TuningGrid ShapeFcn);

接下来创建一个slTuner调谐增益面的接口。用块替代法将非线性对象模型替换为线性化模型。使用setBlockParam将可调谐增益面关联起来Kp,Ki,,公斤具有相同名称的插值块。

BlockSubs =结构(“名字”,“rct_机身/机身模型”,“价值”,G);ST0=单反调谐器(“rct_机身”,{“金伯利进程”,“吻”,“卡”,“公斤”}, BlockSubs);%登记兴趣点ST0.addPoint ({“az_ref”,“阿兹”,“gamma_ref”,“伽马”,“δ”})参数化查找表块ST0.setBlockParam (“金伯利进程”,Kp,“吻”吻,“卡”卡,“公斤”,公斤);

自动驾驶仪调谐

systune可以自动调整增益表面系数为整个飞行包络线。使用TuningGoal用于指定性能目标的对象:

  • $\gamma$循环:以1秒响应时间跟踪设定值,小于2%的稳态误差,小于30%的峰值误差。

Req1 = TuningGoal。跟踪(“gamma_ref”,“伽马”1、0.02、1.3);viewGoal (Req1)

  • $az$环路:确保在低频(跟踪加速度需求)和超过10 rad/s(对测量噪声不敏感)的干扰抑制良好。扰动被注入az_ref地方

拒绝配置文件=frd([0.02 0.02 1.2 1.2 0.1],[0.02 2 15 150]);要求2=调整目标。增益(“az_ref”,“阿兹”,拒绝配置文件);查看目标(要求2)

  • 问美元回路:确保高达10 rad/s的良好干扰抑制。干扰注入设备输入端δ

Req3 = TuningGoal。获得(“δ”,“阿兹”, 600 *特遣部队(0.25 [0],[0.25 - 1]));viewGoal (Req3)

  • 瞬态:确保无振荡瞬态的最小阻尼比为0.35

MinDamping = 0.35;Req4 = TuningGoal.Poles (0, MinDamping);

使用systune,调整16增益表面系数,以最好地满足这些性能要求在所有45飞行条件。

ST=系统(ST0,[Req1 Req2 Req3 Req4]);
Final:软= 1.13,硬= -Inf,迭代= 57

组合目标的最终值接近于1,表明所有要求几乎都得到满足。可视化得到的增益面。

%得到调整的增益面。TGS=getBlockParam(ST);%绘制增益面。clf subplot(2,2,1) viewSurf(TGS.Kp) title(“金伯利进程”)子地块(2,2,2)viewSurf(TGS.Ki)标题(“吻”) subplot(2,2,3) viewSurf(TGS.Ka) title(“卡”) subplot(2,2,4) viewSurf(TGS.Kg) title(“公斤”

验证

首先在上述45种飞行条件下验证调谐自动驾驶仪。绘制飞行轨迹角阶跃变化响应和电梯偏转阶跃扰动响应。

clf次要情节(2,1,1)步骤(getIOTransfer(圣,“gamma_ref”,“伽马”), 5)网格标题(“航迹角阶跃变化的跟踪”次要情节(2,1,2)步骤(getIOTransfer(圣,“δ”,“阿兹”),3)网格标题(“在设备输入时抑制阶跃干扰”

响应在所有飞行条件下都是令人满意的。接下来根据非线性机身模型验证自动驾驶仪。首先使用writeBlockValue将调整结果应用于Simulink模型。这将在两个Prelookup块中金宝app指定的断点处计算每个增益曲面公式,并将结果写入相应的插值块中。

writeBlockValue (ST)

模拟机身通过大部分飞行包线的机动动作的自动驾驶仪性能。下面的代码相当于按下Simulink模型中的播放按钮并检查范围块中的响应。金宝app

%指定初始条件。h_ini = 1000;alpha_ini = 0;v_ini = 700;%模拟模型。SimOut = sim卡(“rct_机身”,“ReturnWorkspaceOutputs”,“上”);%提取仿真数据。SimData=get(SimOut,“sigsOut”);Sim_gamma = getElement (SimData,“伽马”);Sim_alpha = getElement (SimData,“阿尔法”);Sim_V = getElement (SimData,“V”);Sim_delta = getElement (SimData,“δ”);Sim_h=getElement(SimData,“h”);Sim_az = getElement (SimData,“阿兹”);t = Sim_gamma.Values.Time;%绘制主要飞行变量。clf次要情节(2,1,1)情节(t, Sim_gamma.Values.Data (: 1),“r——”t Sim_gamma.Values.Data (:, 2),“b”)网格传奇(“命令”,“实际的”,“位置”,“东南”)头衔(“飞行路径角”)子地块(2,1,2)图(t,模拟增量值。数据)网格标题('电梯偏转'

subplot(2,1,1) plot(t,Sim_alpha.Values.Data) grid title(“入射度”)子地块(2,1,2)图(t、模拟值、数据)网格标题(“速度V,单位为m/s”

子地块(2,1,1)图(t、模拟值、数据)网格标题(‘高度h(米)’) subplot(2,1,2) plot(t,Sim_az.Values.Data) grid title('法向加速度a_z在g' s中'

在整个机动过程中对飞行路径角廓线的跟踪保持良好。注意发生率的变化$\alpha$和速度五美元覆盖这里考虑的大部分飞行范围([-20,20]度)$\alpha$和(700、1400)五美元).虽然自动驾驶仪被调校为3000米的标称高度,但在1000米到10000米的高度变化时效果良好。

非线性仿真结果证实了增益调度自动驾驶仪在整个飞行包络线中始终具有良好的性能。“增益面调优”过程为增益对调度变量的依赖性提供了简单的显式公式。您可以直接使用这些公式来实现内存效率更高的硬件实现,而不是使用查找表。

另请参阅

(金宝app仿真软件控制设计)||(金宝app仿真软件控制设计)

相关的例子

更多关于