系统辨识专题(一)——MATLAB系统辨识工具箱的使用案例

在建立多旋翼无人机系统模型的基础上,我们能够更有针对性地设计对应的控制器,为无人机系统故障诊断提供判据。本文将结合系统Matlab自带的系统辨识工具箱阐述一个简单的过程模型的完整辨识过程。 在使用系统辨识工具箱之前,我们先使用Simulink模块生成我们需要的仿真模型以及输入输出数据。 1. 如图1所示,在Matlab命令行中输入“Simulink”命令,打开Simulink模块。   1   2. 如图2所示,新建Simulink模型。点击“File->New->Model”。   2   3. 如图3所示,搭建基于传递函数的Simulink仿真模型,用户通过拖拽图2“Simulink Library Browser”中的各个Simulink子模块,组合成如下Simulink仿真模型,主要由输入信号、传递函数、输入输出以及示波器组成,这样就能够得到我们需要的自定义仿真模型及输入输出数据,当我们搭建完整个仿真模型后,点击Simulink模块的绿色开始按钮,即可开始进行仿真。   3   4. 点击图3中灰色齿轮,打开参数配置界面,点击“Solver”选项,将“Type”选项设置为Fixed-step,同时,将Fixed-step size与输入信号周期一致,这里选取0.02。   4   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     作者简介: 一个被Coding耽误的无人机算法工程师,控制、导航略懂一二,热衷技术,喜欢乒乓、音乐、电影,欢迎交流。 知乎:@遥远的乌托邦 GitHub: github.com/DistantUtopi 微信公众号:@遥远的乌托邦