群友咨询了一个问题,通过实验测得系统的响应结果,如果获取到系统的传递函数,这个问题可以通过MATLAB系统辨识工具箱求解
1、进入System Identification主界面
打开APP栏的系统辨识工具箱,
弹出如下界面
然后点击import data,选择加载类型为时域类型
2、加载数据
导入采集的实验数据,从工作区直接拖拽相应的变量到Input和Output
点击Import按钮,成功加入需要辨识的一组数据,加载成功之后的数据如图:
3、参数辨识
点击Estimate,选择需要辨识的系统模型的结构,这里选择Transfer Function Models传递函数模型
在弹出的传递函数选项中,设置零点和极点个数,取消勾选Time delay中的Fixed,这样就可以自动辨识时间延迟。设置完毕之后,点击Estimate按钮,开始分析
分析过程报告为
此时,右侧的模型窗口出现了辨识的tf1,拖拽到MATLAB中的工作区workspace
4、查看结果
4.1 系统辨识窗口查看
双击tf1,查看辨识结果
4.2 在命令行中查看
将辨识出的结果拖拽到MATLAB工作区之后,在命令行窗口输入tf1
代码语言:javascript复制>> 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