美文网首页无人机
多旋翼无人机开发技术储备系列——系统辨识专题(一)

多旋翼无人机开发技术储备系列——系统辨识专题(一)

作者: 遥远的乌托邦 | 来源:发表于2019-08-20 20:34 被阅读0次

    系统辨识专题(一)——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 系统辨识模型参数结果

    更多技术文章欢迎关注公众号“遥远的乌托邦“。

    相关文章

      网友评论

        本文标题:多旋翼无人机开发技术储备系列——系统辨识专题(一)

        本文链接:https://www.haomeiwen.com/subject/fdymsctx.html