主要内容

调整双回路自动驾驶仪

此示例显示如何使用Simulink控制设计调整控制空间速率和金宝app机身的垂直加速度的双环自动驾驶仪。

机身自动驾驶仪模型

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

open_system (“rct_airframe1”

自动驾驶仪由两个级联回路组成。内环控制俯仰率q,外环控制垂直加速度阿兹响应Pilot Stick命令azref.在该架构中,可调谐元件包括PI控制器增益(“AZ控制”块)和间距增益(“Q增益”块)。必须调整自动驾驶仪以响应步骤命令azref在1秒内,最小的超调。在这个例子中,我们将自动驾驶仪增益调整为一个飞行条件对应于零入射和984米/秒的速度。

为了分析机身动力学,调整机身$ \ alpha = 0 $$ v = 984米/杆.纵倾状态对应法向加速度和俯仰力矩为零(w美元$ q $稳定的)。用findop计算相应的闭环操作条件。请注意,我们添加了一个“delta修剪”输入端口,以便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)。稳态= [0 1];%:已知,不稳定opspec.states(2).known = 1;opspec.states(2).steadystate = 0;%问:未知,稳定opspec.states(4).known = 0;opspec.states(4).steadystate = 1;%积分器状态未知,不稳定opspec.States(5)。稳态= 0;opspec.States(6)。稳态= 0;op = findop (“rct_airframe1”,opspec);
操作点搜索报告:---------------------------------模型rct_airframe1的操作点搜索报告。(t=0时时变组件评估)工作点规范成功满足。状态:---------- (1.)rct_airframe1/Airframe模型/空气动力学和运动方程/运动方程(体轴)/位置x: 0 dx: 984 x: -3.05e+03 dx: 0 (2.) rct_airframe1/Airframe模型/空气动力学和运动方程/运动方程(体轴)/Theta x: 0 dx:-0.00972 (3) rct_airframe1 /机身模型/空气动力学和运动方程和运动方程(轴)/ U, w x: 984 dx: 22.7 x: 0 dx: -1.44 e-11 (0) (4) rct_airframe1 /机身模型/空气动力学和运动方程和运动方程(轴)/ q x: -0.00972 dx: 1.15 e-16 (0) (5) rct_airframe1 /集成商x: 0.000708 dx:-0.00972 (6.) rct_airframe1/az Control/Integrator/Continuous/Integrator x: 0 dx: 0.000242 Inputs: ---------- (1.) rct_airframe1/delta trim u: 0.000708 [-Inf Inf] Outputs: None ---------- .输出说明

线性化“机身模型”块计算配平条件人事处并从鳍偏转中绘制收益δ阿兹

G =线性化(“rct_airframe1”'rct_airframe1 / airframe model', op);G.InputName ='三角洲';G.OutputName = {“阿兹”“问”};bodemag (G)、网格

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

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

频域调整用loopopune

你可以使用looptune功能自动调谐多环控制系统,如积分动作,足够的稳定性边距和所需带宽等基本要求。申请looptune的实例,创建自动驾驶模型slTuner接口并指定Simulink块“AZ控制”和“Q增益”可调金宝app。还指定了修剪条件人事处正确地线性化机身动力学。

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

标记参考,控制和测量信号作为分析和调谐的兴趣点。

addPoint (ST0, {“阿兹ref”'delta fin'“阿兹”“问”});

最后,调整控制系统参数以满足1秒响应时间的要求。在频域,这大致相当于一个增益交叉频率厕所= 5 rad / s用于工厂输入“三角形鳍”的开环响应。

wc = 5;控制='delta fin';测量= {“阿兹”“问”};[圣,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,'delta fin'“阿兹”);Bodemag(TD1)网格

