MATLAB系统辨识工具箱

时间:2022-12-22 14:15:51

✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。

????个人主页:算法工程师的学习日志

群友咨询了一个问题,通过实验测得系统的响应结果,如果获取到系统的传递函数,这个问题可以通过MATLAB系统辨识工具箱求解

1、进入System Identification主界面

打开APP栏的系统辨识工具箱,

MATLAB系统辨识工具箱


弹出如下界面

MATLAB系统辨识工具箱


然后点击import data,选择加载类型为时域类型

MATLAB系统辨识工具箱


2、加载数据

导入采集的实验数据,从工作区直接拖拽相应的变量到Input和Output

MATLAB系统辨识工具箱


点击Import按钮,成功加入需要辨识的一组数据,加载成功之后的数据如图:

MATLAB系统辨识工具箱


3、参数辨识

点击Estimate,选择需要辨识的系统模型的结构,这里选择Transfer Function Models传递函数模型

MATLAB系统辨识工具箱


在弹出的传递函数选项中,设置零点和极点个数,取消勾选Time delay中的Fixed,这样就可以自动辨识时间延迟。设置完毕之后,点击Estimate按钮,开始分析

MATLAB系统辨识工具箱


分析过程报告为

MATLAB系统辨识工具箱

此时,右侧的模型窗口出现了辨识的tf1,拖拽到MATLAB中的工作区workspace

MATLAB系统辨识工具箱



4、查看结果

4.1 系统辨识窗口查看

双击tf1,查看辨识结果

MATLAB系统辨识工具箱


4.2 在命令行中查看

将辨识出的结果拖拽到MATLAB工作区之后,在命令行窗口输入tf1

>> tf1


tf1 =

From input "u1" to output "y1":
0.0004659
--------------------------
s^2 + 0.01101 s + 0.000881

Name: tf1
Continuous-time identified transfer function.


Parameterization:
Number of poles: 2 Number of zeros: 0
Number of free coefficients: 3
Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.


Status:
Estimated using TFEST on time domain data "mydata".
Fit to estimation data: 91.97% (stability enforced)
FPE: 0.000165, MSE: 0.0001535