主要内容

大攻角俯仰模式控制的设计

使用Simulink®进行控制设计金宝app

这个例子说明了如何使用控制系统工具箱™和的Simulink控制设计™交互使用Simulink来设计飞机数字俯仰控制。金宝app在这个例子中,我们将设计的控制器,以允许飞机攻击以最小的飞行员的工作负荷高的角度来操作。

在我们的例子在攻击控制器的高角度设计数字自动驾驶仪带你通过第一关。要运行这个例子中的一切,你必须有控制系统工具箱,Simulink的控制设计,Simulink和Simulink®的编码器™。金宝app如果你不具备所有这些产品,你仍然可以运行使用MATLAB®编辑下载188bet金宝搏器的电池执行模式的例子的部分。

下面是该飞机的Simu金宝applink模型。控制器模块中的控制系统可以在模型中进行切换,以允许您查看模拟响应,然后切换到使用控制系统工具箱的线性时不变(LTI)对象创建的设计。控制器也包含在内,是模拟设计的离散实现,类似于将进入机载飞行计算机的算法。花一些时间来探索这个模型。

图1:金宝app飞机飞行控制系统的Simulink模型。

修剪和线性化

您可以使用Simulink控制设计软件将模型线性化。金宝app为了交互地线性化模型,使用模型线性化电路要打开应用程序,在Simulink编辑器,在金宝app应用程序选项卡,在控制系统, 点击模型线性化电路.控件还可以编程地将模型线性化线性化函数。

打开slexAircraftPitchControlAutopilot模型。

要查看线性化的模型参数:

apmdl =“slexAircraftPitchControlAutopilot”;Open_system (apmdl) op = operpoint(apmdl);io = getlinio (apmdl);contap =线性化(op, apmdl io)
contap = A =α-传感器间距比率L比例棒Prefil阿尔法传感器-2.526 0 0 0节距速率L 0 -4.144 0 0 -1.71比例0 0.9567 10棒Prefil 0 0 0 -10 B =阿尔法感测棒q感测到阿尔法多个传感器1 0 0节距速率L 0 0 1比例0 0 -0.8156棒Prefil 0 1 0 C =α-传感器间距比率L比例棒Prefil萨姆2.986 -1.67 -3.864 -17.46 d =字母感测棒q感测萨姆0 01.424连续时间状态空间模型。

图2:原始模拟自动驾驶仪。

线性时不变(LTI)系统

有三种类型的LTI对象,可以用来开发一个线性模型:

状态空间(SS),传递函数(TF),以及零极点增益(ZPG)对象。

变量contap是一个状态空间对象。然后,您可以使用其他命令获得其他类型之一。当您在MATLAB中创建对象时,您可以使用*、+、-等操作来操作它。这就是所谓的“重载”MATLAB运算符。尝试创建一个自己的对象,看看当使用contap对象进行添加、乘法等操作时会发生什么。

要查看LTI对象中存储的内容,可以输入get(contap)或contap。InputName为例。

查看零/极点/增益传递函数:

contap =特遣部队(contap);contap = zpk (contap)
contap =从输入“阿尔法感觉到“输出”和“:2.9857 (+ 2.213 ) ---------------- s (s + 2.526)从输入“粘”输出“总和”:-17.46 (+ 2.213 ) ---------------- s (s + 10)从输入“问感觉到”输出“总和”:1.424 (+ 2.971)(s + 2.213 ) ------------------------- s (s + 4.144)连续时间零/钢管/增益模型。

离散控制器使用零阶保持

现在LTI对象将被用来设计数字自动驾驶仪,将取代模拟自动驾驶仪。模拟系统被编码到LTI对象中,称为contap(连续AutoPilot)。

第一次尝试创建一个数字自动驾驶仪将使用零级保持0.1秒的采样时间。注意,离散对象维护类型(ss、tf或zpk)。

它是从Bode曲线低于该系统不相匹配从3弧度/秒到半采样频率(垂直黑线)为先导棒输入和攻击传感器的角度清楚。这种设计比模拟系统较差的响应。进入Simulink金宝app模型,并开始模拟(确保你能看到的范围窗口)。而模拟运行时,双击标记的模拟或数字的手动开关。

是否仿真验证通过解释波特图得出的结论?

DISCAP = C2D(contap,0.1,'ZOH');get (discap)波德(contap discap)
Z:{[0.8016] [0.8039] [2×1双]},P:{[2×1双] [2×1双] [2×1双]} K:[0.2943 -1.2458 1.4240] DisplayFormat: '根' 变量: 'Z' IODELAY:[0 0 0] InputDelay:[3X1双] OutputDelay:0 TS:0.1000 TIMEUNIT: '秒' InputName:{3×1细胞} InputUnit:{3×1细胞} InputGroup:[1x1的结构] OutputName:{ '萨姆'} OutputUnit:{''} OutputGroup:[1x1的结构]注:[为0x1字符串]的UserData:[]名称: '' SamplingGrid:[1x1的结构]

图3:伯德图进行比较的模拟和ZOH控制器。

Tustin双线性离散化

现在尝试不同的转换技术。你可以使用Tustin变换。在命令窗口中键入上面的命令。

应该清楚的是,系统在3 rad/s到半采样频率的相位上仍然不匹配,Tustin变换做得更好。仿真使用LTI对象作为它的设计。通过使用浏览器或双击图标,查看在Controllers子系统中对象的使用情况。LTI块从工作区中提取一个LTI对象。您可以将块中使用的对象名称更改为工作区中的任何LTI对象。

