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