主要内容

MATLAB工作流优化HL-20自动驾驶仪

这是示例系列的第5部分的设计和优化HL-20飞行器的飞行控制系统。这部分展示了如何执行大部分的设计与仿真软件MATLAB®没有交互®模型。金宝app

背景

下面的例子使用了改编自HL-20模型NASA HL-20解除身体机体(航天Blockset),请参阅本系列的第1部分(削减和HL-20机身的线性化详情)。飞机的自动驾驶仪控制的态度由三内循环和外循环。

在第2部分中(角速率控制HL-20自动驾驶仪)和第3部分(HL-20自动驾驶仪姿态控制——输出设计),我们展示了如何关闭内部循环的增益调度和优化外部循环。这些例子的使用slTuner接口与模型交互模型,得到线性化模型和控制系统的响应,并推动调谐金宝app值仿真软件。

对于简单的架构和快速设计迭代,可以更好的和概念上简单操纵线性化模型在MATLAB和使用基本的命令反馈关闭循环。这个例子展示了如何执行部件的设计步骤2和3在MATLAB。

获得植物模型

调整自动驾驶仪,我们需要线性化模型的传递函数歪斜角位置和利率。要做到这一点,从“修剪和线性化”的结果(见步削减和HL-20机身的线性化)。回想一下,七国集团(G7)是机身的7个州线性模型在40个不同条件(α,β),然后呢CS的线性化控制选择器。

负载csthl20_TrimData七国集团(G7)CS

使用仿真软件模型“c金宝appsthl20_trim”作为参考选择I / Os,建立所需的工厂模型通过连接七国集团(G7)CS在系列。不要忘记将φ,α,β弧度度。

r2d = 180 /π;G =诊断接头([1 1 1 r2d r2d r2d)) *七国集团(G7) ([4:7 31:32], 1:6) * CS (:, 1:3);G。InputName = {“哒”,“德”,“博士”};G。OutputName = {“p”,“问”,“r”,“Phi_deg”,“Alpha_deg”,“Beta_deg”};大小(G)
8 x5的状态空间模型。每个模型都有6输出,3输入,和7个州。

这给了我们一个数组的植物模型的8-by-5网格(α,β)条件用于修剪。

关闭内部循环

关闭内部循环,我们遵循相同的过程就像在第2部分(角速率控制HL-20自动驾驶仪)。这包括选择合适的增益Kp, Kq,基米-雷克南的交叉频率设置p, q, r循环到30,22.5,和37.5 rad / s,分别。

%计算Kp, Kq,基米-雷克南(α,β)条件。Gpqr = G ({“p”,“问”,“r”}:);Kp = 1. / abs (evalfr (Gpqr(1, 1), 30我));Kq = -1. / abs (evalfr (Gpqr(2, 2), 22.5我));基米-雷克南= -1. / abs (evalfr (Gpqr(3、3), 37.5我));波德(Gpqr (1,1) * Kp, Gpqr (2, 2) * Kq Gpqr (3,3) * Kr, {1 e 1, 1 e3}),网格传奇(“da p”,“德问”,的r博士)

图包含2轴对象。坐标轴对象1包含120行类型的对象。这些对象代表da p, q, r。博士坐标轴对象2包含120行类型的对象。这些对象代表da p, q, r博士。

使用反馈关闭三个内循环。插入一个分析点核电站投入哒,德,为以后博士评价的稳定的利润。

Cpqr = append (ss (Kp),学生(Kq),学生(Kr));APu = AnalysisPoint (“u”3);APu。位置= {“哒”,“德”,“博士”};gpo =反馈(G * APu * Cpqr,眼睛(3),1:3,1:3);gpo。InputName = {“p_demand”,“q_demand”,“r_demand”};大小(gpo)
8 x5的广义状态空间模型。每个模型都有6输出3输入7州,和1块。

注意,这些命令无缝管理这一事实我们正在处理数组对应于各种植物和收益(α,β)条件。

调优外循环

下一步的外循环。我们已经有一个数组的线性模型gpo“植物”被外循环。在第3部分(HL-20自动驾驶仪姿态控制——输出设计),参数化六获得时间表α和β的多项式表面。我们用二次曲面积分的比例收益和多重线性表面收益。

%(α,β)设计的网格点alpha_vec = 10:5:25;α%范围beta_vec = 10:5:10;%测试范围(α,β)= ndgrid (alpha_vec beta_vec);SG =结构(“α”α,“β”,β);%的比例增长alphabetaBasis = polyBasis (“规范”2、2);P_PHI = tunableSurface (“Pphi”,0.05,SG, alphabetaBasis);P_ALPHA = tunableSurface (“Palpha”,0.05,SG, alphabetaBasis);P_BETA = tunableSurface (“Pbeta”,-0.05,SG, alphabetaBasis);%积分收益alphaBasis = @阿尔法(α);betaBasis = @(β)abs(β);alphabetaBasis = ndBasis (alphaBasis betaBasis);I_PHI = tunableSurface (“Iphi”,0.05,SG, alphabetaBasis);I_ALPHA = tunableSurface (“Ialpha”,0.05,SG, alphabetaBasis);I_BETA = tunableSurface (“Ibeta”,-0.05,SG, alphabetaBasis);

整个控制器的外循环是一个3×3的PI控制器采取错误角对角位置φ,α,β和计算速度要求p_demand, q_demand r_demand。

KP = append (P_PHI P_ALPHA P_BETA);KI = append (I_PHI I_ALPHA I_BETA);要= KP + KI *特遣部队(1 0 [1]);

