主要内容

双回路自动驾驶仪的调谐

这个例子展示了如何使用Simulink控制设计来调整控制机身金宝app俯仰率和垂直加速度的双回路自动驾驶仪。

机身自动驾驶模型

在Simulink中对机身动力学和自动驾驶仪进行建模。金宝app

open_system (“rct_airframe1”

自动驾驶仪由两个级联回路组成。内环控制螺距率q,外环控制垂直加速度阿兹响应先导斗杆指令azref。在这种架构中,可调元件包括PI控制器增益(“az控制”块)和俯仰率增益(“q增益”块)。必须对自动驾驶仪进行调谐,以响应阶跃命令azref大约1秒,最小的超调。在这个例子中,我们调整自动驾驶仪增益为一个飞行条件对应的零发生率和984米/秒的速度。

为了分析机身动力学,对机身进行修剪$\alpha=0$$V=984米/秒$.纵倾条件对应于零法向加速度和俯仰力矩(w美元$q$稳定)。使用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

级联回路通常用于自动驾驶仪。然而,一个单一的MIMO控制器如何使用这两个阿兹生成执行器命令三角翼可以与双环架构相媲美。尝试新的控制架构很容易systunelooptune. 对于多样性,我们现在使用systune调优以下MIMO体系结构。

open_system (“rct_airframe2”

如前所述,计算配平条件$\alpha=0$$V=984米/秒$

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. 跟踪阿兹应该在1秒内对azref命令

  2. 带宽和碾轧:的环路增益三角翼应在25 rad/s后以-20 dB/s的斜率滚动

  3. 稳定裕度:页边距三角翼应该超过7分贝和45度

  4. 抗干扰性:输入干扰的衰减系数应在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自由度的

跟踪性能相似,但第二种设计具有更好的抗扰性能。

另见

|

相关的话题