直升机的多回路控制
这个例子展示了如何使用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模型中初始化其值(金宝appPI控制器为零,静态输出反馈增益为零)。对模型的仿真表明,控制系统在这些初始值下是不稳定的:
标记感兴趣的I/O信号用于定点跟踪,并识别测量稳定裕度的工厂输入和输出(控制和测量信号)。
addPoint (ST0, {“theta-ref”,“phi-ref”,“r-ref”})% setpoint命令addPoint (ST0, {“θ”,“φ”,“r”})%对应输出addPoint (ST0, {“u”,“y”});
最后,利用捕获设计需求TuningGoal
对象。在本例中,我们使用以下需求:
跟踪需求:
θ
,φ
,r
步进命令theta_ref
,phi_ref
,r_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,阶跃响应证实了上升时间、超调和解耦方面较差的性能。这表明,内循环有一个重要的稳定作用,应该被保留。
另请参阅
systune (slTuner)
(金宝appSimulink控制设计)|slTuner
(金宝appSimulink控制设计)|TuningGoal。StepTracking
|TuningGoal。利润率
|TuningGoal。波兰人