主要内容

直升机的多回路控制

此示例显示了如何使用SLTUNER.Systune.调整多环控制器的旋翼飞行器。

直升机模型

此示例在悬停修剪条件下使用8状态直升机模型。国家矢量x = [u,w,q,theta,v,p,phi,r]由组成

  • 纵向速度(米/秒)

  • 横向速度V.(米/秒)

  • 正常的速度W.(米/秒)

  • 螺旋角θ.(度)

  • 滚动角度φ(度)

  • 滚转率P.(deg / s)

  • 俯仰率问:(deg / s)

  • 偏航率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',{'pi1''pi2''pi3''SOF'});

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

标记对设定值跟踪感兴趣的I/O信号,并识别测量稳定裕度的装置输入和输出(控制和测量信号)。

addpoint(st0,{“theta-ref”“phi-ref”“r-ref”})%setpoint命令addpoint(st0,{'theta'“φ”'r'})%相应的输出addpoint(st0,{'U'“y”});

最后,捕获设计要求使用TuningGoal对象。我们在这个例子中使用了以下需求:

  • 跟踪要求:回应θ.φR.步骤命令theta_refPhi_ref.r_ref一定类似于一阶解耦响应具有一秒时间常数

  • 稳定性边距:工厂输入处的多变量增益和相位裕度和植物产出y必须至少为5 dB和40度

  • 快速动态:闭环磁极的幅度不得超过25,以防止快速动态和生涩的瞬变

与参考型号1/(s+1)不匹配小于20%trackreq = tuninggoal.steptracking({“theta-ref”“phi-ref”“r-ref”},{'theta'“φ”'r'1)};TrackReq。RelGap = 0.2;工厂输入和产出中的%收益和相位利润率Marginreq1 = TuningGoal.Margins('U',5,40);Marginreq2 = TuningGoal.Margins(“y”,5,40);%对快速动态的限制maxfrequency = 25;Polereq = TuningGoal.poles(0,0,MaxFrequency);

你现在可以使用Systune.共同调整所有控制器参数。这返回调整版本相约控制系统的ST0

Allreqs = [TrackReq,Margereq1,Marginreq2,Polereq];ST1 = SYSTUNE(ST0,ALLEQS);
Final:Soft = 1.12,硬= -Inf,迭代= 71

最后的值接近于1,因此需求几乎得到满足。绘制以theta, phi, r为单位的阶跃命令的调谐响应:

t1 = getiotransfer(st1,{“theta-ref”“phi-ref”“r-ref”},{'theta'“φ”'r'});步骤(T1, 5)

上升时间约为两秒,没有超调和很少的交叉耦合。您可以使用viewgoal.对于每个需求的更彻底的验证,包括对多变量稳定性裕度的可视化评估(参见diskmargin细节):

图(“位置”,[100,100,900,474])ViewGoal(Allreqs,ST1)

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

showTunable(死神)
框1:rct_helico / pi1 = 1 kp + ki * --- s用kp = 1.04,ki = 2.07名称:Pi1以并行形式的连续时间Pi控制器。--------------------------------------------- rct_helico / pi2 = 1 kp + ki * ---kp = -0.0994,ki = -1.35名称:PI2以并行形式的连续时间PI控制器。--------------------------------------------- rct_helico / pi3 = 1 kp + ki * ---S kp = 0.138,ki = -2.2名称:PI3以并行形式的连续时间PI控制器。-------------------------------------------------------- rct_helico / sof = d = u1 u2 u3 u4 u5 y12.214 -0.3123 -0.003393 0.7855 -0.01528 Y2 -0.1918 -1.293 0.01821 -0.08494 -0.1195 Y3 -0.02143 -0.01528 -1.897 -0.002676 0.06789名称:SOF静态增益。

内循环的好处

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

addOpening (ST0'SOF'

然后删除SOF从可调块列表中块并将PI块重新参数化为具有正确的环路标志的全吹PID(从第一个设计中推断)。

PID = PID(0,0.001,0.001,.01);PID控制器的初始猜测删除(ST0,'SOF');SetBlockParam(ST0,......'pi1',调音('c1',pid),......'pi2',调音('c2',-pid),......'pi3',调音('c3'pid));

重新调整三个PID控制器,并绘制闭环步进响应。

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

最终值不再接近1,步骤响应在上升时间,过冲和去耦方面确认了较差的性能。这表明内圈具有应保存的重要稳定效果。

也可以看看

|||(金宝appSimulink Control Design)|(金宝appSimulink Control Design)

相关的话题