大家好。我叫格雷格,在MathWorks的Simulink产品营销部工作。在本次网络研讨金宝app会中,您将了解Simulink如何使用Simulink为手掌大小的四架直升机设计、模拟和部署飞行控制器。其对PARROT微型无人机和航空航天区块集的支持包。本网络研讨会旨在作为入门资源,并将介绍Simulink,一种四旋翼直升机硬件,以及如何使用Simulink附加工具开发从飞机建模和仿真到部署和飞行分析的完整工作流。让我们开始吧。金宝app
我们将使用这个提纲来实现今天的网络研讨会目标。这里将简要介绍Simulink,它的附加工具,PARROT迷你无人机的Simuli金宝appnk支持包,以及硬件本身。金宝app我还会提到如何利用这个网络研讨会来补充大学课程和其他培训活动的教学和学习目标。
然后,我将向你们展示,我们如何利用空中飞行器和其他微型飞行器来模拟空中飞行环境。我将向你们展示如何利用空中飞行器和其他飞行器来控制环境为了替换飞机固件,如何使用Aerospace Blockset中提供的即装即用的部署和飞行示例驾驶微型无人机,以及如何使用Simulink编码器记录飞行数据。然后我将结束网络研讨会。金宝app
让我们看看我们在本次网络研讨会中使用的软件工具和材料。在本次网络研讨会中,我使用MATLAB®发布2017b, Simuli金宝appnk,以及用于PARROT迷你无人机、Aer金宝appospace Blockset、Simulink编码器和Simulink 3D动画的Simulink支持包。请注意,Simulink中包含了Simulink 3D动画的演示许可证,金宝app它让我们可以在3D中可视化仿真,而无需修改所使用的虚拟现实文件。
在硬件方面,我使用了PARROT的滚动蜘蛛微型无人机、护目镜、微型无人机附带的微型USB电缆,一个支持蓝牙的USB加密狗金宝app®低能量驱动,额外的电池,包括一个微型无人机,一个充电器。本次网络研讨会提供的材料也适用于PARROT Mambo迷你无人机,截至2018年1月支持。金宝app
对于这篇介绍,我想回答六个问题。这将有助于让大家了解本次网络研讨会所需的背景知识,并邀请您进一步调查。
好吧什么是基于模型的设计?基于模型的设计是一个能够快速且经济高效地开发动态系统(包括控制系统、信号处理和通信系统)的过程。在基于模型的设计中,系统模型处于开发过程的中心,从需求开发到设计、实现和测试。模型是一个可执行的规范,您可以在整个开发过程中不断完善它。
什么是Simulink?金宝app金宝appSimulink是一个用于多领域仿真和基于模型的设计的框图环境。它支持金宝app嵌入式系统的系统级设计、仿真、自动代码生成以及持续测试和验证。金宝appSimulink提供了一个图形编辑器、可定制的块库以及用于建模和模拟动态系统的求解器。
什么是PARROT迷你无人机?PARROT微型无人机是一种超紧凑的飞行动力系统,配有四个螺旋桨,使其成为四轴飞行器,可以通过智能手机或平板电脑进行控制。多亏了自动驾驶仪,它们可以变得非常稳定。它们可以结合三轴陀螺仪和三轴加速度计的信号,飞行高度的压力传感器,近地面精密飞行的超声波传感器,以及一个可用于光流和图像处理的向下摄像头。
现在知道什么是Simulink,什么是P金宝appARROT微型无人机,PARROT微型无人机的Simulink支持包是什么?该支持包是一个基于Simulink的M金宝appathWorks官方硬件支持附加组件,可用于设计、模拟和部署飞行控制算法,以便通过蓝牙无线方式对鹦鹉微型无人机进行控制。它允许您使用机载传感器的组合来开发、模拟和测试飞行控制算法。有了PARROT微型无人机和Simulink支持包,您就有了一个低成本、手掌大小的实验室,可以在教室或家中进行反馈控制实验。
Simulink附金宝app加组件是什么?它们提供什么功能?Simulink附加组件是MathWorks工具,用于扩展Simulink中提供的功能。Simulink产品系列包括用于基于事件的建模、物理建模、控制系统、信号处理和无线通信、代码生成、实时仿真和测试、验证和确认、三维可视化和报告的附加工具。
从40多个Simulink附加工具中金宝app,我想重点介绍我们将在本网络研讨会中使用的两个。Aerospace Blockset是一个Simulink附加工具,它通过用于建模和模拟飞机、航天器、火箭、推进系统和无人机载车辆的模块扩展其功能。
金宝appSimulink Coder是一个附加工具,它从Simulink图、StaseFuffe中生成和执行C和C++代码。®图表和MATLAB函数。生成的源代码可用于实时和非实时应用,包括仿真加速、快速原型和硬件在环仿真。
为什么MathWorks开发了对PARROT微型无人金宝app机的Si金宝appmulink支持?原因如下三个。首先,利用无人机作为流行的硬件平台,帮助教授和讲师培训学生基于模型的设计。第二,利用经过高等教育验证的解决方案,帮助行业创新者理解和采用基于模型的设计。
第三,在关键的、真实的应用程序中产生对基于模型的设计的影响的兴趣和认识。我们希望您充分利用这些功能,了解如何将这些功能应用到家庭教室或项目中,并帮助您在数小时内而不是数周或数月内开始工作和运行。
除本次网络研讨会外,如果您对使用minidrone的问题或故障排除步骤有疑问,我们将在文档中提供详细步骤,并附带MATLAB答案™ 可以从硬件目录页中找到。让我们来看看如何使用Aerospace Blockset对无人机进行建模和模拟。
Aerospace Blockset提供了一个准备模拟的构建和飞行示例,我们以此为基础进行本次网络研讨会。在本节中,您将学习如何从Aerospace Blockset示例中找到并打开四轴飞行器项目的实例。你会得到一个简短的参观如何利用最佳实践的例子对于这个应用程序,向您展示如何运行一个模拟无人机的可视化结果的方法,如何修改模型自定义飞行模拟输入,和提供的飞行控制器概述航天Blockset例子。
您可以通过在MATLAB命令窗口中输入doc,选择Aerospace块集,单击示例并滚动到quadcopter项目来查找并打开仿真模型。在文档页面上,您可以找到有关此示例的详细信息。也可以通过在MATLAB命令窗口中输入以下命令直接打开它。
配置项目环境后,将有三个新窗口:Simulink项目名称Quadcopter、Quadcopter飞行仿真模型的顶层,以及使用Simulink 3D动画的无人金宝app机可视化窗口。Simulink项目是一个允许我们组织与本示例相关的文件、设置和用户定义任务的环境,其中包含一个实例,我们可以在用户的Simulink项目文件夹中本地修改这些实例,而无需覆盖在Aerospace Blockset中形成的示例文件。
让我们简要介绍一下仿真模型。该模型由6个主要的子系统块(橙色)组成,这些子系统块包含了动态系统的数学表示。有一个数学表示的动力学的机身,传感器,环境,和飞行控制系统。还有一些块用于向仿真提供输入命令并获得可视化输出。
这里有四个子系统是变种子系统,我们可以在不同的子系统之间进行切换,因此它们的名字叫变种。在这种情况下,被称为FCS的飞行控制系统的模块不是一个变型子系统,而是一个建模子系统,这意味着模块内容引用了另一个Simulink模型。金宝app在这个模型的顶层有几个其他模块用来设定模拟的速度,还有一个模块用来在达到不希望的飞行条件时停止模拟。
要运行无人机模拟,只需按Play键,您将看到Simulink在T Final中指定的持续时间内获得系统的时间响应,然后停止。可以使用“设定速度”块更改模拟运行的速度。金宝app
例如,对于每一秒,您可以只运行十分之一秒的模拟,并将采样时间增加到100微秒,以可视化四轴飞行器的慢动作动画。运行仿真时,可以看到微型无人机从地面起飞和悬停的3D模型。
如果双击可视化子系统,您将发现另外两个选项。首先,来自各州的信号与Aerospace Blockset提供的标准驾驶舱飞行仪表显示器连接。该仪器将显示飞机变量的测量,在这种情况下,人工地平线,高度计,空速指示器,航向指示器,爬升率指示器,以及每四个推进器的百分比RPM指示器。相关信号在提取飞行仪表子系统中找到。
其次,可视化块包括为不同子系统捕获或显示仿真结果的选项。默认情况下激活的变体是Simulink 3D动画选项。金宝app变量VSS可视化控制的其他三个选项是可视化变量和状态的时间响应的范围;在MATLAB工作空间中保存时间响应变量,用于飞行后仿真分析,如使用Aerospace Toolbox;还有飞行装备,一个飞行模拟器,在这个第三方和开源的模拟器中渲染飞机动力学,通常在航空航天工业中使用。
在本次网络研讨会中,我们将使用为所有Simulink用户启用的演示许可证,金宝app使用Simulink 3D动画渲染选项。我们将看到飞行模拟输入的变化如何导致飞机模拟行为的变化。
要修改四旋翼机飞行模拟输入,您可以使用命令子系统。该子系统还有四个其他变量,可供您选择用于模拟的输入信号源。有Simulink builder方法、操纵杆选项、数据输入变量和从电子表格文件读取。金宝app
用于命令子系统的默认变体采用信号生成器,这是我们在本次网络研讨会中使用的一个简单选项。这个变体允许你定义XYZ和摇摆,俯仰,翻滚命令作为飞行控制器的参考信号。你可以在信号生成器上修改这些信号,并在模拟中观察飞机行为的变化。您将使用在本次网络研讨会中已经介绍过的一个可视化选项。
飞行控制器在FCS子系统中。当我们双击它时,它会打开另一个模型,这个块会引用它。这被称为模型子系统,它包含在基本的Simulink库中。金宝app在这种情况下,这个模型子系统包含并封装了最终将部署在无人机上的飞行控制算法。
请记住,模拟模型是基于模型的设计的中心,在我们在实际硬件上尝试设计之前,它有助于在模拟中测试设计。这有助于在我们准备在硬件上测试之前完善控制设计,也有助于防止测试期间出现各种问题,包括损坏和崩溃。您可以想象MBD对系统的开发和生命周期有多么重要,它比小型无人机更关键。
让我们看看飞行控制系统里面有什么。子系统中的算法是控制器可以包含的一个例子。这个飞行控制器的设计来源于麻省理工学院Sertac Karaman教授和Fabian Riether教授的工作。它利用包含硬件抽象层的飞机指令感知输入,并向发动机和坠毁预测标志提供输出,以帮助我们在检测到失稳的情况下停止模拟或飞行。
请注意,本次网络研讨会中的飞行控制器是随Aerospace Blockset发货的四轴飞行器项目示例的一部分,仅用于该目的。如果你对设计自己的状态估计器和飞行控制器感兴趣,你可以从探索在飞行控制系统模块中找到的控制器和估计器模型子系统开始。
然而,飞行控制设计超出了本网络研讨会的范围,但我们邀请您使用这些子系统来提出自己的设计。例如,麻省理工学院的学生使用控制器子系统来实现状态反馈控制器和LQR控制器,作为本科生和研究生反馈控制课程的一部分。
一旦飞行控制器在模拟中被设计和调整,您可能需要生成代码并在微型无人驾驶飞机硬件上进行测试。现在,我们对无人机的仿真模型及其工作原理有了更好的了解,我们可以继续进行,并获得更多的硬件实践。
本节网络研讨会将引导您完成将飞行控制器部署到微型无人机所需的硬件和无线通信设置步骤。为了在PARROT微型无人机上部署飞行控制器设计,您首先需要使用附加浏览器下载硬件支持包,然后进行硬件设置提供的步骤。这将帮助您安装PARROT提供的自定义固件,以便Simulink用户设计自己的飞行控制算法并将其与飞机软件系统集成。固件更换通过micro USB连接进行,可能需要大约五分钟。金宝app金宝app
固件被替换后,根据您的操作系统,您应该遵循一些特定的步骤来启用主机和迷你无人机之间的无线通信。适用于运行Windows系统的电脑®,您将需要启用支持芯片组和驱动程序的低功耗蓝牙接口,或使用具有这些特性的USB加密狗。金宝appWindows操作系统下,推荐使用CSR Harmony无线软件栈2.1.63.0版本。
对于每种支持的操作系统——windows、Mac和Linux金宝app®-支持包文金宝app档包括更详细的设置和故障排除步骤。此外,对于某些特定配置,我们的技术支持团队提供了MATLAB Answers,可以帮助解决任何持久连接问题。金宝app
在用无人机验证蓝牙连接后,在控制器设计任何飞行测试之前,值得使用支持包中包含的模板来执行桌面测试,其中我们只移动螺旋桨。金宝app为此,您可以在MATLAB命令窗口中输入parrot_gettingstarted并单击Deploy To Hardware来打开模板。
诊断查看器窗口提供有关代码生成、编译、文件传输和从属流程执行的信息。此时,模型已经可以在无人机上运行了。要运行它,首先通过点击诊断查看器上的这里打开飞行控制用户界面,并可选地设置您希望模型执行的持续时间。注意不要在这个时候增加飞行控制UI上的功率增益,因为螺旋桨可能会产生足够的推力来启动不受控制的飞行。
接下来,单击Start,您将在微型无人机上执行算法。在这种情况下,回路中没有飞行控制器算法,我们只是向发动机发送信号,以确保工具链和蓝牙通信工作正常。
在验证了这些之后,我们可以通过点击Stop来中断算法的执行。飞行控制用户界面让我们下载飞行日志和MAT文件与飞行数据从微型无人机到当前目录。检索这些文件以进行记录和分析是一个很好的实践。一旦联合发电过程已经用无人机进行了测试,我们现在可以准备部署来自Aerospace Blockset示例的飞行控制器设计,并执行实际的测试飞行。
在飞行控制器设计就绪、无人机硬件设置和测试完成后,我们现在将介绍网络研讨会的试飞和分析部分。首先,使用Aerospace Blockset示例,我们将设置硬件目标,以便专门为PARROT微型无人机部署代码,并确保我们已启用数据记录,以利用e Simulink编码器提供的记录传感器和飞行控制器信号以进行飞行后分析的能力。金宝app
然后,我们将执行第一次试飞,在Aerospace Blockset中有一个支持包,您应该能够在短短几个小时甚至更少的金宝app时间内复制。然后,我将解释如何修改命令输入,以跟踪与信号生成器定义的高度参考信号,以及如何获取飞行数据进行分析和可视化。
回到包含Aerospace Bloc金宝appkset示例的Simulink项目,从项目中设置硬件目标,您所需要的就是单击工具条上可用的快捷方式。然后,在四轴飞行器飞行仿真模型上,双击FCS子系统。要启用飞机上的数据记录,您可以在MATLAB命令窗口中输入以下命令。
当启用数据记录时,Simulink模型将尝试在飞行前分配内存,以存储金宝app传感器飞行控制器信号。请注意,微型无人驾驶飞机每次飞行只能存储如此多的数据,减少飞行持续时间参数T Final将让您控制分配的内存量。
如果所需内存超过无人机容量,则在飞行控制用户界面上按Start时,Simulink模型将不会执行。考虑到这金宝app些因素,我们准备试用带有航空航天区块集的飞行控制器飞船。然而,其他重要的考虑因素如下。
所有飞行都是试飞。您应该在模拟中测试飞行控制器的设计和输入是否符合性能标准。在足够大的房间内进行试飞,例如,至少20英尺乘20英尺乘10英尺高的房间。采取合理的谨慎措施,防止对飞机、周围环境、观察员和您自己造成损坏。
在超声波灵敏度方面,小型房间可能会因超声波信号在墙壁和家具上反弹而导致飞行稳定性问题。地面材料,例如地毯,可能会吸收超声波信号并影响飞行稳定性。
在相机灵敏度方面,地面上的图案可能会影响光流性能和飞行稳定性。照明条件也可能影响光流和图像处理性能以及飞行稳定性。记住这些注意事项,让我们首先尝试一下航空区块集示例的悬停飞行。
我们单击Deploy to Hardware。让Sim金宝appulink建立和转移飞行控制器到无人机。打开飞行控制用户界面,点击“开始”。确保任何其他参与者都知道即将进行的试飞。对于每一次飞行,最好的做法是下载飞行日志和带有飞行数据的MAT文件,用于飞行后分析。
现在,我将稍微修改一下飞行控制系统,并引入参考信号,以便将它们部署到无人机上。我将尝试在左右方向上改变y轴的参考信号,并使无人机根据显示的方形信号改变飞行位置。在这次网络研讨会上,我为飞行控制器创建了一个变体子系统,让我选择它作为一个选项。
选择后,我模拟、验证模拟中的预期行为,然后部署到硬件并进行测试。我部署到飞行控制UI中的硬件上。结果是:无人机起飞并保持在中心位置,然后跟随y方向的给定参考信号。
飞行完成后,我从微型无人机中检索飞行日志和MAT文件。我们可以使用MAT文件中存储的数据来绘制和可视化传感器信号、方向、电机输出、高度、轨迹、位置、速度、光流速度和电池充电百分比。
类似地,我创建了另一个变体系统,该系统更改z轴的参考信号,并使无人机根据显示的飞行剖面改变高度。我再次模拟以验证预期行为,然后部署到硬件进行测试。
我部署到硬件。打开飞行控制界面,这里是结果。无人机起飞到一米高度,爬升到两米,再下降一米,然后降落到地面。
最后,让我们讨论一下直接从Simulink提供高度设定值。金宝app我们称之为在外部模式下运行飞行控制器,它在硬件上构建并部署Simulink模型,同时允许在执行过程中从框图更新某些参数。金宝app
在这种情况下,我们使用这种飞行控制器,并利用此仪表板块在飞行期间手动修改无人机的高度。我部署到硬件。打开飞行控制UI,这是测试飞行的结果。无人机起飞到大约一米的高度,然后按照我发送的高度命令飞行来自Simulink编辑器。金宝app
您可以自己尝试对参考信号进行一些其他更改,以测试该飞行控制器。然而,这种设计仅仅是一个起点,并没有使用大气压力传感器,例如。您将对飞行控制器进行哪些更改,以使其使用大气压力传感器时更加稳健?
本次网络研讨会的目的是提供一个入门资源,介绍如何使用Simulink模拟建造和驾驶手掌大小的无人机,您可以使用该无人机了解控制系统和基于模型的设计。现在,您可以深金宝app入研究飞行控制系统,提出自己的飞行控制策略、设计的模拟和测试飞行。现在,您还可以开始使用基于模型的设计和开发技术导航V图,使用Simulink支持的模拟、代码生成以及验证和验证工作流的任何工具。金宝app
最后,这里是一些额外的资源,您可以使用这些资源了解更多关于基于模型的设计、Simulink、PARROT微型无人机Simulink支持包、航空航天区块集以及如何通过MATLAB Central加入社区的金宝app信息™, 文件交换,MATLAB解答金宝app。谢谢你加入我们。我们期待着在未来看到您的项目。