什么是闭环仿真
上次说了什么是开环仿真以及开环仿真应用的场景,这次再介绍一下闭环仿真(close-loop simulation)。
首先还是先看一张闭环仿真的框图
![](https://i.loli.net/2019/07/07/5d22130a0e37d61430.png)
与开环仿真不同的是,闭环仿真包含无人机的物理模型,即需要对无人机进行物理建模,这样仿真模型就能形成一个闭环的反馈,故称闭环仿真。如上图所示,Simulink控制模型将控制指令,一般是电机的PWM信号输出给物理模型,物理模型根据控制指令更新状态信息,如姿态,速度和位置等。再将这些信息反馈给控制器,从而进行反馈控制。
闭环仿真的作用
那么有人会问,有了开环仿真,为什么还要闭环仿真呢?答案是他们应用的场景不一样。开环仿真主要用来验证模型的输入输出的关系,即给模型输入信号,得到模型的输出信号,以此来验证模型的功能。比如无人机系统里面的导航系统,就是一个典型的开环仿真系统,因为它只需要将传感器输入传入,就能得到导航输出,而无需无人机物理模型的参与。
那什么时候需要闭环仿真?简单来说,就是需要系统的物理模型的时候,就需要闭环仿真。典型的应用场景是控制器的设计。我们知道,控制器根据输入的指令和状态信息,计算出电机的PWM信号,但是这些信号最终作用到实际的无人机上是什么效果,就需要对无人机进行建模。我们将控制器输出的PWM信号输入到无人机物理模型,模型算出无人机的状态信息,如姿态,速度,位置等,再反馈给控制器,控制器再进行控制,这样就形成了一个完整的闭环。
如果物理模型建的足够精准,那么很多功能都可以直接在仿真中进行调试,如控制器的逻辑,参数等等。最主要的是,一些控制的bug通过仿真能很快发现并定位问题,而没有炸机的风险。
基于Simulink的闭环仿真
Simulink提供了非常多的Toolbox,可以十分快速方便的搭建控制模型以及物理系统,对于无人机的物理系统,Simulink甚至还提供了一些已经做好的物理模型,只需要拖动几个模块就能够快速搭建起来。对于模型参数的确定,Matlab也提供了一整套的系统辨识工具,可以说是什么强大了 |