HL-20自动驾驶仪的姿态控制- MIMO设计

这是HL-20飞行器飞行控制系统设计和调试示例系列的第4部分。本部分介绍如何调整MIMO PI体系结构,以控制车辆的横摇、俯仰和偏航。

背景

本例使用的HL-20模型改编自NASA HL-20升降体机身(航空航天方块),请参阅该系列的第1部分(HL-20机身的修整和线性化(控制系统工具箱))的详情。在第2部分和第3部分中,我们展示了如何关闭HL-20自动驾驶仪的经典SISO体系结构的内循环和调优外循环,参见HL-20自动驾驶仪的角速率控制(控制系统工具箱)和HL-20自动驾驶仪的姿态控制- SISO设计(控制系统工具箱)的详细信息。在本例中,我们将探讨外部环路切换到MIMO体系结构的好处。

在这种架构中,音调、alpha和beta的三个PI回路被一个三输入三输出PI控制器所取代,该控制器混合音调、alpha和beta测量值来计算内部回路的设定点p_demand、q_demand、r_demand。直观地说,这种架构在减少轴之间的交叉耦合方面应该更成功。注意,P和I增益是3 × 3矩阵,作为和的函数调度。

首先,加载模型,设置CTYPE到3以选择Controller块的MIMO变体,并重新应用第2部分的步骤来关闭内环(这部分设计没有改变)。注意,这将创建并配置slTuner接口ST0用于与Simulink模型交互。万博1manbetx

