8.3 基于UI的故障注入
详细的操作步骤如下:
- 用
MATLAB
打开并进入RflySimDLL
文件夹,运行“Init_control.m”
脚本
- 运行完
“Init_control.m”
脚本后会自动打开打开“MulticopterModel.slx”
模型文件,并加载模型参数。本例程中,故障是通过inSILInts
和inSILFloats
两个结构体传入的,根据实时的数值来触发响应故障,具体原理见上一节和源码。配置
simulink
的参数,之后点击HARDWARE
,再点击Simulink
的“Build”
编译按钮,即可生成代码,请耐心等待。(详细步骤见第二讲的2.4小节)
- 在
MATLAB
中右键“GenerateModelDLLFile.p”
并点击“运行”
,即可生成带故障模型的DLL
模型文件在
Windows
资源管理器中,双击运行“MulticopterModelSITLRun.bat”
脚本,并输入1,开启一个飞机的软件在环仿真。打开之后点击地面站,手动解锁飞机并让飞机起飞(注意:此一键运行脚本是软件在环脚本,其配置须严格按照1.5节的操作步骤来,其中要将第十项(是否屏蔽PX4官方控制器输出)改为否,否则不会如期实现想要的效果)![]()
![]()
- 用
MATLAB
定位到FailureGenerator
文件夹内部,双击app200804.mlapp
打开图形界面,在手动故障界面点击“Initialize”
,然后勾选电机故障,电机故障发送。![]()
![]()
- 实验结果如下图
自行编写自己的故障模式,以及修改触发函数,测试不同故障的注入方法。
注: 1、本例程的基本原理见第二节 2、本图形界面的接口的本质是向DLL模型发送
inSILInts
和inSILFloats
信号来触发故障,也可以摆脱“app200804.mlapp”
图形界面,通过UDP
发送上述两个数据来触发故障。具体的操作见第四节的描述。例程见FailureGeneratorDemo.slx
,可以实时接收飞机状态,并发送故障数据结构体。