MATLAB 系统辨识 + PID 自动调参

系统辨识 + PID 自动调参

1. 导入数据

1.1 从 Excel 中导入数据

如果不是从Excel中导入可以跳过该步骤

导入函数:

[num,txt,raw]=xlsread('xxx\xxx.xlsx');

num返回的是excel中的数据;txt输出的是文本内容;raw输出的是未处理数据;圆括号是文件所在的路径。

比如有这么一个表,我需要用第一列(综合间隙)作为输出,第四列(电流)作为输入

20230329210339

我们就需要有两个数组变量来存储上面这两列

clc
clear all
close all

% 读入数据
[num,txt,raw]=xlsread('悬浮点数据\悬浮点4数据汇总.xlsx');

%输入
input=num(:,4);

%输出
output=num(:,1);

一定要运行一下,确保工作区里面有这俩,否则后面导入会报错的

20230329210656

2. 系统辨识

我们在matlab-》app中找到系统辨识工具箱,或者在命令窗口输入:ident

扫描二维码关注公众号,回复: 15273530 查看本文章

20230329210902

一般是选择时域数据,如果是频域就选择下面那个

20230329211256

之后将1.1节中的变量名打进去,采样时间选一下,最后点 import

20230329211156

我们点 Time plot 验证一下输入和输出的数据是否有问题

20230329211437

20230329211552

确认输入和输出的数据无误后,我们就可以开始进行系统辨识了
一般是用传递函数模型进行辨识
在传递函数辨识界面选择零点个数,极点个数,连续 or 离散,点击 estimate 进行辨识

20230329214811

训练完成后,在右边的界面处可以看到结果,点击 Model output 查看拟合程度

20230329215052

拟合度越大越好,最好超过80%及以上是最好的,这边只有79.17,差点意思!

20230329215150

如果我们想看拟合后的传递函数,可以右键点击图形

20230329215443

3. PID 自动调参

打开 simulink ,根据上一章得出的传递函数进行模型的搭建

20230329220037

我们现在肯定不知道怎么调参吧?有些人可能会一个个试过去,但是那样的话非常的耗时间,所以这边利用 PID 模块的一个功能

20230329220212

在这个界面中,我们可以根据需求调整 pid 响应曲线,最后应用一下即可

20230329220353

最后运行,在scope里面查看一下

20230329220713

猜你喜欢

转载自blog.csdn.net/u011895157/article/details/129846754
今日推荐