工具:matlab2021a

步骤

1.导入数据

(1)选择菜单栏中的导入数据,选择csv格式(也可以是其他格式)的文件。

多输入多输出系统辨识 python 多输入多输出模型_数据

鼠标选择需要导入的数据, 也可以默认全部导入,点击菜单栏导入。

多输入多输出系统辨识 python 多输入多输出模型_传递函数_02

 

在工作区看到矩阵导入成功(共导入4个矩阵)

多输入多输出系统辨识 python 多输入多输出模型_matlab_03

(2)对输入矩阵进行处理

这里w矩阵中的4列为输入,s矩阵中的4列为输出。若直接将s和w作为输入输出矩阵进行系统辨识,会报错矩阵格式不对,需要进行一个简单的转换。(猜测可能是行列向量格式不对)

w1=w.w1
w2=w.w2
w3=w.w3
w4=w.w4
s1=s.s1
s2=s.s2
s3=s.s3
s4=s.s4
w=[w1 w2 w3 w4]
s=[s1 s2 s3 s4]

 2.系统识别

 (1)打开系统识别工具箱

在命令行输入ident。(ident这种命令已经落后,现在使用syetemIdentification来代替)

多输入多输出系统辨识 python 多输入多输出模型_传递函数_04

该命令会弹出如下窗口

多输入多输出系统辨识 python 多输入多输出模型_多输入多输出系统辨识 python_05

(2)导入时域数据

多输入多输出系统辨识 python 多输入多输出模型_大数据_06

填上输入变量名称w、输出变量名称s,data name默认就行,start time是开始时间,一般为0,sample time是采样时间,按照实际采样时间填写即可(以秒为单位。)填好后点击import。

 

多输入多输出系统辨识 python 多输入多输出模型_多输入多输出系统辨识 python_07

多输入多输出系统辨识 python 多输入多输出模型_大数据_08

 看到工具箱界面已经有了数据。

多输入多输出系统辨识 python 多输入多输出模型_多输入多输出系统辨识 python_09

(3) 对输入数据进行预处理

选择前一半的数据进行模型辨识,后一半的数据进行数据验证。选择select range

 

多输入多输出系统辨识 python 多输入多输出模型_大数据_10

原始数据时间跨度为0-433s,修改为0-233s进行训练,点击insert。

 

多输入多输出系统辨识 python 多输入多输出模型_matlab_11

 工具箱界面看到我们的训练集数据mydatae

多输入多输出系统辨识 python 多输入多输出模型_传递函数_12

 将时间跨度修改为233-433,用来做验证集,点击insert。

多输入多输出系统辨识 python 多输入多输出模型_大数据_13

 效果如下

多输入多输出系统辨识 python 多输入多输出模型_多输入多输出系统辨识 python_14

(4)将数据位置准备好

将mydatae拖到working data中,  将mydatav拖到validation data中。

多输入多输出系统辨识 python 多输入多输出模型_大数据_15

 (5)模型设置

在工具箱页面,点击estimate

多输入多输出系统辨识 python 多输入多输出模型_matlab_16

 a.传递函数法 transfer function models 

多输入多输出系统辨识 python 多输入多输出模型_传递函数_17

设置模型名称、极数、零点,点击estimate。

多输入多输出系统辨识 python 多输入多输出模型_数据_18

 工具箱界面显示tf1模型

多输入多输出系统辨识 python 多输入多输出模型_matlab_19

双击tf1,看到每个输出的传递函数以及准确度

多输入多输出系统辨识 python 多输入多输出模型_数据_20

多输入多输出系统辨识 python 多输入多输出模型_matlab_21

 选中tf1,勾选model output。输出模型的效果。通过channel更换输出变量。

多输入多输出系统辨识 python 多输入多输出模型_传递函数_22

多输入多输出系统辨识 python 多输入多输出模型_传递函数_23

 

多输入多输出系统辨识 python 多输入多输出模型_传递函数_24

多输入多输出系统辨识 python 多输入多输出模型_多输入多输出系统辨识 python_25

b.状态空间法 state space models

 

多输入多输出系统辨识 python 多输入多输出模型_大数据_26

 未知系统阶数,使用Pick best value in the range,系统在指定阶数范围内选择最优阶数。

多输入多输出系统辨识 python 多输入多输出模型_大数据_27

 点击estimate。工具箱页面显示结果如下:

多输入多输出系统辨识 python 多输入多输出模型_matlab_28

双击ss1,看到状态方程的矩阵解,以及精度

多输入多输出系统辨识 python 多输入多输出模型_数据_29

 

多输入多输出系统辨识 python 多输入多输出模型_传递函数_30

选中两个模型,点击model output可以看出效果更好的模型是哪一个。

多输入多输出系统辨识 python 多输入多输出模型_大数据_31

 over!