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