在这个网络研讨会,您将学习如何应用基于模型的设计与MATLAB和Simulink飞行器设计和自动飞行控制。金宝app航空航天领域的工程师可以使用MATLAB和Simulink改进设计的工作流程:金宝app
•定义飞机几何和导入系统的数据定义汽车部队和时刻
•创建一个理解车辆动力学仿真
•设计飞行控制系统与自动增益一代稳定车辆,满足要求
•执行模拟,以验证设计和可视化模拟在现实的3 d环境中
的主要焦点是工程师的工作流程包括建模、仿真和控制飞机。许多这个网络研讨会所示的基于模型的设计和控制的概念可以应用到各种应用程序。
主持人:瑞安·戈登是航空航天的产品经理工具箱和航空航天Blockset MathWorks。在加入MathWorks之前,瑞安模型和控制算法为自主开发无人机在诺斯罗普·格鲁曼公司航空航天使用仿真软件系统。金宝app他有一个学士学位从圣路易斯大学航空航天工程,航空航天工程硕士学位南加州大学的动力学和控制。
记录:2013年6月18日
大家好,欢迎来到建模仿真和飞机的飞行控制设计与仿真软件。金宝app我的名字是瑞安·戈登。我是一个产品经理在航空航天的MathWorks工具箱和航空航天Blockset。今天给你我们会做什么,我要直接到仿真软件和显示你的模型,我们将设计。金宝app
让我开始通过运行模型,在这里,你会看到我们的全动态模型以及控制系统飞机看到可视化与FlightGear左边。如果我进入试点的块,我有三个主要的命令,我可以发送的自动驾驶系统是利用今天。首先,我有一个高度的命令,当我在高度保持状态,我可以发送一个命令的高度,飞机将球场达到高度和高度。我有一个速度命令使用汽车油门速度不同,和我有这个汽车爬命令,将让我改变高度之间的模式和登山模式我最大力量和飞机将达到的速度。
当我激活,您将看到这架飞机是目前最大力量和俯仰达到每秒85米的速度。如果我慢下来,你会看到它球更多,因为达到每秒75米的速度需要更高的螺旋角。如果我脱离汽车爬,它将音高回到实现2100米海拔的命令。所以今天,我将向您展示如何为这架飞机设计一个动态系统仿真软件。金宝app我将向您展示如何设计这架飞机自动驾驶系统,这样你可以想象使用航空Blockset FlightGear。
所以与MATLAB和Simulink这一切是如何工作的?金宝app首先,让我们来谈谈迭代设计过程设计飞机的飞行控制。首先,你需要设计的动态模型。所以你怎么做呢?你会先确定车辆的几何形状,确定车辆的气动特性基于几何,这可以通过许多不同的方法包括风洞测试。您将创建一个模拟来验证设计,一旦你有一个模拟,你可以基于该模型设计飞行控制规律。
作为一个飞机飞行控制设计,你可能不得不遍历这个过程几次在你实现你想要的结果,虽然你遍历这个设计有额外的步骤等,你也可以在创建一个硬件在回路仿真,硬件和软件建设等实际的车辆进行飞行测试,然后分析和可视化这些飞行测试的结果。今天,我们将重点放在强调的四大区块,但有工具可以帮助您在整个设计过程。
这是最初的四个步骤如何映射到我今天展示的网络研讨会。首先,我要飞机动态系统模型。我将模型的空气动力学系统。系统是由美国空军设计软件,允许你输入飞机几何,它会告诉你什么空气动力特性和系数的几何是基于输入。我不会覆盖系统系统实际上是如何工作的,但我将介绍如何使用系统在MATLAB和Simulink仿真的结果。金宝app
我将建立一个三自由度的纵向动力学模型。我会为我的动态模型设计环境风、阵风,动荡和重力。我会设计一个飞行控制两种模式的飞行高度跟踪模式,和最大推力模式的变化,让我大步爬到最大功率和控制速度。我会通过使用PID自动调谐器,然后我就可以想象这两种不同的模式之间的过渡飞行使用状态流。在这整个过程中,我可以想象结果在三维空间中利用仿真软件FlightGear接口作为航空航天Blockset的一部分。金宝app
让我们从第一步开始,对飞机动态系统建模。在这个步骤中,我将主要使用MATLAB和Simulink,航空航天工具箱,航空航天Blockset。金宝app这些工具会让我快速设计、模拟,想象我的整个设计过程建模。这是仿真软件FlightGear生活,三自金宝app由度块住在哪里,让我简单地拖拽一个块有一个完整的三自由度动力学模型。我将展示的第一个功能是系统的导入和仿真软件系统的接口。金宝app这就是我所有的环境模型还活在我的气氛,风,和动荡。让我们返回到MATLAB和Simulink所以我可以告诉你这些都是什么。金宝app
我想做的第一件事就是可视化系统数据是什么样子的。要做到这一点,我发现这个函数在MathWorks文件交换。MathWorks文件交换是一个地方,当前MATLAB用户可以共享文件,他们创造了他们认为其他人会发现有用的。我用来显示人们通过只显示系统输入文件的样子。但在看一些有用的文件的文件交换我想可能会帮助我,我发现这个画飞机系统文件。这是MathWorks上可用文件交换,如果你感兴趣。如果我运行这个文件,它会创建这三个视图绘制飞机的规范从文件输入系统。
所以你看,这是一个翅膀,身体,尾巴的设计。你可以看到空气箔系统系统的输入。再一次,飞机的三个视图。所以就像我之前说的,我不会支付系统是如何工作的,但我将向您展示的输出是什么样子的。当我们看这里,你可以看到在MATLAB输出不是很有用。这是一个文本文件。有我需要的所有信息,而不是一个非常有用的格式。所以我要用的是航空航天的系统导入工具的工具箱。我们可以看到我在这里运行。系统导入系统的输出文件。 And it processes the data. And if I take a look at that data, we can see now I've got a structure of all my aerodynamic coefficients for my flight conditions that I defined in my DATCOM file.
所以我们看到的是两个马赫数,两个海拔,攻角的五个不同的值。再一次,五个不同的攻角值,两个高度,两个马赫数。现在,你可能需要做什么如果你使用系统导入工具,系统可能不会给你所有你需要的信息,当你运行你的输入文件。如果我看一看我的俯仰力矩,你看到它给了我这些价值观——我认为这是99999年,一些方法的范围之外这个值可能是什么,告诉我,我需要填写这些缺失值。所以我会很快通过运行一个简单的for循环来填写数据。之后,我做了,现在我已经有了,我只是重复第一个数据值在我的系统。
现在,我有我所有的数据的格式我有现实的所有参数的值,我可以去仿真软件和这个导入仿真软件使用系统块与航空航天Blockset可用。金宝app这是我给你们的网络研讨会。这是飞机动力学,这就是我要建立我的动态模型。你会注意到的是,R2012B角落里我们有这些徽章在一些街区。这意味着这是一个不同的子系统。所以对于本研讨会,我有两个变种。我有一种变体完全完成,因为它需要很长时间来构建这些比你想看我做网络研讨会,和一个愿景有这些洞,我要填入孔块可用的航空Blockset帮助我建立模型。
改变变量,你可以进来这里,使用覆盖选项。还有可用的选项,您可以使用工作空间中定义变量。这是最终版本在哪里。初步版本有三个主要子系统。这就是三自由度仿真的生活。还有一个六自由度接口方式,以后如果我想建立横向方向动态,我很快就会重复这一过程,通过应用六自由度块而不是一块三个自由度。我没有空气动力学的横向方向导数,所以我要离开现在这个三个自由度。
推进系统只是一个查找表,很简单的,而不是今天做推进设计。这是一个非常基本的模型。在我离开这些空间的空气动力学开放,我需要填写系统数据,部队和时刻,我需要建立马赫和动态压力。如果我打开模型库浏览器,和我去航空航天B金宝applockset,我们会发现有许多不同的工具可用。你看到空气动力学、致动器、环境、运动方程。这些都是常见的东西是用于飞机和宇宙飞船的设计,我们已经提供给你作为航空航天Blockset的一部分来帮助简化迭代设计过程,我今天告诉你,一个迭代,我今天要做的事。
的空气动力学系统,我进入空气动力学的子库和拖在数字系统部队和时刻。这是预先填写的这个事实结构不是我有我命名为。其实我有一个预先构建的结构称为静态动态。如果我申请这些变化,你会发现我单击OK后,输入实际改变以匹配所需的输入,系统结构。这让我很快就知道输入需要查找的数据系统,因为这一块将自动确定需要哪些输入。然后我可以构建出输入左边从我三自由度块,我以后再投入。然后我可以把这个,调整它,但是我不会花太多时间调整和填写这些块。我将向您展示这一切完成的版本,因为我不想浪费你的时间向您展示如何调整块和适应一切。
力和时刻我有这些空气动力系数。如果我来这里,你会看到我们有pre-lookup表索引和索引用于攻角的一小部分,马赫数,高度,电梯和电梯偏转为块子系统。和我们类似的定义为查找表的俯仰力矩,在静态动态结构。现在,因为他们只是系数,我需要将这些系数转化为力量和时刻。和我要做的是如何用我的空气动力和力矩。所以我可以连接气动力和气动力矩的变化了,我需要把在参考面积跨度和参考长度,已知特征的飞机,很快就会允许我根据这些系数计算力和时刻。
现在再一次,我有这些领域的最终版本然后我将向您展示一下。最后,我们有工具建立通用飞机马赫数和动压等特点。如果我进入我的搜索项我可以搜索在航空航天Blockset库浏览器,我可以找到一个块,马赫带这个。这里的好处是,它告诉你你需要的计算。所以你不需要,如果你工作在一个团队有许多不同的工程师,也许不是每一个工程师都是熟悉飞机。如果您正在使用的人也许做齿轮,他们不一定会知道所有飞机术语GNC工程师非常舒服。这里查看界面,你知道你需要什么,所有这些块之间有一个共同的接口。
和最后一块我需要是一个动态的压力。再一次,我可以拖,我们看到他们使用相同的速度,然后我只需要把在这里的密度和声速。所以,我不会连接这些现在。我有这些都连接在最终版本。最后,我想建立一个三自由度仿真。这是一个自定义界面块我建造。再次,所以迭代设计过程中我可以删除这个,把在一个六自由度块。我们在航空航天Blockset三自由度和六自由度模型。所以对六自由度可以使用欧拉角,或者如果你有一个高度动态的车辆,你担心类似的万向节锁你可以使用块的(听不清)版本。
所以现在,我将使用一个简单的三自由度。你可以看到我有一个重力输入,但我有重力定义在我的环境中,所以我说这是一个内部重力定义为零,这将消除输入端口。有很多初始条件需要填写在这里,那么我将向您展示最终的版本。这只是在下降。你知道你的部队——x-force, z-force和时刻——你有一个共同的接口,可以与其他航天互动?块设置?)组件因为他们都有着共同的接口名称允许您快速遍历这个设计过程。
现在我将回到我的顶层模型和变化最终版本给你们,是什么样子的时候完成。现在你看到使用不同的子系统,最终版本现在强调自从我做了覆盖。这里你看到的相同的基本布局的子系统。如果我来我的空气动力学,你看到系统的块,我这个粉红色的航空Blockset块红色突出显示颜色给你们在航天Blockset块。你看到气动力和气动力矩的变化的。我们使用模型工作空间变量,这些变量实际上是连接到这个模型来定义我们的引用。你看到马赫数和动压是单连通的子系统。我之前给你们相同的块。和我们的三个自由度。再一次,使用工作空间模型参数定义的内部模型的初始条件的三个自由度。
现在我可以告诉你我所做的定义环境。这只是参观我的系统,因为它没有意义在这短时间内单独建立所有这些组件。花太多时间,因为航空航天Blockset真的很简单。这里你看到我使用的标准大气模型。,因为它是一个航天Blockset块我有下拉菜单,让我来定义不同的大气模型根据飞行场景我想模拟。如果我需要一个炎热的一天,我可以做一个炎热的一天。我可以做一个寒冷的日子。不同密度和压力使用这个模型。今天我们将坚持标准大气模型。这是第一个迭代通过我们的设计过程,对吧,所以你想要的一切标准。
我们定义的重力是WGS84模型。如果我来这里风模型,我们可以看到我有一个风切变模型,一阵模型和湍流模型。和湍流模型有一个下拉来定义卡门或莱顿动荡。这里你看到的图片是我们的真理植物模型。飞机动力学进入进入飞机动力学环境和环境。我们这里有这个循环,我们有整个系统的定义。现在,我将通过模型的其余部分和告诉你还有什么我们在这里只是为了给你一个知道所有这些其他块代表了。
机体致动器,再一次,这是一个不同的子系统。这将允许我也许一个提要通过模型之间的变化,也许我使用SimScape SimHydraulics建立这个高度动态模型,或者我只是用传递函数。这种变体子系统设置将很快允许我这些版本之间的变化。我有飞行传感器,你在这里看到我用航空Blockset建立快速理想空速修正,惯性测量单元和压力高度模型实际的传感器。和大气数据计算机仅仅是一系列的一阶discreetize数据通过。所以我们没有一个大气数据系统模型。当我们遍历这个设计过程中,我们将建立一个更高的保真度大气数据系统。
最后,我们有这样的可视化,我一直在谈论,在一开始我给你。我使用这里方差子系统,因为有两种不同的方法可以将数据发送给FlightGear——你可以使用一个简单的版本或一个复杂的版本,将允许您可视化驾驶舱显示,控制表面的变形量,但今天,我只使用一个简单的FlightGear界面,所有我需要发纬度,经度,高度,角度和身体FlightGear动画块,这将允许我在FlightGear可视化。再一次,因为这一块是红色的粉红色,这是航天Blockset的一部分。它允许您拖放这些组件,准确理解这些组件需要什么功能的正常运行,然后快速接口,在这个特殊的例子中,FlightGear。
这差不多就是模型。所以我向您展示了如何建模的动态系统。现在,让我们来谈谈如何设计飞行控制飞行的两种模式。这同样是我刚才显示的复杂,但我想我有一个很好的方式显示您如何使用我们的自动PID调谐器快速设计飞行控制系统,或任何类型的控制系统,基于你的设计工作流程是什么。正如我之前提到的两次,我要设计两种不同的控制回路,我可以改变使用国家之间流动,让我想象这变化和简化控制逻辑设计过程。首先,我将设计高度跟踪空气路径,我将在外层循环反馈高度允许飞机俯仰和控制高度,同时保持空速。第二个是最大推力爬空气路径,我可以发送一个最大油门命令引擎然后上下间距来实现所需的航速快一步高度变化。
我会为我的系统调优收益使用PID优化与仿真软件功能自动控制设计。金宝app这将给我许多选项来优化带宽、增益和相位裕度,我可以观察结果在时域阶跃响应图,或者我可以在频域与伯帝镇始建响应图。两个飞行模式,使用状态流图作为你在右下角看到将简化我如何改变这两个不同的飞行模式,积极想象的飞行模式的时候,我在我这个模型模拟。
所以当你看控制系统,这是一个基本控制系统图你的补偿器,你的模型和传感器。我们要关注现在的飞行控制。如果我要映射到我完整的系统,你看到的只是这GNC航电块,我们会关注的。现在我将返回到仿真软件,深入这GNC的航空电子设备,并向金宝app您展示如何设计你的飞行控制基于工厂设计模式,我们已经使用MATLAB仿真软件,仿真软件控制设计。我不需要库浏览器了,我可以把这个全屏。GNC的航空电子设备,哦,我想这是一个旧版本的图片。这是我现在调整了飞行控制是叫它。
制导系统是简单的饲料通过我们不会指导系统。迭代设计过程中我有这些子系统的布局。让我快速迭代。事实上,我可能别人设计这完全因为它是脱离实际的自动驾驶系统。当我进入自动驾驶系统,我们看到我的设计。现在,我知道你在想这看起来有点复杂。首先,我要提醒你,我要把问题结束时可以随意问我任何问题。但实际上比看起来简单得多。如果你从未使用过仿真软件,当我给你们看一些控制设计金宝app流程可以执行在这种环境中我认为你会明白为什么这是一个强大的工具。
所以我在这里这是我俯仰速率成比例积分控制器。这是我的z加速度成比例控制器,这相当于拥有一个获得。如果你熟悉在仿真软件获得块,p控制器的PID块只是一个收获。金宝app没什么比这更复杂。虽然,你可以让它更复杂,如果你想要使用额外的功能。这允许您使用PID调谐器在个体获得你实际上不需要调整PID控制器使用优化功能,我将展示。所以备份多一点,这是飞行路径或伽玛路径有γ命令进入一个比例控制器——γ错误,对不起。
我们有这个状态流程图,确定哪些我们使用外循环。如果我们在高度保持状态,高度错误路径进入一个比例积分控制器,将融入到γ命令。我也有一个汽车油门这将给我的油门命令。如果我在汽车爬模式在马克斯的力量和我想球场上下飞机持有我的空速,我反馈校准空速,现在喂进我的伽马命令。所以它可以切换外循环使用这个状态流图。
所以我要花点时间进入状态流图,这样你可以理解这都是关于什么。然后我可以回来这里看看调优这些PID控制器。这是我的状态流图。不要太多。只有两种模式。可能会有状态流图与数以百计的模式,这是一个非常简单的图相比之下。它进入正常的飞行模式。我可以建立这个失效模式,起飞和着陆模式,地面控制模式,各种不同的飞行模式,这些国家流动分离。当它出现时,它决定如果汽车爬的订婚。如果是,我们在起飞,我称之为爬模式,因为通常你看到的地方。 And if you're in takeoff climb mode, the gamma command equals that takeoff climb command generated by the calibrated airspeed and my throttle goes to max which is 1, which is 100%.
现在,如果汽车爬上不再是订婚或飞行员决定覆盖海拔命令,我们将进入高度保持状态,我们将高度命令发送到γ控制器,和油门的命令将按照汽车油门。如果汽车爬提醒飞行员并不是试图覆盖它,我们回来到起飞爬升模式。显示这是什么样子,我会在新标签页中打开这个飞行员块。R2012B这是其中的一个新特性是现在我们有标签,这样我就可以有飞行员块并迅速切换,现在我要在这里挖下来——这两个模式之间切换。让我设置这个默认的条件我开始,点击播放按钮。
我们看到的是好的,我们在高度保持状态,因为汽车爬不是订婚了。现在,看看会发生什么当我从事汽车爬。转换到起飞爬升命令。当我关掉汽车爬回固定高度,它允许您这两种模式之间切换,如果我调试我的模型和飞行控制系统实时而我玩这个模式,我可以想象模式。如果不做我期望它,我可以进入状态流图,说,好吧,好吧,我知道我在正确的模式中,我知道我在这个高度保持状态,所以我知道我期望它做什么当我在这种模式下,没有猜测。我没有把范围在我的图算出来。这对我来说是所有可视化。
好了,这就是国家流动。有点不同的仿真软件。金宝app我希望这对你不是太复杂。最后,我把问题。所以请,如果你有任何问题关于这个东西我将回答你的问题。所以问了。所以我不想把你吓跑,想,哦,这太复杂,因为它是真正伟大的,有用的工具如果你做这种类型的控制设计。好的,我们回到这里。我已经向您展示了如何将这两个模式之间切换。让我放大所有的内部循环的方式。 In aircraft design, at least the way I learned it, is you tune your controllers loop by loop. First I'll tune the pitch rate loop and then the z acceleration loop and then the flight path loop.
现在,我们有工具可以调整这些循环一次可用与鲁棒控制工具箱,不幸的是我没有时间给你今天。但我可以告诉你PID调谐器是一种可视化这些循环和调优循环的每一个图形。所以我要做的第一件事就是我将注释掉这一块。本质上,就像如果我删除不再连接块和路径。我这里打开循环使用注释功能可用的新模型。金宝app现在,所有我在电梯这个音高错误循环速度PI控制器。当我打开PID块时,你会发现这里有很多的选择。这个已经调整,但是你不认为我作弊,我会设置默认参数。
我可以选择不同的选项,但是我只需要一个比例和积分。所以如果你优化一个简单的获得反馈,你没有一个积分器,你没有一个导数,你仍然可以使用PID调节器的比例的路径。所以给你很多的选择和变化取决于你想做什么与这个块,PID块。所以我选择了PI控制器,如果我想,我可以使用连续时间。当然,这是我想要的东西最终生成代码,我将离开这个离散时间。我把样品时间TC。这是定义为1 / 60秒。
我已经把一个限制。我的电梯是20度的极限。所以我说好的,我想限制这20至- 20度,我把一个anti-windup在这里,一旦它到达20度它不会保持积分,积分器不会整合。如果我只有一个比例控制器——看看这个作品——它不给我anti-windup选项,因为没有什么可以结束。当我拖在比例积分,记得我的选择是什么,把它回到那里。PID块是做事情,也许你已经做手动集成商和增益模块,但是它使它更容易集成先进的功能。
现在,PID块本身是可用的模型,不需要任何其他工具。金宝app但不是这个优化函数模型中可用。金宝app这就是模型控制设计。金宝app让我们看看这个当我点击这个按钮会发生什么。你看到它是启动PID调谐器。PID调谐器出现时,它会选择它认为是一个很好的回应,和它看起来在线性系统设计时调整按钮确定。所以有一件事你必须确保的是,你的系统可以使用类似线性线性化分析工具在你使用PID调谐器,以确保它会正常工作。
如果这个显示0,或者它可能给你一个警告说我不能线性化系统,那么您可能需要做出一些改变不是linearizable排除为什么你的系统。但是在我的情况下,系统可以线性化,它选择了一些参数的初始比例积分值。现在,当我看着这些参数,我还可以看看我的时域特征和频域特征,如增益裕度和阶段保证金——控制工程师非常有用的东西。我可以使用这些滑动条来得到一个更快的响应但牺牲一些增益裕度。我可以观察到频域,看到我真的真的只是调整带宽,并相应的收益正在改变。我们看到的主动更新图。
我不仅可以观察步骤参考跟踪,我也可以观察控制器工作。所以我知道我有20度范围的积极的和消极的电梯,所以也许我想限制电梯给我。这里,我将使用约3度的电梯实现阶跃响应。我还可以使用伯帝镇始建响应情节看诸如输出干扰排斥,植物模型和开环反应。再一次,这里有我需要的一切作为一个控制设计师让我收益调整我的飞行控制系统。一旦我点击应用,我可以在这里看到我的收益已经更新。
但是我要设置这些回到原来的值,这有练习几次我知道- 9.4和- 2,因为我所有的其他循环调整是基于这些值。如果我离开新调整值,我不得不re-tune循环和我不想这样做,因为我刚经历相同的过程。除了这里,你可以看到我有一个比例控制器,就像我之前说的,比例控制器的PID调节器的作品。
我也调整方式的高度控制,爬速度控制器,空气速度控制器。高度控制器也将允许我调整状态流图。所以当我点击调整按钮,它看起来像我的线性系统不是那么容易调整,但我可以调整的状态流循环。在当我知道我的状态调整按钮,相应的线性系统。它允许我使用这个完整的控制系统,而不必把它到一个更简单的版本,而且还能调整我的控制回路。
在整个过程中我可以打开记录按钮。我有一个数量的信号准备记录。可以和我玩模型。也许高度命令放在一个新的台阶。等待它实现阶跃响应命令。一旦我点击停止,我所有的记录数据将仿真数据检查器中可用。我重复在我的设计过程中,我可以观察到信号来跑,看看事情改变。我可以看看我的高度命令和实际高度控制比较。在这里我看到它看起来像一个很好的回应。
我不让它运行足够长的时间。我可以使用可视化三维可视化。很难在这个网络研讨会环境中来回切换。但是你可以看到很好地跟踪我的高度命令的响应。看起来都是很好的工作。我遍历过程,re-tune控制器,达到预期的要求,我可以使用模拟数据检查和它将存储所有运行在这里比较。
最后,我向您展示了如何模型动态飞机系统仿真软件,包括空气动力学和环境。金宝app我已经向您展示了如何使用仿真软件控制设计和状态流复杂的飞行控制金宝app器设计,以及如何自动调整收益与PID调谐器。所以你可以调整收益使用比例反馈循环的系统,比例积分,或PID控制回路。可以任意组合调整PID调谐器。我已经向您展示了如何使用FlightGear 3 d可视化结果从航空Blockset接口。
我想提醒你,我使用文件交换系统数据的可视化。我认为用户社区是一个伟大的资产,你可以找到对你有用的文件在文件交换,看看MATLAB的答案如果你有问题,或者查看的博客,我们可以看到什么是新的在MATLAB和Simulink和它如何可以应用到你的设计挑战。金宝app谢谢你!
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。