步骤(Td1、5)电网标题(“抗干扰”

showblockvalue.查看PI控制器的调谐值和内循环增益

showblockvalue(st)
AnalysisPoints_ = D = u1 u2 u3 u4 y1 1 0 0 0 0 y2 0 0 0 0 y3 0 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静态增益。

如果这个设计是令人满意的,就使用WrithblockValue.要将调谐值应用于Simulink模型,并在Simulink中模拟调金宝app谐控制器。

writeblockvalue(st)

MIMO设计与系统

级联回路通常用于自动驾驶仪。然而,人们可能想知道,一个单一的MIMO控制器如何同时使用了这两种功能阿兹生成执行器命令三角洲鳍将与双循环架构进行比较。尝试新的控制体系结构很容易systunelooptune.对于品种,我们现在使用systune调整以下MIMO体系结构。

open_system (“rct_airframe2”

和前面一样,计算trim条件$ \ 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)。稳态= [0 1];%:已知,不稳定opspec.states(2).known = 1;opspec.states(2).steadystate = 0;%问:未知,稳定opspec.states(4).known = 0;opspec.states(4).steadystate = 1;%控制器状态未知,不稳定opspec.states(5).steadystate = [0; 0];op = findop (“rct_airframe2”,opspec);
操作点搜索报告:---------------------------------------操作点搜索型号rct_airframe2的报告。(t=0时时变组件评估)工作点规范成功满足。州:---------(1.)rct_airframe2 /机身型号/空气动力学和运动/运动方程式(主体轴)/位置x:0 dx:984 x:-3.05e + 03 dx:0 (2.) rct_airframe2/Airframe Model/Aerodynamics & Equations of Motion/ Equations of Motion (Body Axes)/Theta x: 0 dx: -0.00972 (3.) rct_airframe2/Airframe Model/Aerodynamics & Equations of Motion/ Equations of Motion (Body Axes)/U,w x: 984 dx: 22.7 x: 0 dx: 2.46e-11 (0) (4.) rct_airframe2/Airframe Model/Aerodynamics & Equations of Motion/ Equations of Motion (Body Axes)/q x: -0.00972 dx: -1.72e-16 (0) (5.) rct_airframe2/MIMO Controller x: 0.000654 dx: -0.009 x: 3.76e-20 dx: 0.0303 Inputs: ---------- (1.) rct_airframe2/delta trim u: 0.000436 [-Inf Inf] Outputs: None ----------

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

ST0 = slTuner (“rct_airframe2”'mimo controller', op);

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

C0 =可调参数('C',2,1,2);%二阶控制器C0.D.Value (1) = 0;%将D(1)固定为零C0.D.Free (1) = false;setBlockParam (ST0'mimo controller'C0)

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

  1. 跟踪阿兹应该在1秒左右回复azref命令

  2. 带宽和碾轧:循环增益为三角洲鳍在25 rad / s之后应该在-20 db / doadade斜坡后滚动

  3. 稳定的利润:利润率为三角洲鳍应该超过7db和45度

  4. 抗干扰性:输入扰动的衰减系数应在1 rad/s下为40 dB,在0.001 rad/s下增加到100 dB。

% 追踪Req1 = TuningGoal。跟踪(“阿兹ref”“阿兹”1);%带宽和滚减Req2 = TuningGoal。MaxLoopGain ('delta fin'[1 0],特遣部队(25日));%的利润req3 = tuninggoal.margins('delta fin',7,45);%抗干扰性%使用一个FRD模型,用几个点勾画出所需的衰减轮廓频率= [0 0.001 1];MinAtt = [100 100 40];DB中的%Req4 = TuningGoal。拒绝('delta fin'、朋友(db2mag (MinAtt)、频率));Req4。焦点= [0 1];

你现在可以使用systune调整通过这些要求的控制器参数。

Allreqs = [REQ1,REQ2,REQ3 REQ4];选择= systuneOptions('OrmyStart',3);RNG(0)[ST,FSOFT] = SYSTUNE(ST0,ALLREQS,OPT);
Final: Soft = 1.42, Hard = -Inf,迭代= 47 Final: Soft = 1.42, Hard = -Inf,迭代= 62 Final: Soft = 1.14, Hard = -Inf,迭代= 84 Final: Soft = 1.14, Hard = -Inf,迭代= 102

最佳设计具有接近1的整体目标值,表明所有四种要求都几乎满足。用viewGoal检查每个要求的最佳设计。

数字(“位置”,[100,100,987,474])ViewGoal(Allreqs,ST)

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

T = getIOTransfer (ST, {“阿兹ref”'delta fin'},“阿兹”);图步骤(TR1,“b”T (1),“r”5)标题(“跟踪”) 传奇(“级联”2自由度的

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

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

也可以看看

|

相关的话题