load_system (“csthl20_控制”) ctype = 3;%天线系统架构运行(fullfile (matlabroot“例子”“控制”“主要”“HL20recapPart2.m”) ST0
用于"csthl20_control"的slTuner调优接口:没有调优块。使用addBlock命令添加新块。9点分析 : -------------------------- 点1:信号”da;德博士”,位于“输出端口1”csthl20_control /飞行控制系统控制器的点2:信号“评定”,位于csthl20_control / HL20机身的输出端口2点3:输出端口1的csthl20_control /飞行控制系统/ Alpha_deg点4:6点:csthl20_control/Flight Control System/Controller/MIMO/Demands的'Output Port 1':点8:Signal "p_demand", located at 'Output Port 1' of csthl20_control/Flight Control System/Controller/MIMO/Roll-off2信号"r_demand",位于csthl20_control/Flight Control System/Controller/MIMO/Roll-off3的'Output Port 1'使用addopen命令添加新的永久开口。get/set access: Parameters: [] operingpoints:[](将使用模型初始条件。)BlockSubstitutions: [3x1 struct]选项:[1x1 linearize。Ts: 0

设置外部循环调优

如SISO设计(HL-20自动驾驶仪的姿态控制- SISO设计(控制系统工具箱)),第一步是获得“植物”的线性化模型,由外部环路在每个(阿尔法,贝塔)条件下看到。为了解释内环增益Kp,Kq,Kr随(alpha,beta)变化的事实,将“MIMO/Product”块替换为其线性等效,即对角增益矩阵

$$\left(\begin{array}{ccc}Kp(\alpha,beta)和#38;0和#38;0\\0和#38;Kq(\alpha,beta)和#xA;0和#38;0和#38;Kr(\alpha,beta)结束{array}\right)$$

黑色=“csthl20_control /飞行控制系统/控制器/ MIMO /产品的;Subs = [zeros(3) append(ss(Kp),ss(Kq),ss(Kr))];BlockSub4 =结构(“名字”黑色,“价值”、潜艇);ST0。(ST0 BlockSubstitutions =。BlockSubstitutions;BlockSub4];

增益调度“P”和“I”被初始化为常数对角矩阵诊断接头((0.05,0.05,-0.05)).绘制这些初始设置的角响应。

T0 = getIOTransfer (ST0,“需求”, {“Phi_deg”“阿尔法度”“Beta_deg”});步骤(T0, 6)

调优目标

为了优化MIMO增益计划,我们使用以下三个优化目标:

  • “灵敏度”目标用于指定所需的带宽(响应时间)并在低频下最大化解耦。

s =特遣部队(“年代”);R1 = TuningGoal。灵敏度({“Phi_deg”“阿尔法度”“Beta_deg”}, s);R1。焦点= [1e-2 1];R1。LoopScaling =“关闭”;viewGoal (R1)

  • 从角度要求到角度响应的闭环传递的“增益”约束。选择增益剖面是为了加强适当的滚转和限制超调(这与交叉附近的驼峰有关)。

MaxGain = 1.2 * (10/(s+10))^2;最大增益曲线R2 = TuningGoal。获得(“要求”, {“Phi_deg”“阿尔法度”“Beta_deg”}, MaxGain);viewGoal (R2)

  • “裕度”的目标要求增益裕度至少为7db,相位裕度至少为45度(在磁盘裕度的意义上)。

R3 = TuningGoal。利润(“博士da;德;”7、45);

增益调度优化

在MIMO架构中,MIMO PI控制器的增益调度由“P”和“I”块指定。回想一下,这些块输出3 × 3矩阵,并实现MIMO传递函数:

$ $ \离开(\{数组}{c}开始p_ {\ rm需求}\ \ q_ {\ rm需求}\ \ r_ {\ rm需求}\结束数组{}\右)= & # xA; \压裂{10}{s + 10} (P + I / s) & # xA; \离开(\开始{数组}{c} \ phi_ {\ rm度}\ \ \ alpha_ {\ rm度}\ \ \ beta_ {\ rm度}\结束数组{}\右)。$$

为了说明问题,我们使用MATLAB函数块来实现比例增益计划,并使用矩阵插值块来实现积分增益计划。矩阵插值块存在于“Simulink Extras”库中,是一个查找表,其中每个表项都是一个万博1manbetx矩阵。

为了优化P和I增益调度,在slTuner接口。

TunedBlocks = {“那/ P”‘MIMO/I’};ST0.addBlock (TunedBlocks)

参数化每个调谐增益计划作为一个多项式表面在alpha和beta。同样,我们用二次曲面来表示比例增益,用多线性曲面来表示积分增益。

(α, β)设计点的网格alpha_vec = 10:5:25;α%范围beta_vec = 10:5:10;%测试范围(α,β)= ndgrid (alpha_vec beta_vec);SG =结构(“α”α,“β”,β);比例增益矩阵alphabetaBasis = polyBasis (“规范”2、2);P0 = diag([0.05 0.05 -0.05]);初始(常量)值PS = tunableSurface (“P”, P0, SG,字母基础);ST0.setBlockParam (“P”、PS);积分增益矩阵alphaBasis = @(alpha) alpha;beta = @(beta) abs(beta);alphabetaBasis = ndBasis (alphaBasis betaBasis);I0 = diag([0.05 0.05 -0.05]);是= tunableSurface (“我”, I0, SG,字母基础);ST0.setBlockParam (“我”,);

最后,使用systune根据三个调整目标调整6个增益面。

ST = systune(ST0,[R1 R2 R3]);
Final:软= 1.13,硬= -Inf,迭代= 98

目标函数的最终值表示几乎达到了调整目标(当调整目标的“值”小于1时,即满足了调整目标)。绘制闭环角度响应图,并与基线设计进行比较。

T = getIOTransfer(圣“需求”, {“Phi_deg”“阿尔法度”“Beta_deg”});步骤(T0, T, 6)传说(“基线”“调”“位置”“东南”

与SISO设计相比,这些响应显着减少了超调和交叉耦合。

验证

为了进一步验证该设计,将调谐增益面推到Simulink模型中。万博1manbetx

writeBlockValue (ST)

对于Matrix Interpolation块“I”,它会在表格断点处采样增益表面,并在模型工作区中更新表格数据。对于MATLAB函数块“P”,生成增益面方程的MATLAB代码。您可以通过双击代码块来查看这段代码。

一旦您将增益推到Simulink, MIMO架构的调优万博1manbetx就完成了,您可以在着陆方法期间模拟它的行为。

这些响应与SISO设计没有太大不同(HL-20自动驾驶仪的姿态控制- SISO设计(控制系统工具箱))由于整个机动过程中的温和要求。MIMO设计的好处将在更有挑战性的机动中更明显。

另请参阅

相关话题