如何构建航班代码|无人机仿真和控制,第3部分
从系列:无人机仿真和控制
布莱恩•道格拉斯
这一节描述了如何创建四轴飞行器飞行软件和程序的无人机控制架构开发的最后一个视频。它涵盖了如何处理原始传感器读数和使用它们的控制器计算电机转速命令。
除了这两个功能,飞行控制软件还负责参考命令生成、数据记录和故障保护。您将看到如何这些有助于安全让四轴飞行器悬停。
仿真软件的四轴飞行器的例子万博1manbetx®用于无人机飞行软件编程作为起点,您将学习如何加载和运行代码的鹦鹉吗®Minidrone直接从仿真软件。万博1manbetx
我们正在设计一个四轴飞行器的控制系统。此时的系列中,我们已经学习了四轴飞行器产生运动的四个螺旋桨和我们走在一个控制系统架构,我们认为能够让我们的无人驾驶飞机盘旋。然而,仍然有一些我们需要采取更多的步骤之前,我们可以得到无人机飞行。首先,我们需要控制逻辑的代码,我们可以把它放在minidrone。我们叫这航班代码。第二,我们需要优化和调整航班代码直到悬停性能是我们正在寻找的。要做到这一点,我们将使用基于模型的设计,我们将使用一个现实的四轴飞行器模型和环境来设计我们的航班代码和模拟结果。我们会有两个不同的软件,我们会写:实际飞行在四轴飞行器上运行的代码,和我们使用的模型代码来模拟现实世界。在这个视频中,我们将更详细地探索飞行的代码。我是布莱恩,欢迎来到MATLAB技术说话。
飞行控制软件是整个飞行的一小部分的代码将在鹦鹉minidrone存在。还有操作代码和接口的传感器和测量过程。有代码管理电池,蓝牙®界面,led灯,有代码来管理汽车的速度,等等,有很多。
一个选项来实现飞行控制器将手工编写的C代码,然后编译整个飞行代码更改飞行控制器,最后加载minidrone编译后的代码。这是一个完全合理的方法来创建飞行代码,但是它有一些缺点在开发反馈控制软件。通过这种方法,我们没有一个简单的方法来调整控制器除了通过调整硬件。我们可以开发自己的调优工具和系统的模型和模拟如何表现。但我的经验是,在C代码设计和建模控制系统很难向别人解释的架构,它更难以理解的变化如何影响整个系统比用图形的方法。
所以我们要使用第二个选项,描述了飞行控制器使用块图图形。采用这一选项,我们将在仿真软件开发飞行控制器,然后自动代码成C代码,如果我们想在哪里我们可以手动更改,然后编译C代万博1manbetx码和负载到minidrone。添加这个额外的步骤的好处我认为仿真软件的代码更容易理解,加上在接下来的两个视频,我们将讨论如何建立无人机模型和环境模万博1manbetx型,这样我们可以模拟飞行控制器的性能和使用现有的工具来优化控制器增益。
我们不需要担心写的大部分航班代码,因为我们将使用仿真软件支持包鹦鹉Minidrones程序自定义飞行控制软件。万博1manbetx万博1manbetx这个包加载新的航班固件到车辆的方式让所有的无人驾驶飞机的正常操作功能但让我们替换固件的控制部分。只要我们保持相同的输入和输出信号完整,然后当我们计划minidrone通过仿真软件,我们写任何代码将被放置在正确的位置和接口可以与其它minidrone固件。万博1manbetx
在这个视频中,这里就是我们努力的方向。设计一个仿真软件模万博1manbetx型,需要外部命令和测量传感器读数作为输入,输出命令电机速度和安全标志,将关闭minidrone如果设置。这个标志是我们的保护,以防我们的代码导致无人机逃跑或发疯。然后我们可以构建的C代码,模型和实际的无人驾驶飞机飞软件,看看它。
我们有一个很好的开始飞行控制系统的体系结构,我们开发了上一节,但并不是所有的软件,我们需要编写。这只是控制器控制系统的一部分。例如,无人机传感器测量空气压力,该气压读数是传递到我们的飞行控制系统。然而,我们不是试图控制无人机特定压力,我们试图控制高度。因此,需要有额外的逻辑转换所有的测量状态来自传感器的控制状态所需的控制器。我们叫这阻止状态估计量。
除了国家估计量和控制器,还有逻辑我们必须决定是否要写设置关闭标记。我们可以把这段代码,但后来我们运行了无人机飞行的风险或损害附近的观察家。我们可以检查诸如无人机的自转速率高于某个阈值或一些边界以外的位置或高度。创造这段代码相对比较容易,真的可以拯救我们破坏硬件或其他的人。
最后,我们需要考虑数据日志记录。所有的固件存在minidrone记录数据,我们可以访问期间和之后。自从minidrone并不知道我们写的软件,我们需要确保我们有数据记录为我们感兴趣的变量。因为我们将使用仿真软件代码编写我们的航班,万博1manbetx我们可以很容易地创建逻辑将数据存储为.mat文件在本地MATLAB的无人驾驶飞机,我们可以下载®在飞行。
这些都是我们需要开发的四个主要子系统仿真软件为了飞行安全,功能代码。万博1manbetx但我们不会从头构建整个仿真软件模型的代码在这个视频中,它会花太多的时间。万博1manbetx幸运的是,我们不需要。航空航天Blockset™在MATLAB四轴飞行器项目基于鹦鹉minidrone我们要作为一个起点。有一些好的网络研讨会,我链接的描述,描述了如何打开这个模型并使用它,所以我不打算覆盖大部分的。相反,我将向您展示如何仿真软件代码匹配控制架构,我们开发了上一节也指出它如何实现万博1manbetx状态估计、数据记录和故障保护。我们会通过自动编码仿真软件模型和动作飞行minidrone万博1manbetx中看到这一点。
看着这个仿真软件模型时要注意的一件事是,它是在麻省理工学院开发的实验室部分的控万博1manbetx制理论课程,因此,建立教育基础理论。在某些情况下,它比我们需要执行逻辑相对简单的鼠标操作。我要开始从这个库存模型,这样看起来你也一样,当你打开它,但是我要修改它略我们沿着有清晰我们的目的。
好了,让我们去得到它。如您所见,这个模型的顶层有几个子系统:FCS,机身,环境,等等。可能不能立即看起来像它,但是这是我们的经典反馈控制系统。在左上角,我们系统生成参考信号或我们想要的设置点,无人机。飞行控制系统的块,误差项的生成和PID控制器。这个航班代码块会自动编码并加载到minidrone,我们要花大多数的这个视频。
FCS块是电动机的输出命令打了植物、机身动力学。可视化堵在角落里,情节信号和运行3 d可视化工具,模拟运行之外——这是我们的反馈回路。有一个环境块模型的重力向量和气压装置和传感器。最后,模拟的传感器模型块,四个传感器的噪声和动态minidrone上。所以你可以看到在这个顶级特征反馈回路。重要的实现视频是FCS块飞行代码,和其他所有的模型用于模拟。
现在,让我们进入FCS块,看看那里有什么。首先,你会注意到有三个输入,而我提到的两个。这是因为软件编写利用摄像头和图像处理帮助精确着陆。而精确着陆是有用的,这使我们的悬停控制器我将删除它现在,回去两个输入。
好的,让我们打开飞行控制系统块事情将开始看起来很熟悉。我们会开始我们的核心控制系统,控制器本身。作为一个快速提醒,控制器子系统需要参考信号和与状态估计进行比较得到误差信号。错误然后输入几个PID控制器最终生成所需的电动机的命令。让我们打开子系统块,看看它的样子。
图形,它看起来不同于控制器架构我们覆盖上一节,但我向你保证,主要逻辑是一样的,只是用一种稍微不同的方式,这个逻辑让我们起飞命令特殊行为以及控制横滚和俯仰角度直接降落。这两个功能我们不需要简单的悬停操纵。给你剩余的逻辑匹配架构我们发达之前,我将邮政通过一些重组这剩下的比赛我们的期望。好了。
现在你可以看到我们有XY位置外环控制器送入了辊距内循环控制器。和独立的,我们有偏航和高度控制器。总的来说,有六个共同控制的PID控制器的位置和姿态minidrone。
如果我们看看高度控制器,设置为比例和衍生品,你会发现它可能比你用来实现略有不同。
而不是一个高度误差项喂养到P和D分支,应用P获得高度误差来源于超声波,而D获得应用于垂直速度测量直接从陀螺。
这种方式,我们不需要求导的嘈杂的高度信号,我们已经有一个导数从不同的传感器。吵了一个小于超声波传感器的导数。
我要讲到的优缺点优化设置你的PID控制器时在本系列以后的视频中。现在,我们就接受这个方式,继续前进。
这些PID控制器的输出力和转矩命令所有饲料混合算法。这个生产所需的推力/汽车然后推力命令转换为电动机转速命令通过这一块。
总之这个子系统执行逻辑,我们上一节。
现在让我们把控制器和进入状态估计量,因为有一些很酷的东西在这个街区,我们应该谈谈。
涉及两个步骤以原始传感器测量并生成估计状态。首先,我们过程测量与过滤器然后混合在一起估计控制状态。让我们看看传感器处理块的细节。这看起来令人生畏,但底层的概念很简单。在顶部,加速度和陀螺数据被减去校准的偏见之前确定。通过消除偏见,零加速和零角速率测量应该导致一个零。下一步是旋转传感器的测量坐标系对身体框架。最后,过滤数据,通过一个低通滤波器去除高频噪声。
同样,超声波传感器有自己的偏见。和光学流数据只有通过/失败标准。如果光流传感器有一个有效的位置估计,估计我们要用,那么这个块设置有效性国旗,真的。总是有更多的传感器处理,可以做,但是我们很快就会看到,我们的无人驾驶飞机盘旋很好地只有这个简单的量的偏差、坐标变换和滤波。
现在我们已经过滤和校准数据,我们可以测量估计的任务的状态,我们需要控制器。两个橙色的块是用来估计高度和XY的位置。如果你看看在这些街区,你会看到他们每个人使用卡尔曼滤波融合的测量和预测我们认为系统应该如何为了想出一个最佳估计。已经有一系列MATLAB技术讨论,包括卡尔曼滤波所以我不会花更多的时间在这里,但是我建议看系列,如果你不熟悉,我把这个视频的描述中的一环。
其他non-orange块估计辊、音高和偏航,它使用一个互补滤波器代替卡尔曼滤波器。混合互补滤波器是一个简单的方法从两个传感器测量该系统在一起,它工作得很好。在这个视频的描述,我也与一个互补的视频互补控制器,如果你感兴趣我发布渠道。
描述的状态估计和控制器子系统,我们现在可以继续其他重要但不浮华的子系统。
有日志子系统拯救一群信号电机命令和位置引用.mat文件。这些值,我们可以下载并在航班的阴谋。我们也有事故预测国旗子系统。感觉在这里只是检查的逻辑变量如位置和角速度为离群值。当这种情况发生时,它设置minidrone关闭的国旗。在这里你可以如果你想添加额外的故障保护逻辑。
还有传感器数据组,也就是把单个传感器值的传感器总线,以便我们在代码可以访问它们。
最后,着陆的逻辑块。这一块将覆盖外部引用命令与着陆命令如果着陆标志设置。再一次,我会把开关和着陆部分简化的逻辑,因为我们不想执行精确着陆。
我这里有改变的另一件事,因为参考块的顶层模型并不是汽车的一部分运行在无人机上的编码器。所以它不会加载到无人机和执行。但没关系,因为我现在可以移动这个逻辑为飞行代码。因为我知道我只是想让无人机盘旋,我要硬编码值在这个块的引用。好了。这将使无人机在X Y的位置0 0和-0.7米的高度。记住,z轴是在无人机参照系,这是一个0.7米的高度。
好了,这已不再是着陆的逻辑,而是是我们参考命令生成的块。我们不需要这些输入了自参考命令现在硬编码的值。
完成整个飞行控制软件的快速预排在这四轴飞行器模型。和你现在应该有助于让我们了解每一个子系统minidrone安全盘旋,无论是传感器处理和过滤或各种反馈控制器甚至逻辑设置停止标志。我们都需要有一个成功的控制系统。我还没有谈到如何调优这些控制器,将在本系列以后的视频。现在,我们可以依赖的事实违约收益交付与模型已经调整得很好。好,足够的观察仿真软件模型,我认为是时候我们万博1manbetx看到这个默认航班代码采取行动在鹦鹉minidrone飞行。
我们需要仿真软件支持包安万博1manbet万博1manbetxx装为了让鹦鹉Minidrones仿真软件与无人机通信。我已经有这个包所有我需要做的是对无人驾驶飞机我的电脑通过蓝牙,构建模型按钮顶部的模型。有关的研讨会在描述描述如何设置所有这一切如果你感兴趣这样做在家里。
在软件建设,让我重新审视在幕后发生了什么。我们有所有这些飞行仿真软件的代码,在顶层有必要的接口的minidron万博1manbetxe固件。我们现在在这一过程中模型的自动编码C代码块图。万博1manbetx如果你有仿真软件编码器™万博1manbetx安装像我一样,那么你将会访问C代码,如果你喜欢可以改变。如果你没有Similink编码器,你只是看不但是仍然生成的代码。然后编译C代码在您的计算机和编译后的二进制代码通过蓝牙发送到minidrone和放置在正确的位置的固件。一旦它可以飞,这个GUI界面弹出它允许我们在无人机上启动代码,更重要的是,阻止它。我设置我的电脑和无人机在飞行安全的一个区域,但别忘了拿你的安全谷歌。现在我们只是坐下来,点击开始,看我们的反馈控制系统。
我告诉你默认的收益很好。下一节,我将深入探究模式的,这样你有一个不错的主意,我们如何模拟真实世界,然后我们将如何使用这些模型来优化控制器。如果你不想错过下一个科技视频说话,别忘了订阅这个通道。同样,如果你想看看我的通道,控制系统讲座,我覆盖更多的控制理论主题。谢谢收看,下次再见。
相关产品s manbetx 845
了解更多
您可以在欧什一张网站来自der folgenden Liste auswahlen:
所以erhalten您死bestmogliche Leistung der汪汪汪的网站
民意调查您毛皮死bestmogliche Website-Leistung死网站中国毛皮(auf Chinesisch奥得河Englisch)。安德利果汁landesspezifische网站冯MathWorks信德毛皮Besuche冯Ihrem Standort来自不optimiert。