文档

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

使用Simulink®进行控制设计万博1manbetx

此示例显示如何使用Control Systembox™和Simulink®ControlDesign™与Simulink进行万博1manbetx交互以设计飞机的数字音高控制。在该示例中,我们将设计控制器以允许飞机以高攻角运行,具有最小的导频工作量。

我们的示例在设计高角度的攻击控制器时,我们通过第一次传递。要在此示例中运行所有内容,您必须具有控制系统工具箱,Simulink控制设计,Simulink和Simulink®Coder™。万博1manbetx如果您没有所有这些产品,则仍然可以使用MATLAB®编辑器的单s manbetx 845元格执行模式运行该示例的部分。

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

打开飞机模型

图1:万博1manbetx飞机飞行控制系统的Simulink模型。

修剪和线性化

模型可以在控制和估计工具管理器中线性化,从slexAircraftPitchControlAutopilot Simulink模型启动。万博1manbetx在分析菜单中,选择控制设计>线性分析。

打开控制和估算工具管理器时,选择一个操作点,然后单击“线性化模型”按钮。可以创建LTI查看器,显示线性化的步骤图。要浏览LTI查看器,请右键单击图形窗口以查看您的选项。

有关帮助类型帮助SLControl或帮助LTIVIEW或查看控制系统工具箱和Simulink Control Design产品文档。万博1manbetx

打开slexAircraftPitchControlAutopilot模型

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

APMDL =“slexAircraftPitchControlAutopilot”;Open_system (apmdl) op = operpoint(apmdl);io = getlinio (apmdl);contap =线性化(op, apmdl io)
CONTAP = A = Alpha-Sensor俯仰速率L比例棒预先填充alpha-sensor -2.526 0 0 0音高率L 0-4.144 0 0比例-1.71 0.9567 0 10棒预制0 0 0 -10 b = alpha感测棒q感测alpha-Sensor 1 0 0俯仰速率L 0 0 1比例0 0 -0.8156棒预先填充0 1 0 C = alpha-Sensor俯仰速率L比例棒Precil Sum 2.986 -1.67 -3.864 -17.46 D = alpha感测棒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 Plot清楚地看出,系统与飞行员杆输入和攻击传感器角度的半样本频率(垂直黑线)相匹配。这种设计与模拟系统具有较差的响应。转到Simulink万博1manbetx模型并开始模拟(确保您可以看到范围Windows)。虽然模拟正在运行,请双击标有模拟或数字的手动开关。

模拟是否通过解释Bode图来验证结论吗?

discap = c2d(contap,0.1,'ZOH');get (discap)波德(contap discap)
z:{[0.8016] [0.8039] [2x1 double]} p:{[2x1 double] [2x1 double] [2x1 double]} k:[0.2943 -1.2458 1.4240] DisplayFormat:'Roots'变量:'Z'Iodelay:[0 0]输入''} OutputGroup:[1x1 struct]注意:[0x1字符串] userdata:[]名称:''samplinggrid:[1x1 struct]

图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:AnaloMControl子系统。

完整设计的实现

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

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

设置了SLEXIASCRPICHCONTROLExample模型中的开关,以便可以在模拟自动驾驶仪,数字LTI对象和可使用软件实现的数字自动驾驶仪之间切换。

尝试再次模拟系统并在三个自动驾驶仪设计中切换。您应该看到设计不会受到显着影响哪个自动驾驶仪激活。您还可以增加风阵风的幅度,并验证抗锯齿滤波器是否令人满意地工作。为了增加阵风幅度,打开Dryden Wind Gust子系统并改变(通过双击图标)驱动阵风仿真的白噪声的噪声方差。

打开数字控制子系统:

图7:DigitalControl子系统。

设计变体的变型系统

Simulink模型中的执行器使用变型子系万博1manbetx统块来表示多个致动器实现,其中在模拟期间仅一个实现是活动的。您可以双击变型执行器子系统块以查看不同的执行器实现。

为了改变仿真结果,采用非线性执行器代替线性执行器。你可以通过使用Variant子系统块的“Variant > Override using”上下文菜单来做到这一点。

请注意,必须停止Si万博1manbetxmulink才能重新配置执行器选择。您还应该注意,非线性执行器的位置和速率上具有饱和度。

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

代码生成

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

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

> > ! slexAircraftPitchControlDAP.exe

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

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

打开slexAircraftPitchControlDAP模型:

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

第一次通行证设计的行为

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

图10:飞机数字间距控制设计的响应。

总结

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

这个话题有用吗?