模型在环仿真
-
模型在环是在基于模型设计早期开发阶段对模型的仿真。 MIL 是一种廉价的算法测试方式。 为了算法能正常运行,必须在部署到真实硬件之前对其进行仿真,以检测任何可能导致灾难性后果的严重错误。
模型在环仿真是一种在仿真环境(如 Simulink)中开发和运行仿真模型的方法。 一个典型的自驾仪系统模型结构如图所示。该结构不光针对无人机系统,对于其它类型的无人控制系统,也可以采用类似的模型结构。
当我们在Simulink环境中搭建了如图所示的算法模型后,就可以在MATLAB中运行模型从而对模型进行仿真。通过仿真,我们可以获取模型的运行数据从而对其进行调优。通过可视化模块,我们可以观察被控对象的3D视图,获得与真实世界中相似的控制体验。
FMT-Model中已经提供了一套完整且功能强大的针对多旋翼的算法模型:
-
MC-Plant: 多旋翼被控对象模型
-
Base-INS: 通用惯性导航系统模型
-
Base-FMS: 通用飞行管理系统模型
-
Base-Controller: 多旋翼控制器模型
基于这套模型,我们可以很方便的对多旋翼进行模型在环仿真。当然,也可以通过开发新的算法模型来对更多的被控对象,如小车,无人船,机器人等,进行模型在环仿真。在这里也欢迎大家为FMT-Model贡献更多的算法模型!
MIL仿真步骤
- MIL仿真的的具体步骤如下:
-
在MATLAB (
版本2018b或以上
) 中打开 FMT-Model目录 -
双击
FMT_Model.prj
初始化工程 -
双击打开仿真模型
simulation/MILSIM.slx
,如下图所示 -
双击打开可视化模块
MILSIM/Virtualization/3D_Visualization/Matlab_3D/Visualization/VR Sink
。将viewpoint
设置为 Isometric - No Rotation -
点击模型上方 Run 按钮开始仿真
-
进入子模块
MILSIM/FCS/GCS
,将mode改为PilotMode.Position
,cmd_1改为FMS_Cmd.Takeoff
,飞机将自动解锁起飞,并悬停在高度为1.5m的位置 -
将cmd_1改为
FMS_Cmd.Land
,飞机将原地降落,触地后自动上锁 -
点击上方的Stop按钮结束仿真,并打开上方的Simulation Data Inspector查看仿真数据
对于更多的控制模式和指令定义,可以查看
FMS-Model/bus/enum
下的定义:当前支持的模式和指令如下:
classdef PilotMode < Simulink.IntEnumType enumeration None(0) Manual(1) Acro(2) Stabilize(3) Altitude(4) Position(5) Mission(6) Offboard(7) end
classdef FMS_Cmd < Simulink.IntEnumType enumeration None(0) PreArm(1000) Arm(1001) Disarm(1002) Takeoff(1003) Land(1004) Return(1005) Pause(1006) Continue(1007) end
比如若要进行Mission航点模式飞行,只需将mode设置为
PilotMode.Mission
,然后把cmd_1设置为FMS_Cmd.PreArm
或FMS_Cmd.Takeoff
即可。