这个例子展示了如何使用Simulink控制设计来调整控制机身金宝app俯仰率和垂直加速度的双回路自动驾驶仪。
在Simulink中对机身动力学和自动驾驶仪进行建模。金宝app
open_system (“rct_airframe1”)
自动驾驶仪由两个级联回路组成。内环控制螺距率q,外环控制垂直加速度阿兹
响应先导斗杆指令azref
。在这种架构中,可调元件包括PI控制器增益(“az控制”块)和俯仰率增益(“q增益”块)。必须对自动驾驶仪进行调谐,以响应阶跃命令azref
大约1秒,最小的超调。在这个例子中,我们调整自动驾驶仪增益为一个飞行条件对应的零发生率和984米/秒的速度。
为了分析机身动力学,对机身进行修剪和.纵倾条件对应于零法向加速度和俯仰力矩(和稳定)。使用findop
计算相应的闭环工况。注意,我们添加了一个“delta trim”输入端口findop
可以调整鳍的挠度,以产生所需的平衡力和力矩。
opspec = operspec (“rct_airframe1”);%指定修剪条件%Xe,Ze:已知,不稳定opspec.States(1)。知道= (1,1);opspec.States(1)。稳态= (0,0);% u,w:已知,w稳定opspec.States(3)。已知= [1 1];opspec.States(3)。SteadyState = [0 1];% θ:已知,不稳定操作规范状态(2).Known=1;操作规范状态(2).SteadyState=0;%问:未知,稳定操作规范状态(4).Known=0;操作规范状态(4).SteadyState=1;积分器状态未知,不稳定opspec.States(5)。稳态= 0;opspec.States(6)。稳态= 0;op = findop (“rct_airframe1”,opspec);
工作点搜索报告:-------------------------------------opreport=型号rct_机身1的工作点搜索报告。(在t=0时评估的时变部件)成功满足工作点规范。州:——————————————————————————————————————————————————————————————————————————————————rct_机身1/机身模型/空气动力学和运动方程/运动方程(体轴)/位置0 0-Inf 984 Inf-3048-3048-3048-Inf 0 Inf(2).rct_机身1/机身模型/空气动力学和运动方程/运动方程(体轴)/θ0 0-Inf-0.0097235 Inf(3.)rct_机身1/机身模型/空气动力学和运动方程/运动方程(体轴)/U,w 984 984-Inf 22.69 Inf 0 0-1.4371e-11 0(4.)rct_机身1/机身模型/空气动力学和运动方程/运动方程(体轴)/q-Inf-0.0097235 Inf 0 1.1477e-16 0(5.)rct\u机身1/az控制/积分器/连续/积分器-Inf 0.00070807 Inf-Inf-0.0097235 Inf(6)rct\u机身1/az控制/积分器/连续/积分器-Inf 0 Inf-0 Inf-0.00024207 Inf输入:-----MinuMax
线性化“机身模型”块的计算配平条件人事处
并绘制鳍偏转的增益图δ
来阿兹
和问
:
G =线性化(“rct_airframe1”,“rct_机身1/机身模型”, op);G.InputName =“δ”;G.OutputName = {“阿兹”,“问”};bodemag (G)、网格
注意,机身模型有一个不稳定的极点:
极(G)
Ans = -0.0320 -0.0255 0.1253 -29.4685
你可以使用looptune
根据基本要求(如积分动作、足够的稳定裕度和所需带宽)自动调整多回路控制系统的功能。适用looptune
对于自动驾驶模型,创建一个实例slTuner
接口,并将Simulink块“az控制”和“q增益”指定金宝app为可调。同时指定微调条件人事处
正确线性化机身动力学。
ST0 = slTuner (“rct_airframe1”, {“阿兹控制”,“问收获”}, op);
将参考、控制和测量信号标记为分析和调整的关注点。
addPoint (ST0, {“阿兹ref”,“三角翼”,“阿兹”,“问”});
最后,调整控制系统参数以满足1秒响应时间的要求。在频域,这大致相当于一个增益交叉频率厕所
=5 rad/s,用于电厂输入“三角翼”处的开环响应。
wc = 5;控制=“三角翼”;测量= {“阿兹”,“问”};[圣,gam,信息]= looptune (ST0、控制测量、wc);
最终:峰值增益= 1.01,迭代次数= 72
需求被规范化,因此接近1的最终值意味着满足所有需求。通过图形验证设计来确认这一点。
身材(“位置”[100100560714]) loopview(圣信息)
第一张图确认开环响应具有积分作用和所需的增益交叉频率,而第二张图显示MIMO稳定边界是令人满意的(蓝色曲线应保持在黄色界限以下)。接下来检查来自step命令的响应azref
垂直加速度阿兹
:
T = getIOTransfer(圣“阿兹ref”,“阿兹”);图步骤(T, 5)
加速度阿兹
不跟踪azref
尽管在循环中存在积分器。这是因为反馈循环作用于这两个变量阿兹
和问
我们还没有指定应该跟踪哪一个azref
.
为了解决这个问题,添加一个明确的需求阿兹
应该遵循步骤命令吗azref
响应时间为1秒。还将增益交叉要求放宽到区间[3,12],让调谐器找到合适的增益交叉频率。
TrackReq = TuningGoal。跟踪(“阿兹ref”,“阿兹”1);圣= looptune (ST0、控制测量,[3,12],TrackReq);
最终:峰值增益=1.23,迭代次数=54
阶跃响应azref
来阿兹
现在满意:
Tr1=getIOTransfer(ST,“阿兹ref”,“阿兹”); 阶跃(Tr1,5)网格
同时,通过查看在电厂输入端输入的干扰响应,检查干扰抑制特性
Td1=getIOTransfer(ST,“三角翼”,“阿兹”); 博德马克(Td1)网格
步骤(Td1、5)电网标题(“抗干扰”)
使用showBlockValue
查看PI控制器和内环增益的调整值
showBlockValue (ST)
名称:AnalysisPoints_ = D = u1 u2 u3 u4 y1 1 0 0 y2 0 1 0 y3 0 0 y4 0 0 0 1----------------------------------- az_Control = 1 + Ki *——年代Kp = 0.00166, Ki = 0.0017名称:az_Control连续时间比例积分控制器并联形式。----------------------------------- q_Gain = D = 1.985 u1 y1名称:q_Gain静态增益。
如果这个设计令人满意,请使用writeBlockValue
将调整后的值应用于Simulink模型,并在Simulink中模拟金宝app调整后的控制器。
writeBlockValue(ST)
级联回路通常用于自动驾驶仪。然而,一个单一的MIMO控制器如何使用这两个阿兹
和问
生成执行器命令三角翼
可以与双环架构相媲美。尝试新的控制架构很容易systune
或looptune
. 对于多样性,我们现在使用systune
调优以下MIMO体系结构。
open_system (“rct_airframe2”)
如前所述,计算配平条件和.
opspec = operspec (“rct_airframe2”);%指定修剪条件%Xe,Ze:已知,不稳定opspec.States(1)。知道= (1,1);opspec.States(1)。稳态= (0,0);% u,w:已知,w稳定opspec.States(3)。已知= [1 1];opspec.States(3)。SteadyState = [0 1];% θ:已知,不稳定操作规范状态(2).Known=1;操作规范状态(2).SteadyState=0;%问:未知,稳定操作规范状态(4).Known=0;操作规范状态(4).SteadyState=1;%控制器状态未知,不稳定opspec.States(5)。稳态= (0,0);op = findop (“rct_airframe2”,opspec);
工作点搜索报告:--------------------------------- opreport =模型rct_airframe2的工作点搜索报告。(t=0时评估的时变分量)成功满足工作点规范。状态:---------- < 强> Min < /强> < >强x < /强> <强> Max < /强> < >强dxMin < /强> < >强dx < /强> < >强dxMax < /强> <强> ___ < /强> <强劲 >__________ 强> <强> ___ < /强> <强> ___ < /强> <强劲 >___________ 强> <强> ___ < / >强(1)rct_airframe2 /机身模型/空气动力学方程身体运动/运动方程(轴)/位置0 0 0负984正-3048 -3048 -3048 0负无穷到正无穷(2)rct_airframe2 /机身模型/空气动力学和运动方程和运动方程(轴)/θ0 0 0负-0.0097235正(3)rct_airframe2 /机身模型/空气动力学和运动方程和运动方程(轴)/ U, w 984 984 984-Inf 22.69 Inf 000 0 2.4587e-11 0 (4.) rct_airframe2/机身模型/空气动力学和运动方程/运动方程(体轴)/q -Inf -0.0097235 Inf 0 -1.7215e-16 0 (5.) rct_airframe2/MIMO控制器-Inf 0.00065361 Inf -Inf -0.0089973 Inf -Inf 3.7592e-20 Inf -Inf 0.030259 Inf输入:---------- < 强> Min < /强> <强> u < /强> <强> Max < /强> <强> ___ < /强> <强劲 >__________ 强> <强> ___ < / >强(1)rct_airframe2 /δ削减负0.00043574正输出:没有 ----------
与looptune
,使用slTuner
接口来配置用于调优的Simulink模型。金宝app注意,在Simulink模型中,感兴趣的信号已经标记为线性分析点。金宝app
ST0 = slTuner (“rct_airframe2”,“MIMO控制器”, op);
尝试一个零馈通的二阶MIMO控制器e
来三角翼
。为此,创建所需的控制器参数化,并使用setBlockParam
:
C0 =可调参数(“C”,2,1,2);%二阶控制器C0.D.Value (1) = 0;将D(1)修正为零C0.D.Free (1) = false;setBlockParam (ST0“MIMO控制器”C0)
接下来创建调优需求。这里我们采用以下四个要求:
跟踪:阿兹
应该在1秒内对azref
命令
带宽和碾轧:的环路增益三角翼
应在25 rad/s后以-20 dB/s的斜率滚动
稳定裕度:页边距三角翼
应该超过7分贝和45度
抗干扰性:输入干扰的衰减系数应在1 rad/s时为40 dB,在0.001 rad/s时增加到100 dB。
%追踪Req1 = TuningGoal。跟踪(“阿兹ref”,“阿兹”1);%带宽和滚动Req2 = TuningGoal。MaxLoopGain (“三角翼”[1 0],特遣部队(25日));%的利润Req3=调整目标。边距(“三角翼”,7,45);%抗干扰性%使用FRD模型用几个点勾勒出所需的衰减曲线频率= [0 0.001 1];MinAtt = [100 100 40];%分贝Req4 = TuningGoal。拒绝(“三角翼”、朋友(db2mag (MinAtt)、频率));Req4。焦点= [0 1];
您现在可以使用systune
根据这些要求调整控制器参数。
AllReqs=[Req1,Req2,Req3,Req4];Opt=系统选项(“随机启动”3);rng(0) [ST,fSoft] = systune(ST0,AllReqs,Opt);
最终版本:Soft=1.42,Hard=-Inf,Iterations=47最终版本:Soft=1.42,Hard=-Inf,Iterations=62最终版本:Soft=1.14,Hard=-Inf,Iterations=84最终版本:Soft=1.14,Hard=-Inf,Iterations=102
最佳设计的总体目标值接近1,表明几乎满足了所有四项要求。使用viewGoal
检查每项要求以获得最佳设计。
身材(“位置”,[100100987474])视图目标(所有需求,ST)
计算闭环响应,并与双回路设计进行比较。
T = getIOTransfer (ST, {“阿兹ref”,“三角翼”},“阿兹”);图步骤(Tr1,“b”T (1),“r”5)标题(“跟踪”)传奇(“级联”,2自由度的)
步骤(Td1,“b”,T(2),“r”5)标题(“抗干扰”)传奇(“级联”,2自由度的)
跟踪性能相似,但第二种设计具有更好的抗扰性能。