最后,使用反馈获得一个可调的闭环模型外循环。使调优和闭环分析、插入分析点核电站输出。

RollOffFilter =特遣部队(10、10 [1]);年= AnalysisPoint (“y”3);年。位置= {“Phi_deg”,“Alpha_deg”,“Beta_deg”};年* T0 =反馈(gpo (4:6 -:) * RollOffFilter *手机,眼睛(3));T0。InputName = {“Phi_demand”,“Alpha_demand”,“Beta_demand”};T0。OutputName = {“Phi_deg”,“Alpha_deg”,“Beta_deg”};

你可以画出初始的闭环响应获得表面设置(不断上涨0.05)。

步骤(T0, 6)

图包含9轴对象。坐标轴对象1标题F r o m:空白P h我indexOf d基线e m n d包含40线类型的对象。该对象代表T0。坐标轴对象2包含40线类型的对象。该对象代表T0。坐标轴对象3包含40线类型的对象。该对象代表T0。坐标轴对象与标题4 F r o m:空白的l p h indexOf d基线e m n d包含40线类型的对象。该对象代表T0。坐标轴对象5包含40线类型的对象。 This object represents T0. Axes object 6 contains 40 objects of type line. This object represents T0. Axes object 7 with title F r o m : blank B e t a indexOf d baseline e m a n d contains 40 objects of type line. This object represents T0. Axes object 8 contains 40 objects of type line. This object represents T0. Axes object 9 contains 40 objects of type line. This object represents T0.

调优目标

第3部分中使用相同的优化目标(HL-20自动驾驶仪姿态控制——输出设计)。这些包括“MinLoopGain”和“MaxLoopGain”目标设置增益之间的外循环交叉0.5和5 rad / s。

R1 = TuningGoal.MinLoopGain ({“Phi_deg”,“Alpha_deg”,“Beta_deg”},0.5,1);R1。LoopScaling =“关闭”;R2 = TuningGoal.MaxLoopGain ({“Phi_deg”,“Alpha_deg”,“Beta_deg”},特遣部队(50 [1 10 0]));R2。LoopScaling =“关闭”;

这些还包括不同的“利润”的目标实施足够的利润率在每个循环和循环稳定。

%获得利润vs(α,β)通用= [6 6 6 6 6 6 6 7 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 6 6 7 6 6 6 6 6 6 6);%阶段利润vs(α,β)点= [40 40 40 40 40 40 40 45 40 40 45岁45岁45岁45岁45岁45岁45岁45岁45岁45岁40 40 45 40 40 40 40 40 40 40];%建立不同的目标跳频= @(通用、pm) TuningGoal.Margins ({“哒”,“德”,“博士”},通用、点);R3 = varyingGoal (FH、通用、点);

增益调度优化

您现在可以使用systune形状的六个获得表面对所有40个设计点的优化目标。

T = systune (T0, (R1, R2 R3));
最后:软= 1.03,=无穷,迭代= 52

最后客观值接近1调优目标基本上是达到了。情节闭环角响应和与初始设置。

步骤(T0, T, 6)传说(“基线”,“调”,“位置”,“东南”)

图包含9轴对象。坐标轴对象1标题F r o m:空白P h我indexOf d基线e m n d包含80行类型的对象。这些对象代表基线,调谐。坐标轴对象2包含80行类型的对象。这些对象代表基线,调谐。坐标轴对象3包含80行类型的对象。这些对象代表基线,调谐。坐标轴对象与标题4 F r o m:空白的l p h indexOf d基线e m n d包含80行类型的对象。这些对象代表基线,调谐。坐标轴对象5包含80行类型的对象。 These objects represent Baseline, Tuned. Axes object 6 contains 80 objects of type line. These objects represent Baseline, Tuned. Axes object 7 with title F r o m : blank B e t a indexOf d baseline e m a n d contains 80 objects of type line. These objects represent Baseline, Tuned. Axes object 8 contains 80 objects of type line. These objects represent Baseline, Tuned. Axes object 9 contains 80 objects of type line. These objects represent Baseline, Tuned.

获得的结果与部分2和3。调整增益的表面也类似。

clf%注意:setBlockValue更新每个获得表面的调谐系数T次要情节(3,2,1)viewSurf (setBlockValue (P_PHI T))次要情节(3、2、3),viewSurf (setBlockValue (P_ALPHA T))次要情节(3 2 5)viewSurf (setBlockValue (P_BETA T))次要情节(3 2 2),viewSurf (setBlockValue (I_PHI T))次要情节(3 2 4),viewSurf (setBlockValue (I_ALPHA T))次要情节(3 2 6),viewSurf (setBlockValue (I_BETA T))

图包含6轴对象。坐标轴对象1标题获得Pphi(α,β)包含一个对象类型的表面。坐标轴对象2标题获得Palpha(α,β)包含一个对象类型的表面。坐标轴对象3标题获得Pbeta(α,β)包含一个对象类型的表面。坐标轴对象4标题获得Iphi(α,β)包含一个对象类型的表面。坐标轴对象5与标题获得Ialpha(α,β)包含一个对象类型的表面。坐标轴对象6与标题获得Ibeta(α,β)包含一个对象类型的表面。

现在你可以使用evalSurf样品获得表面和更新模型的查找表模型。金宝app你也可以使用codegen为获得表面方程方法来生成代码。例如

%为“Pφ”生成的代码块MCODE = codegen (setBlockValue (P_PHI T));%得到调整“我φ”查找表的值Kphi = evalSurf (setBlockValue (I_PHI T), alpha_vec, beta_vec);

另请参阅

相关的话题