主要内容

增益定时三回路自动驾驶仪的整定

本例使用系统为三回路自动驾驶仪生成平滑增益计划。

机身模型和三回路自动驾驶仪

本例使用机身俯仰轴动力学的三自由度模型。状态为地球坐标(X_e Z_e)美元,身体坐标(u, w)美元,俯仰角$\theta$,以及音高$q=\dot\theta$下图总结了惯性系和机身架、飞行轨迹角之间的关系\伽马美元,入射角\α美元,以及俯仰角度$\theta$

我们使用经典的三回路自动驾驶仪结构来控制飞行轨迹角\伽马美元.这个自动驾驶仪通过提供适当的正常加速度来调整飞行路径a_z美元(加速前进$w$).反过来,通过调整升降舵偏转产生法向加速度$\delta$引起俯仰并改变升力。自动驾驶仪在俯仰率回路中使用比例积分(PI)控制$q$和比例控制a_z美元\伽马美元循环。在Simulink中对闭环系统(机身和自动驾驶仪)进行建模。金宝app

open_system (“rct_airframeGS”)

自动增益调度

机身动力学是非线性的,空气动力和力矩取决于速度$V$发病率\α美元。以在整个过程中获得适当的性能$(\alpha,V)$飞行包线,自动驾驶仪增益必须根据\α美元$V$以补偿电厂动态的变化。此调整过程称为“增益调度”和$ \α,V $在Simulink模型中,增益调度被实现为由参数测量驱动的查找表金宝app\α美元$V$

增益调度是一种用于控制非线性或时变对象的线性技术。其思想是在各种操作条件下计算对象的线性近似值,在每个操作条件下调整控制器增益,并在操作期间交换增益作为操作条件的函数。传统增益调度包括降低三个主要步骤。

  1. 在每个操作条件下对设备进行微调和线性化

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

  3. 调节增益值,以便在工作条件之间平稳过渡。

在本例中,您通过将自动驾驶仪增益参数化为一阶多项式来组合步骤2和步骤3$ \α,V $直接调整整个飞行包络线的多项式系数。这种方法消除了步骤3,并保证平滑的增益变化作为函数\α美元$V$。此外,增益调度系数可以使用系统

微调和线性化

假设发病率\α美元在-20和20度之间变化,速度$V$在700和1400米/秒之间变化。当忽略重力时,机身动力学是对称的\α美元因此,只考虑正值。\α美元.使用5×9的线性间隔网格$(\alpha,V)$配对以覆盖飞行包线。

nA=5;%alpha值的数目nV=9;%V值的数目[alpha,V]=ndgrid(linspace(0,20,nA)*pi/180,linspace(7001400,nV));

针对每种飞行条件$(\alpha,V)$,在配平(零法向加速度和俯仰力矩)时线性化机身动力学。这需要计算升降舵偏转$\delta$音高$q$结果是稳定的$w$$q$。为此,首先在单独的Simulink模型中隔离机身模型。金宝app

mdl=“rct_机身装饰”;开放式系统(mdl)

使用operspec要指定修剪条件,请使用芬多普要计算的修剪值$\delta$$q$,并线性化机身动力学的结果工作点。有关详细信息,请参见机身的修整和线性化(金宝appSimulink控制设计).在45种飞行条件下重复以上步骤$(\alpha,V)$

计算每个部件的修剪条件$(\alpha,V)$一对

对于ct=1:nA*nVαi=alpha(ct);%发病率[rad]v_ini=v(ct);%的速度(米/秒)%指定修剪条件opspec (ct) = operspec (mdl);%Xe,Ze:已知,不稳定opspec(ct).States(1).Known=[1;1];opspec(ct).States(1).SteadyState=[0;0];% u,w:已知,w稳定opspec(ct).States(3).Known=[11];opspec(ct).States(3).SteadyState=[01];% θ:已知,不稳定opspec(ct).States(2).Known=1;opspec(ct).States(2).SteadyState=0;% q:未知,稳定opspec(ct).States(4).Known=0;opspec(ct).States(4).SteadyState=1;结束opspec=重塑(opspec,[nA nV]);

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

选项=findopOptions(“显示报告”,“关闭”);op=findop(mdl、opspec、选项);

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

G=线性化(mdl,op);G.u=“三角洲”;G.y={“α”,“V”,“q”,“az”,“伽马”,“h”};G.SamplingGrid=struct(“α”阿尔法“V”,V);

这个过程产生了一个5乘9的线性化植物模型阵列在45个飞行条件下$(\alpha,V)$.整个飞行包线内的电厂动态变化很大。

西格玛(G)标题(“机身动力学的变化”)

可调谐增益面

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

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

这将每个查找表的变量数从88个减少到4个可调表面对象来参数化每个增益曲面。请注意:

  • 调谐栅极指定“调优网格”(设计点)。这个网格应该与用于线性化的网格相匹配,但不需要与循环表断点相匹配

  • ShapeFcn指定曲面参数化的基函数(\α美元,$V$,及$\alpha V$)

每一个曲面都会使用调整结果初始化为恒定增益\α美元=10度和$V$= 1050米/秒(中档设计)。

