嗨,大家好。我的名字是Greg,我是Mathworks的Simulink万博1manbetx产品营销。在本网络研讨会中,您将了解Simulink如何使用Simulink设计,万博1manbetx模拟和部署飞行控制器,以便使用Simulink的Palm-Size Quadcopter。它的支撑万博1manbetx套件用于鹦鹉迷你素和航空航天块集。此网络研讨会旨在作为入门资源,并将引入Simulink,四叉功能硬件,以及如何使用Simulink附加工具来开发从飞机建模和模拟到部署和飞行分万博1manbetx析的完整工作流程。让我们开始吧。
我们将使用此轮廓实现当今的网络研讨会目标。关于Simulink的简要介绍,它的附加工具,用于Parrot MiniDrone万博1manbetxs的Simulink支持包以及硬件本身。万博1manbetx我将提到该网络研讨会如何用于在大学级课程和其他培训活动中补充教学和学习目标。
我将向您展示如何使用Aerospace Blockset来建模和模拟飞机和其他依赖于大气和其他环境条件的机载车辆。然后我们会讲到你需要做什么来将这个模拟带到现实世界中,并在PARROT微型无人机上部署飞行控制算法。为此,我将展示如何替换飞机固件,如何使用就绪模拟部署和航空航天块集可用的飞行示例飞行迷你无人机,以及如何使用Simulink Coder记录飞行数据。万博1manbetx然后我将结束这次网络研讨会。
让我们看看我们在本次网络研讨会中使用的软件工具和材料。在本次网络研讨会中,我使用MATLAB®发布2017b, Simuli万博1manbetxnk,以及用于PARROT迷你无人万博1manbetx机、Aerospace Blockset、Simulink编码器和Simulink 3D动画的Simulink支持包。请注意,Simulink中包含了Simulink 3D动画的演示许可证,万博1manbetx它让我们可以在3D中可视化仿真,而无需修改所使用的虚拟现实文件。
对于硬件,我使用了来自鹦鹉,安全护目镜,Minidrone附带的微USB电缆的滚动蜘蛛迷你型,这是一个支持蓝牙的USB加密狗万博1manbetx®利用其司机的能量低,额外的电池到迷你符中包含的电池和充电器。本文中提出的材料还适用于鹦鹉Mambo Minidrone,该Mambo Minidrone于2018年1月得到支持。万博1manbetx
对于这个介绍,有六个问题我想覆盖。这应该有助于让每个人都能在这个网络研讨会所需的背景上加速,并邀请您进一步调查。
好的。什么是基于模型的设计?基于模型的设计是一种过程,可以快速且经济高效地开发动态系统,包括控制系统,信号处理和通信系统。在基于模型的设计中,系统模型位于开发过程的中心,从需求开发通过设计,实现和测试。该模型是您在整个开发过程中不断地改进的可执行规范。
什么是simulink?万博1manbetx万博1manbetxSimulink是一个用于多域模拟和基于模型的设计的框图环境。它支持万博1manbetx嵌入式系统的系统级设计,仿真,自动代码生成和持续测试和验证。万博1manbetxSimulink提供了一种图形编辑器,可自定义的块库和用于建模和模拟动态系统的求解器。
现在鹦鹉迷你素是什么?Parrot迷你素是超紧凑的飞行动态系统,具有四个螺旋桨,使它们成为Quadcopter,它们可以从智能手机或平板电脑控制。由于自动驾驶仪,它们可以使它们非常稳定。它们可以将信号与3轴陀螺仪和3轴加速度计,用于飞行高度的压力传感器,超声波传感器,用于接近地面的精密飞行,以及可用于光学流量和图像处理的朝下的相机。
现在知道什么是模拟,什么是鹦鹉迷你素,什万博1manbetx么是鹦鹉迷你素的Simulink支持包是什么?万博1manbetx支持包是万博1manbetx基于Simulink的官方MathWorks硬件支持附加加载页,以便您在蓝牙上无线地设计,模拟和部署飞行控制算法到鹦鹉迷你标语。万博1manbetx它允许您使用板载传感器的组合来开发,模拟和测试飞行控制算法。使用Parrot MiniDrone和Simulink支持包,您万博1manbet万博1manbetxx可以在课堂或家中执行低成本,手掌尺寸实验室,以在教室或家中执行反馈控制实验。
什么是Simuli万博1manbetxnk附加组件以及它们提供的功能?万博1manbetxSimulink Add-on是Mathworks工具,可以扩展Simulink中提供的功能。Simu万博1manbetxlink产品系列包括用于事件的建模,物理建模,控制系统,信号处理和无线通信的附加工具,代码生成,实时仿真和测试,验证和验证,3D可视化和报告。
从40多个Simulink附加工具,万博1manbetx我想专注于我们将在这个网络研讨会中使用的两个。Aerospace Boldsset是一个模拟加万博1manbetx载工具,其功能将其具有用于建模和模拟飞机,航天器,火箭,推进系统和无人驾驶空中车辆的块。
万博1manbetxSimulink Coder是一个附加工具,可以从Simulink图statflow生成和执行C和c++代码®图表和MATLAB功能。生成的源代码可用于实时和非实时应用程序,包括模拟加速度,快速原型设计和环路内仿真。
为什么MathWorks开发了对PARROT微型无人万博1manbet万博1manbetxx机的Simulink支持?原因如下三个。首先,利用无人机作为流行的硬件平台,帮助教授和讲师培训学生基于模型的设计。第二,利用经过高等教育验证的解决方案,帮助行业创新者理解和采用基于模型的设计。
第三,为基于模型的设计的影响产生兴趣和意识,在批判性的现实应用中的影响。我们希望您利用这些功能,了解如何应用于您的家庭教室或项目,并帮助您在几小时而不是几周或几个月内运行。
超出本网络研讨会以及在使用MiniDrone的问题或故障排除步骤的情况下,我们提供了可以从硬件目录页面中找到的Matlab Answers™的文档中的详细步骤。让我们来吧,了解我们如何使用航空航天块集模拟并模拟无人机。
Aerospace Boltsset提供了一款即将到来的模拟版本和飞行示例,我们将在此网络研讨会上。在本节中,您将学习如何从AeroSpace BlockSet示例查找和打开四分之一项目的实例。您将获得简要介绍该示例如何利用此应用程序的最佳实践,向您展示如何运行无人机的模拟,可视化结果的方法,如何修改模型以自定义飞行仿真输入,以及概述飞行控制器提供了航空航天块集合例。
您可以通过在MATLAB命令窗口中输入DOC,选择Aerospace BoltsSet,单击示例,然后滚动到Quadcopter项目,找到并打开模拟模型。在“文档”页面上,您可以找到有关此示例的详细信息。您还可以通过在Matlab命令窗口中输入以下内容直接打开它。
一旦配置了项目环境,就会有三个新窗口:Simulink项目名称Quadcopter,四轴飞行器飞行仿真模型的顶层,以及使用Simulink 3D动画的无人机可万博1manbetx视化窗口。Simu万博1manbetxlink项目是一个环境,它允许我们组织与本示例相关的文件、设置和用户定义的任务,并包含它们的一个实例,我们可以在用户的Simulink项目文件夹中本地修改这些实例,而不覆盖Aerospace Blockset中形成的示例文件。
让我们简要介绍一下仿真模型。该模型由6个主要的子系统块(橙色)组成,这些子系统块包含了动态系统的数学表示。有一个数学表示的动力学的机身,传感器,环境,和飞行控制系统。还有一些块用于向仿真提供输入命令并获得可视化输出。
这里的四个子系统是变体子系统,让我们在各种子系统选择之间切换,因此他们的名称变体。在这种情况下,名为FCS的块不是变体子系统,而是建模子系统,这意味着块内容参考另一个Simulink模型。万博1manbetx此模型的顶级有几个其他块来设置模拟的速度,另一个块,以便在它达到不希望的飞行条件时进行仿真停止。
要运行无人机的模拟,您需要做的就是按PLAY,您将看到Simulink获取系统的时间响应,以便在T最终中指定的持续时间,然后停止。万博1manbetx您可以使用Set Pace块更改模拟运行的速度。
例如,对于每一秒,您可以只运行十分之一秒的模拟,并将采样时间增加到100微秒,以可视化四轴飞行器的慢动作动画。运行仿真时,可以看到微型无人机从地面起飞和悬停的3D模型。
如果双击可视化子系统,您将发现另外两个选项。首先,来自各州的信号与Aerospace Blockset提供的标准驾驶舱飞行仪表显示器连接。该仪器将显示飞机变量的测量,在这种情况下,人工地平线,高度计,空速指示器,航向指示器,爬升率指示器,以及每四个推进器的百分比RPM指示器。相关信号在提取飞行仪表子系统中找到。
其次,可视化块包括用于捕获或显示仿真结果的变体子系统选项。默认情况下的变体是Simulink 3D动画选项。万博1manbetx由变量VSS可视化控制的其他三个选项是可视化变量和状态的时间响应的范围;工作区保存Matlab工作区上的时间响应变量及其用于飞行后模拟分析的方法,例如,使用Aerospace Toolbox;和飞行装备,飞行模拟器,在航空航天行业常用的第三方和开源模拟器中呈现飞机动态。
在本网络研讨会中,我们将依靠Simulink 3D动画渲染选项使用为所有S万博1manbetximulink用户启用的演示许可证。我们将看到飞行模拟输入中的变化如何导致飞机仿真行为的变化。
要修改四轴飞行器的飞行模拟输入,你可以使用一个指挥子系统。这个有其他四种变体,可以让您选择用于模拟的输入信号的来源。有Simulink构建器方法万博1manbetx、操纵杆选项、数据输入变量和从电子表格文件读取。
用于命令子系统的默认变体采用信号构建器,这是我们在本网络研讨会中使用的简单选项。此变体允许您定义XYZ和yawl,音高,滚动命令作为飞行控制器的参考信号。您可以在信号构建器上修改任何这些信号,并观察模拟中飞机行为的变化。您将使用此网络研讨会中已介绍的可视化选项之一。
飞行控制器在FCS子系统中。当我们双击它时,它会打开另一个模型,这个块会引用它。这被称为模型子系统,它包含在基本的Simulink库中。万博1manbetx在这种情况下,这个模型子系统包含并封装了最终将部署在无人机上的飞行控制算法。
请记住,仿真模型位于基于模型的设计中心,并在我们在真正的硬件上试用它们之前有助于测试模拟中的设计。这有助于在我们准备在硬件上测试它之前改进控制设计,并有助于在测试期间防止各种问题,包括损坏和崩溃。您只能想象MBD的重要性,系统的开发和生命周期比Minidrone更为重要。
让我们看看飞行控制系统里面有什么。子系统中的算法是控制器可以包含的一个例子。这个飞行控制器的设计来源于麻省理工学院Sertac Karaman教授和Fabian Riether教授的工作。它利用包含硬件抽象层的飞机指令感知输入,并向发动机和坠毁预测标志提供输出,以帮助我们在检测到失稳的情况下停止模拟或飞行。
请知道本网络研讨会中的飞行控制器是航空航天块集中的Quadcopter项目示例的一部分,仅用于此目的。如果您有兴趣设计自己的状态估算和飞行控制器,可以通过探索飞行控制系统块中的控制器和估计器模型子系统来开始。
然而,飞行控制设计超出了本次网络研讨会的范围,但我们邀请你使用这些子系统来提出你自己的设计。例如,麻省理工学院的学生已经使用了一个控制器子系统来实现状态反馈控制器和LQR控制器,作为本科生和研究生反馈控制课程的一部分。
一旦在模拟中设计和调整了飞行控制器,您可能希望在MiniDrone硬件上生成代码并测试它。现在我们更好地了解无人机的模拟模型以及它如何工作,我们可以继续使用硬件。
本节的网络研讨会将带您通过步骤设置硬件和无线通信所需的部署飞行控制器到微型无人机。为了在PARROT微型无人机上部署飞行控制器设计,首先需要使用Add-On Explorer下载硬件支持包,并遵循提供的硬件设置步骤。万博1manbetx这将帮助您安装PARROT提供的定制固件,让Simulink用户设计并将自己的飞行控制算法与飞机软件系统集成。万博1manbetx更换固件需要通过micro-USB连接,耗时约5分钟。
替换固件后,根据操作系统,您应该遵循特定步骤,以便在主计算机和MiniDrone之间启用无线通信。适用于在Windows上运行的计算机®,您将需要启用支持芯片组和驱动程序的低功耗蓝牙接口,或使用具有这些特性的USB加密狗。万博1manbetxWindows操作系统下,推荐使用CSR Harmony无线软件栈2.1.63.0版本。
对于支持-Windows,Mac和Linux的每个操作系统的每个操作系统万博1manbetx®-支持包文万博1manbetx档包括更详细的设置和故障排除步骤。此外,对于某些特定配置,我们的技术支持团队提供了MATLAB Answers,可以帮助解决任何持久连接问题。万博1manbetx
在使用无人机和使用控制器的任何飞行测试之前验证了蓝牙连接后,值得使用支持包装的模板来执行桌面测试,其中我们只移动螺旋桨。万博1manbetx为此,您可以通过在MATLAB命令窗口中输入Parrot_gettingStarted来打开模板,然后单击部署到硬件。
诊断查看器窗口提供有关代码生成,编译,文件传输和驱动器进程的执行信息。此时,模型已准备好在无人机上运行。要运行它,首先通过单击诊断查看器以及可选地设置持续时间来打开飞行控制用户界面。当螺旋桨可能产生足够的推力以启动不受控制的飞行时,请注意不要增加飞行控制UI的功率增益。
接下来,通过单击“开始”,您将在Minidrone上执行算法。在这种情况下,循环中没有飞行控制器算法,我们只向电机发送信号,以确保工具链和蓝牙通信很好。
在已验证之后,我们可以通过单击停止来打断算法的执行。飞行控制用户界面让我们从Minidrone到当前目录下载飞行日志和遥控文件。检索这些文件进行记录和分析是一个很好的做法。一旦通过无人机测试了一个生成过程,我们现在可以准备好从航空航天块集示例下部署飞行控制器设计并执行实际的测试飞行。
有了飞行控制器设计准备和无人机硬件设置和测试,我们现在覆盖测试飞行和分析部分的网络研讨会。首先,使用Aerospace Blockset示例,我们将设置硬件目标,以部署专门针对PARROT微型无人机的代码,我们将确保数据日志功能,利用Simulink Coder提供的功能,记录传感器和飞行控制器信号,用于飞行后分析。万博1manbetx
然后,我们将执行第一个测试飞行,它在航空航天块集中使用支持包,您应该能够在几个小时内再现甚至更少。万博1manbetx然后,我将解释如何修改命令输入以跟踪用信号构建器定义的高度参考信号,以及如何获取用于分析和可视化的飞行数据。
返回包含Aerospace Bolt万博1manbetxsSet示例的Simulink项目以从项目设置硬件目标,您需要的只是点击工具串上可用的快捷方式。然后,在Quadcopter飞行模拟模型上,双击FCS子系统。要启用对飞机上的数据记录,可以在MATLAB命令窗口中输入以下内容。
当启用数据记录时,Simulink模型将尝试在飞行到存储的传感器飞行万博1manbetx控制器信号之前分配内存。请注意,Minidrone只能存储如此多的数据每种航班,并减少飞行持续时间参数T决赛,将让您控制分配多少内存。
如果所需的内存超过无人机容量,则在飞行控制用户界面上按开始时不会执行Simulink模型。万博1manbetx通过这些考虑,我们已准备好尝试使用航空航天块集的飞行控制器船。但是,其他重要考虑因素是以下内容。
所有航班都是测试航班。您应该测试符合模拟中符合性能标准的飞行控制器设计和输入。在足够大的房间进行测试飞行,例如,一个至少20英尺×20英尺高的房间。采取合理的小心,以防止损坏飞机,周围环境,观察者和您自己。
在超声敏感度上,小房间可能导致超声信号在墙壁和家具上弹跳的飞行稳定性问题。地面材料,例如地毯,可以吸收超声信号并影响飞行稳定性。
在相机敏感性上,地面上的图案可能会影响光学流动性能和飞行稳定性。照明条件也可能影响光学流量和图像处理性能和飞行稳定性。保持这些考虑因素,让我们首先尝试航空航天块集合例的悬停飞行。
我们单击部署到硬件。让Sim万博1manbetxulink构建并将飞行控制器转移到无人机。打开飞行控制用户界面,然后单击开始。确保任何其他参与者都知道即将发生的测试飞行。对于每次航班,最好的做法是下载飞行日志和垫文件,并使用飞行数据进行航班分析。
现在,我将一点修改飞行控制系统并引入参考信号,以将它们部署到无人机。我将尝试在左右方向上改变Y轴的参考信号,并根据所示的方形信号使无人机变化位置变为飞行。对于此网络研讨会,我为飞行控制器创建了一个变体子系统,让我选择它作为选项。
一旦选择,我会模拟,验证模拟中的预期行为,然后部署到硬件和测试。我部署到飞行控制UI中的硬件。这是结果:无人机起飞并保持到中心位置,然后在Y中遵循给定的参考信号。
飞行完成后,我从Minidrone中检索飞行日志和垫子文件。我们可以使用存储在垫文件中的数据来绘制和可视化传感器信号,方向,电动机输出,高度,轨迹,位置,速度,光学流速和电池充电百分比。
类似地,我已经创建了另一个变体系统,改变z轴的参考信号,并使无人机改变高度与飞行剖面显示。我再次进行模拟,以验证预期的行为,然后部署到硬件进行测试。
我部署到硬件。打开飞行控制UI,这是结果。无人机从一米的高度起飞并爬到两米,再次下降一米,然后下降到地面。
最后,让我们讨论一下直接从Simulink提供高度设定值。万博1manbetx我们称之为在外部模式下运行飞行控制器,它在硬件上构建并部署Simulink模型,同时允许在执行过程中从框图更新某些参数。万博1manbetx
在本例中,我们使用飞行控制器的这种变体,并利用仪表板块在飞行期间手动修改无人机的高度。我部署到硬件上。打开飞行控制UI,这里是测试飞行的结果。无人机起飞到大约一米的高度,然后按照我从Simulink编辑器发出的高度命令飞行。万博1manbetx
你可以自己对参考信号做一些其他的改变来测试这个飞行控制器。但是,本设计只是一个起点,没有利用大气压力传感器等。你会对飞行控制器做些什么改变让它在大气压力传感器的作用下变得更强大?
该网络研讨会的目标是提供使用Simulink模拟构建并飞行一种可以用于了解控制系统和基于模型的设计的手掌型无人机的进入资源。万博1manbetx现在,您可以挖掘飞行控制系统,并提出自己的飞行控制策略,设计的模拟和测试航班。现在,您还可以使用基于模型的设计和开发技术开始使用基于模型的设计和使用Simulink的验证和验证工作流的工具来开始导航V图。万博1manbetx万博1manbetx
最后,这里有一些额外的资源,您可以用来了解有关基于模型的设计,Simulink,Simulink支持包,Simulink Support Package for Parrot MiniDrones,Ae万博1manbetxrospace Bolds万博1manbetxet,以及如何通过Matlab Central™,文件交换和Matlab答案加入社区。.感谢您加入我们。我们期待着在未来看到您的项目。