主要内容

调整双回路自动驾驶仪

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

机身自动驾驶仪模型

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

open_system (“rct_airframe1”

自动驾驶仪由两个级联回路组成。内环控制俯仰速率q,外环控制垂直加速度阿兹响应飞行员的操纵杆指令azref.在这个架构中,可调元素包括PI控制器增益(“az Control”块)和俯仰增益(“q增益”块)。自动驾驶仪必须调整以响应步进命令azref在大约1秒内,最小的超调。在本例中,我们针对一个飞行条件调整自动驾驶仪增益,该飞行条件对应于零入射和984米/秒的速度。

为了分析机身动力学,修剪机身为\α= 0美元而且$V = 9.84 m/s$.纵摇条件对应于零法向加速度和俯仰力矩(w美元而且问美元稳定)。使用findop计算相应的闭环工况。请注意,我们添加了一个“delta trim”输入端口,以便findop可以调整翅片偏转,以产生所需的平衡力和力矩。

Opspec = operspec(“rct_airframe1”);指定配平条件Xe,Ze:已知,不稳定opspec.States(1)。已知= [1;1];opspec.States(1)。SteadyState = [0;0];% u,w:已知,w稳定opspec.States(3)。已知= [1 1];opspec.States(3)。SteadyState = [0 1];% theta:已知,不稳定opspec.States(2)。已知= 1;opspec.States(2)。SteadyState = 0;% q:未知,稳定opspec.States(4)。已知= 0;opspec.States(4)。SteadyState = 1;积分器状态未知,不稳定opspec.States(5)。SteadyState = 0;opspec.States(6)。SteadyState = 0;Op = findop(“rct_airframe1”, opspec);
操作点搜索报告:--------------------------------- opreport =模型rct_airframe1的操作点搜索报告。(time - varying Components evaluate at time t=0)满足工作点规格。状态:---------- Min xMax dxMin dx dxMax ___________ ___________ ___________ ___________ ___________ ___________ (1.) rct_airframe1/机身模型/空气动力学和运动方程/运动方程(身体轴)/位置00 0 -Inf 984 Inf -3047.9999 -3047.9999 -3047.9999 -Inf 0 Inf (2.) rct_airframe1/机身模型/空气动力学和运动方程/运动方程(身体轴)/Theta 00 0 -Inf -0.0097235 Inf (3.) rct_airframe1/机身模型/空气动力学和运动方程/运动方程/的方程身体运动(轴)/ U, w 22.6897 984 984 984负无穷到正无穷0 0 0 0 -1.4367 e-11 0 (4) rct_airframe1 /机身模型/空气动力学和运动方程和运动方程(轴)/ q负-0.0097235正0 1.1477 e-16 0 (5) rct_airframe1 /集成商负0.00070807 Inf负-0.0097235正(6)rct_airframe1 / az控制/集成商/连续/集成商负0正正输入负0.00024207 : ---------- 最小u最大  __________ __________ __________ ( 1) rct_airframe1 /δ削减负0.00070807正输出:没有一个  ----------

线性化“机身模型”块计算修剪条件人事处然后画出翅片偏转的增益δ阿兹而且

线性化(“rct_airframe1”“rct_airframe1 /机身模型”, op);G.InputName =“δ”;G.OutputName = {“阿兹”“问”};bodemag (G)、网格

注意机身模型有一个不稳定的极点:

极(G)
Ans = -0.0320 -0.0255 0.1253 -29.4685

频域调谐与LOOPTUNE

您可以使用looptune根据积分动作、足够的稳定裕度和所需带宽等基本要求,自动调优多回路控制系统的功能。应用looptune属性的实例,创建自动驾驶模型的实例slTuner接口,并指定Simulink块“az Control”和金宝app“q Gain”为可调的。还要指定修剪条件人事处正确线性化机身动力学。

ST0 = slTuner(“rct_airframe1”, {“阿兹控制”“问收获”}, op);

将参考、控制和测量信号标记为分析和调优的兴趣点。

addPoint (ST0, {“阿兹ref”“三角洲鳍”“阿兹”“问”});

最后,调整控制系统参数以满足1秒响应时间的要求。在频域中,这大致对应于增益交叉频率wc= 5 rad/s为植物输入“三角鳍”处的开环响应。

Wc = 5;控制=“三角洲鳍”;测量= {“阿兹”“问”};[ST,gam,Info] = looptune(ST0,Controls,Measurements,wc);
最终:峰值增益= 1.01,迭代= 73

需求是标准化的,所以接近1的最终值意味着所有需求都得到满足。通过图形验证设计来确认这一点。

图(“位置”[100100560714]) loopview(圣信息)

第一个图证实了开环响应具有积分作用和所需的增益交叉频率,而第二个图表明MIMO稳定边界是令人满意的(蓝色曲线应保持在黄色界限以下)。接下来检查来自step命令的响应azref垂直加速度阿兹

T = getIOTransfer(ST,“阿兹ref”“阿兹”);图步骤(T, 5)

加速度阿兹不跟踪azref尽管在循环中有一个积分器。这是因为反馈循环作用于两个变量阿兹而且我们还没有指定应该跟踪哪一个azref

添加跟踪需求

为了解决这个问题,添加一个明确的需求阿兹应该遵循step命令吗azref响应时间为1秒。同时将增益交叉要求放宽到间隔[3,12],让调谐器找到合适的增益交叉频率。

TrackReq = TuningGoal。跟踪(“阿兹ref”“阿兹”1);ST = looptune(ST0,控制,测量,[3,12],TrackReq);
最终:峰值增益= 1.23,迭代= 54

阶跃响应azref阿兹现在令人满意:

Tr1 = getIOTransfer(ST,“阿兹ref”“阿兹”);步骤(Tr1 5)网格

还可以通过观察植物输入的扰动的响应来检查扰动抑制特性

t1 = getIOTransfer(ST,“三角洲鳍”“阿兹”);bodemag (Td1)网格

步骤(Td1,5)网格标题(“抗干扰”

使用showBlockValue可以看到PI控制器和内环路增益的调优值

showBlockValue (ST)
AnalysisPoints_ = D = u1 u2 u3 u4 y1 1 0 0 0 y2 0 1 0 0 y3 0 0 1 0 y4 0 0 0 1名称:AnalysisPoints_静态增益。----------------------------------- 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”

与前面一样,计算的修剪条件\α= 0美元而且$V = 9.84 m/s$

Opspec = operspec(“rct_airframe2”);指定配平条件Xe,Ze:已知,不稳定opspec.States(1)。已知= [1;1];opspec.States(1)。SteadyState = [0;0];% u,w:已知,w稳定opspec.States(3)。已知= [1 1];opspec.States(3)。SteadyState = [0 1];% theta:已知,不稳定opspec.States(2)。已知= 1;opspec.States(2)。SteadyState = 0;% q:未知,稳定opspec.States(4)。已知= 0;opspec.States(4)。SteadyState = 1;%控制器状态未知,不稳定opspec.States(5)。SteadyState = [0;0];Op = findop(“rct_airframe2”, opspec);
操作点搜索报告:--------------------------------- opreport =模型rct_airframe2的操作点搜索报告。(time - varying Components evaluate at time t=0)满足工作点规格。状态:---------- Min xMax dxMin dx dxMax ___________ ___________ ___________ ___________ ___________ ___________ (1.) rct_airframe2/机身模型/空气动力学和运动方程/运动方程(身体轴)/位置00 0 -Inf 984 Inf -3047.9999 -3047.9999 -3047.9999 -Inf 0 Inf (2.) rct_airframe2/机身模型/空气动力学和运动方程/运动方程(身体轴)/Theta 00 0 -Inf -0.0097235 Inf (3.) rct_airframe2/机身模型/空气动力学和运动方程/运动方程/的方程运动(身体轴)/U,w 984 984 984 -Inf 22.6897 Inf 000 0 2.4588e-11 0 (4.) rct_airframe2/机身模型/空气动力学和运动方程/运动方程(身体轴)/q -Inf -0.0097235 Inf 0 -4.0169e-16 0 (5.) rct_airframe2/MIMO控制器-Inf 0.00065361 Inf -Inf -0.0089973 Inf -Inf 2.6167e-19 Inf -Inf 0.030259 Inf输入:---------- Min U Max __________ __________ __________ (1.) rct_airframe2/delta trim -Inf 0.00043574 Inf输出:无----------

looptune,使用slTuner接口配置Simulink模型进行调优。金宝app注意,感兴趣的信号已经在Simulink模型中标记为线性分析点。金宝app

ST0 = slTuner(“rct_airframe2”“那控制器”, op);

尝试二级MIMO控制器与零馈通从e三角洲鳍.为此,创建所需的控制器参数化,并将其与“MIMO控制器”块关联使用setBlockParam

C0 =可调(“C”、2、1、2);%二阶控制器c . d . value (1) = 0;修正D(1)为零c . d . free (1) = false;setBlockParam (ST0“那控制器”C0)

接下来创建调优需求。这里我们使用以下四个需求:

  1. 跟踪阿兹应该在1秒内对azref命令

  2. 带宽和滚转:循环增益三角洲鳍应该在25 rad/s后滚转,斜率为-20 dB/decade

  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];% (dB)Req4 =调优目标。拒绝(“三角洲鳍”、朋友(db2mag (MinAtt)、频率));Req4。焦点= [0 1];

您现在可以使用systune根据这些要求调优控制器参数。

AllReqs = [Req1,Req2,Req3 Req4];Opt = systuneOptions(“RandomStart”3);rng(0) [ST,fSoft] = systune(ST0,AllReqs,Opt);
Final: Soft = 1.42, Hard = -Inf, Iterations = 47 Final: Soft = 1.42, Hard = -Inf, Iterations = 62 Final: Soft = 1.14, Hard = -Inf, Iterations = 78 Final: Soft = 1.14, Hard = -Inf, Iterations = 118

最佳设计的总体目标值接近1,表明几乎满足了所有四个要求。使用viewGoal检查每一项需求以获得最佳设计。

图(“位置”[100100987474]) viewGoal (AllReqs圣)

计算闭环响应,并与双回路设计进行比较。

T = getIOTransfer(ST,{“阿兹ref”“三角洲鳍”},“阿兹”);图步骤(Tr1,“b”T (1),“r”5)标题(“跟踪”)传说(“级联”2自由度的

步骤(Td1、“b”T (2),“r”5)标题(“抗干扰”)传说(“级联”2自由度的

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

另请参阅

|

相关的话题