TuningGrid=struct(“α”阿尔法“V”,V);ShapeFcn=@(alpha,V)[alpha,V,alpha*V];Kp=可调表面(“Kp”,0.1,TuningGrid,ShapeFcn);Ki=可调表面(“基”,2,调谐栅格,ShapeFcn);Ka=可调曲面(“咔”,0.001,调整网格,ShapeFcn);Kg=可调表面(“千克”,-1000,调整网格,ShapeFcn);

接下来创建一个单反调谐器用于调整增益表面的接口。在调谐网格上,使用块替换将非线性对象模型替换为线性化模型。使用setBlockParam关联可调谐增益面金伯利进程,碘化钾,灵魂,公斤具有相同名称的插值块。

BlockSubs=struct(“姓名”,“rct_airframeGS /机身模型”,“价值”G);ST0 = slTuner (“rct_airframeGS”,{“Kp”,“基”,“咔”,“千克”},BlockSubs);%登记关注点ST0.addPoint({“az_ref”,“az”,“伽马参考”,“伽马”,“三角洲”})%参数化查找表块ST0.setBlockParam(“Kp”Kp,“基”,Ki,“咔”,Ka,“千克”公斤);

自动调优

系统可以自动调整整个飞行包线的增益面系数。使用调谐目标对象以指定性能目标:

  • \伽马美元回路:以1秒的响应时间跟踪设定点,稳态误差小于2%,峰值误差小于30%。

Req1=调整目标。跟踪(“伽马参考”,“伽马”,1,0.02,1.3); 查看目标(要求1)

  • a_z美元环路:确保在低频(跟踪加速度要求)和超过10 rad/s(对测量噪声不敏感)时具有良好的干扰抑制。干扰在az_ref的位置。

RejectionProfile = frd([0.02 0.02 1.2 1.2 0.1],[0 0.02 2 15 150]);Req2 = TuningGoal。获得(“az_ref”,“az”, RejectionProfile);viewGoal (Req2)

  • $q$回路:确保良好的干扰抑制高达10 rad/s。扰动被注入到植物的输入端三角洲

Req3=调整目标。增益(“三角洲”,“az”,600*tf([0.25 0],[0.25 1]);视图目标(要求3)

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

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

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

ST = systune(ST0,[Req1 Req2 Req3 Req4]);
最终:软=1.13,硬=Inf,迭代=57

组合目标的最终值接近1,表明几乎满足了所有要求。可视化生成的增益曲面。

%获得调谐增益曲面。TGS = getBlockParam (ST);%绘制增益曲面。clf子地块(2,2,1)viewSurf(TGS.Kp)标题(“Kp”) subplot(2,2,2) viewSurf(TGS.Ki) title(“基”)子地块(2,2,3)viewSurf(TGS.Ka)标题(“咔”)子地块(2,2,4)viewSurf(TGS.Kg)标题(“千克”)

验证

首先验证调整后的自动驾驶仪在45飞行条件考虑以上。绘制对飞行路径角阶跃变化的响应和对电梯偏转阶跃扰动的响应。

clf子批次(2,1,1)步骤(getIOTransfer(ST,“伽马参考”,“伽马”),5)网格标题(“跟踪飞行轨迹角度的阶跃变化”)子批次(2,1,2)步骤(getIOTransfer(ST,“三角洲”,“az”), 3)网格标题(“对植物输入阶跃扰动的抑制”)

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

writeBlockValue(ST)

模拟自动驾驶性能的机动,使机身通过其飞行包络线的很大一部分。下面的代码相当于在Simulink模型中按下Play按钮并检查Scope块中的响应。金宝app

%指定初始条件。h_ini=1000;alpha_ini=0;v_ini=700;%模拟模型。SimOut=sim(“rct_airframeGS”,“返回工作空间输出”,“开”);%提取仿真数据。SimData =得到(SimOut,“西格苏”);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,“az”); t=模拟伽马值时间;%绘制主要飞行变量。clf子批次(2,1,1)图(t,模拟伽马值。数据(:,1),“r——”,t,模拟伽马值。数据(:,2),“b”)网格图例(“吩咐”,“实际”,“位置”,‘东南’)标题('飞行轨迹角度\伽马度数') subplot(2,1,2) plot(t,Sim_delta.Values.Data) grid title(“升降舵偏转\以度为单位的增量”)

子地块(2,1,1)图(t,模拟α值。数据)网格标题('入射角\α,单位为度') subplot(2,1,2) plot(t,Sim_V.Values.Data) grid title('速度V (m/s) ')

subplot(2,1,1) plot(t,Sim_h.Values.Data) grid title(“高度h,单位米”)子地块(2,1,2)图(t、模拟值、数据)网格标题('法向加速度a_z in g's')

在整个机动过程中,飞行轨迹角剖面的跟踪保持良好。注意,入射角的变化\α美元和速度$V$覆盖此处考虑的大部分飞行包线([-20,20]度)\α美元和[7001400]用于$V$).当自动驾驶仪调整到3000米的标称高度时,它在1000米到10000米的高度变化中表现良好。

非线性仿真结果证实,增益调度自动驾驶仪在整个飞行包线内提供一致的高性能。“增益面调整”程序为增益与调度变量的关系提供了简单的显式公式。您可以直接使用这些公式来实现更高效的硬件实现,而不是使用查找表。

另见

|(金宝appSimulink控制设计)|(金宝appSimulink控制设计)

相关实例

更多关于