从系列中:无人机仿真与控制
布莱恩•道格拉斯
这个视频描述了一个好的无人机模型和它运行的环境如何用于模拟和测试。
我们将展示如何非线性和线性模型都需要设计和测试飞行控制软件。
我们还在Simulink中走过一个例子金宝app®并描述一种创建和组织四轴飞行器模型的方法。最后,我们演示了模型如何与我们在上一个视频中运行的真实飞行测试相匹配。
在上一个视频中,我们在Simulink中得到了四轴飞行器模型的飞行代码我们展示了它成功地悬浮在鹦鹉微型无人机上。金宝app但是如果我们必须自己开发代码或者对其进行修改呢?我们如何以安全的方式设计和测试代码?为此,我们需要一个微型无人机的良好模型和它将要运行的环境。这就是我们这节课要讲的。我是Brian,欢迎来到MATLAB技术讲座。
要了解模型如何帮助我们,让我们来看看一个非常简单的框图。在第一个块中,我们有飞行控制软件。这代表了我们在上一个视频中审查的所有控制系统软件。此代码必须与迷你无人机固件的其余部分接口,因此,正如我们在有两个输入,原始传感器读数和参考命令或设定点以及两个输出,电机速度命令和停止标志中所讨论的。请记住,在最后一个视频中,我们将参考命令移动到飞行代码内,所以真正的输入消失了,我们刚刚留下了一个。
第二个街区我们将调用“型号”,它代表其他一切,任何不是飞行控制代码的东西。这包括迷你无人机固件的其余部分,硬件,它在飞行中的气氛......一切。但我们会在一点中进入其中的细节。在一个非常基本的级别,模型输入电机命令和停止标志,少量计算并输出传感器测量。以这种方式,该模型围绕飞行代码包装并提供反馈循环。
假设我们有一个非常精确的模型,它完美地反映了现实。对于旁观者来说,结果是来自实际硬件还是来自这个完美的模型是无法区分的。如果是这样的话,我们可以使用模型模拟迷你无人机的性能,并且非常有信心,当我们稍后在实际硬件上运行飞行代码时,它将得到相同的结果。只要我们对模拟性能满意,那么我们的设计就完成了。模拟性能的好处是,我们可以快速重置模型并将车辆置于任何我们想要的情况下。如果它表现不佳,我们会做出必要的改变,在这个过程中我们不会损坏任何硬件。
尽管如此,尽管如此,完美的现实模式是不可能创造的。幸运的是,我们不需要建模一切。诀窍是弄清楚该模型中包含的内容以及遗漏的内容。只需了解您的系统以及将如何运营,其中一些知识很容易。例如,我们可能不需要塑造开启和关闭前置LED的代码。他们不会影响我们的控制系统。但是有很多其他的事情并不明显,并且了解模型可能需要什么需要一点经验和调查。一个示例是是否将机身结构模拟为刚体或柔性主体。我们是否需要考虑结构的灵活性和振动模式?他们会有意义地影响我们的传感器测量还是模型中的额外逻辑,只是使重要的事情复杂化并减慢模拟,而没有任何明显的益处?
很难完全了解模拟什么以及最初遗漏的内容。通常会发生什么是您从最佳猜测开始,然后随着时间的推移,在您对实验结果和模拟之间的匹配方面满足之前,您的模型的保真度会增长。
因此,仿真是在物理测试困难或耗时的情况下验证系统的一种方法,只要模型能够充分反映现实。但我们也使用模型来设计我们的控制系统。对于控制设计,如果我们能使用我们已经知道的线性分析工具,那就太好了。不幸的是,我们用于模拟的非线性模型不能很好地进行线性分析和设计。为此,我们需要一个线性模型。本质上,我们需要做的是去除模型中的非线性成分或将它们估计为线性成分。线性模型不能像非线性模型那样准确地反映现实,但我们希望它仍然足够准确,以便我们可以用它来设计控制器。
这样我们就有了两个不同的模型,可以用于基于模型的设计。我们有一个较低保真度的线性模型,这对确定控制器结构和增益很有用,我们有一个较高保真度的非线性模型,这对模拟结果和验证系统很有用。
总而言之,我们使用基于模型的设计来设计飞行控制软件的步骤如下。
到目前为止,我继续将此模型绘制为此单个块。但不是考虑它作为单一的计算集,它通常更容易将其分解成几种代表特定和离散系统的较小模型。
对于我们的小型无人机,我们可能会将其分解为机身结构、执行器、环境和传感器。在这些模型中还有更小的子系统模型,比如重力模型或IMU模型。
在这种层级方式中思考建模的思考有很多原因,而不是将所有行为集中在一起,以入单个模型。
您可以选择对每个系统最有意义或最简单的建模技术。然后,当您将所有建模技术放在一起时,您将拥有一个完整的模型,可用于包装飞行控制软件并模拟结果。
就像飞行软件上的最后一个视频一样,我们没有时间在这个视频中从头开始建立模型。但是,航空航天模块集中的四架直升机示例附带了一个模型,为我们的讨论提供了一个很好的起点。因此,让我们转到Simulink并浏览它。金宝app
我会在接下来的过程中指出一些有趣的事情,但我想让你们认识到,这只是一个关于如何开发四架直升机模型以及可以用来生成不同子系统的不同技术的视角。
因此,随着这块免责声明,让我们跳入这个特定的模型。
您可以看到我们有我们在最后一个视频中讨论的飞机软件,并围绕此块缠绕是我们将用于模拟的模型。在这个级别,我们拥有机身,环境和传感器。机身实现为变体子系统,这意味着在运行模型之前,可以选择要运行的哪个版本的空中机构;我们将在此视频中使用的非线性模型来模拟我们将在下一个视频中使用的飞行,或者线性机身模型调整控制器。
让我们在非线性模型中取一个峰值来看看它是如何建立的。有两个主要模块,左边的交流模型包括执行器模型和环境干扰如何影响系统的模型。基本上,任何能对我们的微型无人机产生力或扭矩的东西都在这个块里计算。然后将力和力矩输入到六自由度模型中。这是一个刚体模型,与航空航天块集。这是一个使用现有模型的例子,而不是费力地自己写出刚体的运动方程。当然,你仍然需要确定刚性系统的具体参数,比如质量和惯性。更有可能的是,开发人员从微型无人机的CAD模型中提取了这些信息,但是,您可以设置物理测试来计算这些信息。
让我们回到模型的顶层,进入环境块。这里,它是一个变子系统我们可以选择恒定的环境变量或者根据位置变化的变量。我们要选择常数变量因为像重力和气压这样的东西不会在地面和低于一米的悬停之间改变。然而,如果你想模拟你的迷你无人机可以飞多高,然后选择变化的环境将降低空气压力和密度,因为它变得更高,这将最终在一些最大的高度失速无人机。所以选择一个或另一个模型取决于我们要测试的是什么。
好的,最后,我想进入传感器模块。你猜,这也是一个变种子系统。在这里,我们可以选择带噪声的动态传感器或馈通传感器。我们将在下一个视频中选择用于调谐的馈通选项,但对于此模拟,我们希望我们的传感器的行为尽可能像真实的事物一样。在该子系统内部,有一些硬编码的传感器校准数据和一个称为传感器系统的模块,其中包含摄像头、IMU、超声波和压力传感器的模型。
好了,现在,让我们回到顶层运行模拟,这样我就可以向你展示输出是什么样子的。这个特定的模型是用3D可视化建立的,它根据仿真的输出渲染迷你无人机。就像在上一个视频中一样,我们试图让微型无人机在离地面约0.7米的高空盘旋。我们可以检查模拟数据,并将其与上一节视频中运行的实际测试中保存的数据进行比较,但为了节省时间,我们还是直观地比较一下。我将把两个结果放在一起播放,这样我们就可以看到这个模型非常接近现实,至少对于这个测试条件是这样的。
现在我们有一个我们喜欢的模型,我们可以为安全模拟失败并看看系统的表现,我们可以使用它。例如,我们可以返回他传感器块并进入IMU模型并更改陀螺偏压。让我们说我们估计了偏差很差,而且它真的比我们预期的三倍。现在我们可以模拟系统,并查看我们的控制器如何响应。
它起飞时几乎是一样的,但陀螺仪偏差很快导致我们的无人机从水平面上滚开,然后它就跑掉了,最终坠毁在地面上。我们从中学到两件事;陀螺的偏见,如果是3倍更糟糕的是,无人机不会表现良好,和2,如果我们担心被这遥远的估计偏差,那么也许我们应该改变停止标志逻辑认识到我们置身事外,关闭无人机在我们伤害的硬件。
好的,这是一个快速的演练,但希望我已经给了你足够的信息,让你自己更详细地回顾模型,或者开始创建自己的无人机模型。在下一个视频中,我们将看到如何使用该模型的线性版本来调整PID控制器。如果你不想错过下一个科技谈话视频,别忘了订阅这个频道。另外,如果你想看看我的频道,控制系统讲座,我也会介绍更多的控制理论主题。谢谢收看,下次再见。
您还可以从以下列表中选择网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。