系统辨识专题(一)——MATLAB系统辨识工具箱的使用案例
在建立多旋翼无人机系统模型的基础上,我们能够更有针对性地设计对应的控制器,为无人机系统故障诊断提供判据。本文将结合系统Matlab自带的系统辨识工具箱阐述一个简单的过程模型的完整辨识过程。
在使用系统辨识工具箱之前,我们先使用Simulink模块生成我们需要的仿真模型以及输入输出数据。
1. 如图1所示,在Matlab命令行中输入“Simulink”命令,打开Simulink模块。
图1 启动Simulink模块2. 如图2所示,新建Simulink模型。点击“File->New->Model”。
图2 新建Simulink模型3. 如图3所示,搭建基于传递函数的Simulink仿真模型,用户通过拖拽图2“Simulink Library Browser”中的各个Simulink子模块,组合成如下Simulink仿真模型,主要由输入信号、传递函数、输入输出以及示波器组成,这样就能够得到我们需要的自定义仿真模型及输入输出数据,当我们搭建完整个仿真模型后,点击Simulink模块的绿色开始按钮,即可开始进行仿真。
图3 搭建基于传递函数的Simulink仿真模型4. 点击图3中灰色齿轮,打开参数配置界面,点击“Solver”选项,将“Type”选项设置为Fixed-step,同时,将Fixed-step size与输入信号周期一致,这里选取0.02。
图4 Simulink仿真模型参数设置5. 如图5所示,我们将输入信号的周期设定为0.02秒,这里也可以设定为其他值,该周期需要与系统辨识工具箱中的周期匹配,否则会导致系统辨识结果错误。
图5 随机输入信号模块参数设置搭建完简单的仿真模型之后,我们就可以开始使用Matlab系统辨识工具箱了。
1. 如图6所示,在Matlab命令窗口输入“ident”命令,即可打开系统辨识工具箱。
图6 系统辨识工具箱打开方式2. 如图7所示为Matlab系统辨识工具箱组成说明。
图7 系统辨识工具箱组成说明3. 首先,我们需要导入需要辨识的输入数据,如图8所示,点击“Import data”按钮,工具箱出现下拉选项,这里我们选择“Time domain data”。
图8 辨识输入信号设置4. 点击“Time domain data”选项后,将会弹出如图9所示对话框,这里的Input与Output输入框中的名称即为上文中通过Simulink模型仿真生成的输入-输出信号对应的工作区中的变量名称。Samping interval即为采样间隔,该值需与上文Simulink仿真模型中的信号仿真步长一致,否则,会导致辨识结果出现偏差。将参数配置完成后,点击“Import”按钮,结束输入信号的导入。
图9 系统辨识工具箱输入信号设置5. 如图10所示为输入信号预处理选项,其中包括滤波器、数据转换等功能。
图10 系统辨识工具箱输入信号预处理选项6. 如图11为模型辨识设置,这里选择过程模型。
图11 系统辨识工具箱模型辨识设置7. 如图12所示为过程模型参数配置,这里选择无零点、无时延无积分环节的一阶系统模型作为待辨识模型,配置完参数后,勾选“Display Progress”按钮,点击“Estimate”按钮开始进行辨识。
图12 过程模型参数配置8. 如图13所示为过程模型辨识结果,左边对话框显示了模型辨识精度及相对误差。
图13 过程模型辨识结果9. 如图14为系统辨识参数结果,双击图13右边对话框中的辨识模型结果P1,弹出如下对话框,由图可知,Kp = 1,Tp1 = 1,与上文中Simulink仿真模型中的传递函数参数吻合,至此,完成了整个简单的系统辨识工具箱的使用流程。
图14 系统辨识模型参数结果更多技术文章欢迎关注公众号“遥远的乌托邦“。
网友评论