MATLAB系统辨识
最终效果:自动调出PID三项对应的参数,控制效果很不错。
目的:通过matlab,辨识出系统的传递函数,找到最理想的PID参数。
优点:1.节省“盲调PID”的时间。2.在辨识出传递函数后,还可以设计专门的控制器,达到经验调参不能做到的效果,逼近完美。
用到的工具:1.matlab的system identification 和PID tunner app2.simulink。
在使用系统辨识工具箱之前,我们先使用simulink模块生成我们需要的仿真模型以及输入输出数据。
搭建完整个仿真模型后,点击simulink模块的绿色开始按钮,即可开始进行仿真。
点击图3中灰色齿轮,打开参数配置界面,点击“Solver”选项,将“Type”选项设置为Fixed-step,同时,将Fixed-step size与输入信号周期一致,这里选取0.02。
我们将输入信号的周期设定为0.02秒,这里也可以设定为其他值,该周期需要与系统辨识工具箱中的周期匹配,否则会导致系统辨识结果错误。
搭建完简单的仿真模型之后,我们就可以开始使用Matlab系统辨识工具箱了。
在Matlab命令窗口输入“ident”命令,即可打开系统辨识工具箱。或则点击APP中的system identifaication
Matlab系统辨识工具箱组成说明。
首先,我们需要导入需要辨识的输入数据,点击“Import data”按钮,工具箱出现下拉选项,这里我们选择“Time domain data”。
这里的Input与Output输入框中的名称即为上文中通过Simulink模型仿真生成的输入-输出信号对应的工作区中的变量名称。Samping interval即为采样间隔,该值需与上文Simulink仿真模型中的信号仿真步长一致,否则,会导致辨识结果出现偏差。将参数配置完成后,点击“Import”按钮,结束输入信号的导入。
输入信号预处理选项,其中包括滤波器、数据转换等功能。
模型辨识设置,这里选择过程模型。
过程模型参数配置,这里选择无零点、无时延无积分环节的一阶系统模型作为待辨识模型,配置完参数后,勾选“Display Progress”按钮,点击“Estimate”按钮开始进行辨识。
过程模型辨识结果,左边对话框显示了模型辨识精度及相对误差。
双击右边对话框中的辨识模型结果P1,弹出如下对话框,由图可知,Kp = 1,Tp1 = 1,与上文中Simulink仿真模型中的传递函数参数吻合,至此,完成了整个简单的系统辨识工具箱的使用流程。