尝试使用“discap1”,模拟设计的Tustin离散化:

discap1 = C2D(contap,0.1,“tustin”);波德(contap discap discap1)

图4:比较模拟和0.1秒Tustin控制器的伯德图。

选择样本时间

从分析来看,Tustin变换比零阶保持效果更好。0.1秒的采样时间对于离散系统来说似乎太慢了,以至于无法在采样频率减半的情况下跟踪模拟系统的性能。

现在使用0.05秒采样周期的Tustin转换模拟设计:

DISCAP = C2D(contap,0.05,“tustin”)波德(contap discap)
discap =从输入“阿尔法感觉到“输出”和“:0.074094 (z - 0.8951) (z + 1 ) ------------------------- ( z 1) (z - 0.8812)从输入“粘”输出“总和”:-0.36852 (z - 0.8951) (z + 1 ) ------------------------- ( z 1) (z - 0.6)从输入“问感觉到”输出“总和”:1.4629 (z - 0.8617) (z - 0.8951 ) ---------------------------- ( z 1) (z - 0.8123)样品时间:0.05秒离散时间零/极/增益模型。

图5:比较模拟和0.05秒Tustin控制器的伯德图。

现实的考虑

现在我们已经有了一个可行的设计,我们需要以一种包含一些在线性分析中被忽略的必要元素的形式来实现它。例如,如果你观察控制器子系统中的模拟自动驾驶仪,你会看到一些逻辑,当执行器饱和时,阻止积分器上发条:

打开AnalogControl子系统。

图6:AnalogControl子系统。

完整设计的实现

集成商的收尾只是需要解决的实际问题之一。另一个是需要消除可能进入测量点的混叠高频信号。这些混叠信号可以通过在样品和保持(ZOH)块前指定模拟滤波器来防止,该块对模拟数字转换器(ADC)设备进行建模,通常用于嵌入式应用中测量信号。此外,与补偿器相比,自动驾驶仪数字部分的滤波器以更高的采样率工作,为补偿器提供条件信号。模拟滤波器是必要的,因为一旦信号被混叠,就没有办法从混叠内容中分离有效的带内频率内容。

这种新的控制器叫做数字控制。过滤器有一个deltat1的样本时间(设置为deltat的1/10)。零阶保持块通过样本时间继承为各种下游块指定这些样本时间。

在slexAircraftPitchControlExample模式的开关设置,使您可以在模拟驾驶仪,数字LTI对象,并可能使用软件来实现数字自动驾驶仪之间进行切换。

再试一次,模拟开关三个自动驾驶仪设计中的系统。您应该看到的是,设计是不显著受到其自动驾驶仪是有效的。您也可以增加阵风的幅度和验证抗混叠滤波器是令人满意的工作。为了增加阵风幅度,打开德莱顿风力子系统和变化(通过双击该图标)的白噪声方差噪声驱动阵风模拟。

打开DigitalControl子系统。

图7:DigitalControl子系统。

变系统的设计变量

在Simulink模型致动器使用Varia金宝appnt子系统块来表示多个致动器实现,其中,在模拟过程中只有一个实现是有效的。您可以双击该变器子系统块查看不同的致动器实现。

为了改变仿真结果,采用非线性执行器代替线性执行器。您可以通过使用Variant Subsystem块来实现这一点变体>覆盖使用上下文菜单。

需要注意的是Simu金宝applink的必须,以重新配置驱动器选择停止。还应注意的是,非线性执行机构对位置和速率饱和度。

图8:执行机构的变型分系统

代码生成

自动驾驶仪的设计可以转换成可嵌入的代码使用Simulink Coder。金宝app下面是一个单独的数字自动驾驶仪,slexAircraftPitchControlDAP,是开放的;它使用Simulink Coder和使用mex -setup配置指定的编译器被编码到一个基于主机的独立程序中。金宝app模拟结果可以用作生成代码的功能正确性的验证基线。

由代码生成和编译产生的可执行文件是slexAircraftPitchControlDAP.exe。如果你创建了它,它可以直接从OS shell (DOS)命令行运行,或者从MATLAB中输入:

> > ! slexAircraftPitchControlDAP.exe

这个可执行程序创建了一个名为slexAircraftPitchControlDAP的文件。垫子,你可以加载通过键入load slexAircraftPitchControlDAP。

两个名为rt_tout和rt_yout的变量将在工作区中,它们与模拟基线的差异可以绘制出来。注意,这个模型在这个宿主上的方差实际上是零。在更复杂的计算中,由于不同的编译器优化和使用比double的64位存储格式精度更高的中间寄存器变量,预计会有一些小的数值差异。应该检查显著差异,因为它们可能表明模型算法中的数值稳定性问题、编译器或运行时库错误或其他问题。

打开slexAircraftPitchControlDAP模型。

图9:仿真和代码生成结果的比较。

第一遍设计的行为

下面是大攻角模式数字俯仰控制器的时间响应设计:

图10:飞机数字音高控制设计的响应。

总结

该设计的进一步工作可能包括纳入和分析更多的现实世界对补偿器的影响,如抗混叠滤波器动力学和嵌入式数字计算机的计算延迟对数字计算所看到的整体“植物”的影响。实际对象、计算延迟、抗混叠滤波器和采样保持延迟的组合只是可能影响数字补偿器参数设计的几个附加项目。

另请参阅

(金宝app仿真软件控制设计)|(金宝app仿真软件控制设计)

相关的话题