主要内容

直升机的多回路控制

这个例子展示了如何使用slTuner而且systune调整旋翼机的多回路控制器。

直升飞机模型

这个例子使用一个8状态直升机模型在悬停修剪条件。状态向量X = [u,w,q,theta,v,p,phi,r]

  • 纵向速度u(米/秒)

  • 横向速度v(米/秒)

  • 正常的速度w(米/秒)

  • 螺旋角θ(度)

  • 横摇角φ(度)

  • 滚转率p(度/秒)

  • 节速度(度/秒)

  • 偏航率r(度/秒)。

控制器生成命令ds特区dT在度为纵向循环,横向循环,和尾桨集体使用测量θφp,r

控制体系结构

下面的Simulink模型描金宝app述了控制体系结构:

open_system (“rct_helico”

控制系统由两个反馈回路组成。内环(静态输出反馈)提供稳定性增强和解耦。外环(PI控制器)提供所需的设定值跟踪性能。主要控制目标如下:

  • 跟踪设定值的变化θφ,r零稳态误差,上升时间约2秒,最小超调,最小交叉耦合

  • 限制控制带宽以防止被忽视的高频转子动态和测量噪声

  • 提供强大的多变量增益和相位裕度(对工厂输入和输出的同时增益/相位变化的鲁棒性,参见diskmargin详情)。

我们使用40 rad/s截止的低通滤波器来部分实现第二个目标。

控制器调优

属性可以联合调优内部循环和外部循环systune命令。该命令只需要设备和控制器的模型以及所需的带宽(这是所需响应时间的函数)。在Simulink中对控制系统建模时,可以使用金宝appslTuner接口快速设置调优任务。用要调优的块列表创建该接口的实例。

ST0 = slTuner(“rct_helico”, {“软件”“皮”“PI3”SOF的});

每个可调块根据其类型自动参数化,并在Simulink模型中初始化其值(金宝app1 + 1 / s美元PI控制器为零,静态输出反馈增益为零)。对模型的仿真表明,控制系统在这些初始值下是不稳定的:

标记感兴趣的I/O信号用于定点跟踪,并识别测量稳定裕度的工厂输入和输出(控制和测量信号)。

addPoint (ST0, {“theta-ref”“phi-ref”“r-ref”})% setpoint命令addPoint (ST0, {“θ”“φ”“r”})%对应输出addPoint (ST0, {“u”“y”});

最后,利用捕获设计需求TuningGoal对象。在本例中,我们使用以下需求:

  • 跟踪需求:θφr步进命令theta_refphi_refr_ref必须类似于带有一秒时间常数的一阶解耦响应吗

  • 稳定的利润:工厂输入的多变量增益和相位裕度u以及植物产量y必须至少5分贝和40度

  • 快速动态:闭环极点的幅值不得超过25,以防止快速动态和瞬态瞬变

%与参考型号1/(s+1)不匹配小于20%TrackReq = TuningGoal。StepTracking ({“theta-ref”“phi-ref”“r-ref”},{“θ”“φ”“r”1)};TrackReq。RelGap = 0.2;装置输入和输出的增益和相位裕度MarginReq1 =调优目标。利润(“u”5、40);MarginReq2 =调优目标。利润(“y”5、40);%限制快速动态MaxFrequency = 25;PoleReq = TuningGoal.Poles(0,0,MaxFrequency);

您现在可以使用systune共同调优控制器的所有参数。这将返回调优后的版本相约控制系统的ST0

AllReqs = [TrackReq,MarginReq1,MarginReq2,PoleReq];ST1 = systune(ST0,AllReqs);
最终:软= 1.12,硬= -Inf,迭代= 71

最终值接近于1,因此基本满足了需求。将阶跃命令的调谐响应绘制为theta, phi, r:

T1 = getIOTransfer(ST1,{“theta-ref”“phi-ref”“r-ref”},{“θ”“φ”“r”});步骤(T1, 5)

上升时间约为2秒,无超调,交叉耦合小。你可以使用viewGoal要更彻底地验证每个需求,包括对多变量稳定裕度的可视化评估(参见diskmargin细节):

图(“位置”[100100900474]) viewGoal (AllReqs相约)

检查PI控制器的调优值和静态输出反馈增益。

showTunable(死神)
Block 1: rct_helico/PI1 = 1 Kp + Ki *——s with Kp = 1.05, Ki = 2.07名称:PI1并行形式的连续时间PI控制器。----------------------------------- 块2:rct_helico / PI2 = 1 + Ki *——年代Kp = -0.101, Ki = -1.35名称:皮连续时间比例积分控制器并联形式。----------------------------------- 块3:rct_helico / PI3 = 1 + Ki *——年代Kp = 0.134, Ki = -2.2名称:PI3连续时间比例积分控制器并联形式。----------------------------------- Block 4: rct_helico/SOF = D = u1 u2 u3 u4 u5 y1 2.207 -0.3103 -0.003368 0.7854 -0.01519 y2 -0.1922 -1.292 0.01818 -0.08516 -0.1195 y3 -0.0168 -0.01179 -1.892 -0.004041 0.06753名称:SOF静态增益。

内循环的好处

你可能想知道静态输出反馈是否必要,PID控制器是否不足以控制直升机。这个问题很容易通过重新调整打开内环的控制器来回答。的后面添加一个循环开口,从而打破内部循环SOF布洛克:

addOpening (ST0SOF的

然后取出SOF块,并使用正确的循环符号将PI块重新参数化为完整的pid(从第一个设计推断)。

PID = PID (0,0.001,0.001,.01);% PID控制器的初始猜测removeBlock (ST0SOF的);setBlockParam (ST0...“软件”tunablePID (“C1”PID),...“皮”tunablePID (C2的pid),...“PI3”tunablePID (“C3”pid));

重新调优三个PID控制器,并绘制闭环阶跃响应图。

ST2 = systune(ST0,AllReqs);
最终:软= 4.94,硬= -Inf,迭代= 67
T2 = getIOTransfer(ST2,{“theta-ref”“phi-ref”“r-ref”},{“θ”“φ”“r”});图中,步骤(T2, 5)

最终值不再接近1,阶跃响应证实了上升时间、超调和解耦方面较差的性能。这表明,内循环有一个重要的稳定作用,应该被保留。

另请参阅

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

相关的话题