下载链接:https://pan.baidu.com/s/19JbPP2hWlZraVbLuNlHpcg 提取码:6666
下载好的压缩包里有秘钥的txt文件,复制粘贴就好
1.1 从 Excel 中导入数据
如果不是从Excel中导入可以跳过该步骤
导入函数:
[num,txt,raw]=xlsread('xxx\xxx.xlsx');
um返回的是excel中的数据;txt输出的是文本内容;raw输出的是未处理数据;圆括号是文件所在的路径。
比如有这么一个表,我需要用第一列(综合间隙)作为输出,第四列(电流)作为输入
我们就需要有两个数组变量来存储上面这两列
clc
clear all
close all
% 读入数据
[num,txt,raw]=xlsread('悬浮点数据\悬浮点4数据汇总.xlsx');
%输入
input=num(:,4);
%输出
output=num(:,1);
一定要运行一下,确保工作区里面有这俩,否则后面导入会报错的
我们在matlab-》app中找到系统辨识工具箱,或者在命令窗口输入:ident
一般是选择时域数据,如果是频域就选择下面那个
之后将1.1节中的变量名打进去,采样时间选一下,最后点 import
我们点 Time plot 验证一下输入和输出的数据是否有问题
确认输入和输出的数据无误后,我们就可以开始进行系统辨识了
一般是用传递函数模型进行辨识
在传递函数辨识界面选择零点个数,极点个数,连续 or 离散,点击 estimate 进行辨识
训练完成后,在右边的界面处可以看到结果,点击 Model output 查看拟合程度
拟合度越大越好,最好超过80%及以上是最好的,这边只有79.17,差点意思!
如果我们想看拟合后的传递函数,可以右键点击图形
打开 simulink ,根据上一章得出的传递函数进行模型的搭建
我们现在肯定不知道怎么调参吧?有些人可能会一个个试过去,但是那样的话非常的耗时间,所以这边利用 PID 模块的一个功能
在这个界面中,我们可以根据需求调整 pid 响应曲线,最后应用一下即可
最后运行,在scope里面查看一下
原文链接:https://blog.csdn.net/qq_45159887/article/details/125336181
最终效果:自动调出PID三项对应的参数,控制效果很不错。
目的:通过matlab,辨识出系统的传递函数,找到最理想的PID参数。
优点:1.节省“盲调PID”的时间。2.在辨识出传递函数后,还可以设计专门的控制器,达到经验调参不能做到的效果,逼近完美。
用到的工具:1.matlab的system identification 和PID tunner app2.simulink。
在使用系统辨识工具箱之前,我们先使用simulink模块生成我们需要的仿真模型以及输入输出数据。
搭建完整个仿真模型后,点击simulink模块的绿色开始按钮,即可开始进行仿真。
点击图3中灰色齿轮,打开参数配置界面,点击“Solver”选项,将“Type”选项设置为Fixed-step,同时,将Fixed-step size与输入信号周期一致,这里选取0.02。
我们将输入信号的周期设定为0.02秒,这里也可以设定为其他值,该周期需要与系统辨识工具箱中的周期匹配,否则会导致系统辨识结果错误。
搭建完简单的仿真模型之后,我们就可以开始使用Matlab系统辨识工具箱了。
在Matlab命令窗口输入“ident”命令,即可打开系统辨识工具箱。或则点击APP中的system identifaication
Matlab系统辨识工具箱组成说明。
首先,我们需要导入需要辨识的输入数据,点击“Import data”按钮,工具箱出现下拉选项,这里我们选择“Time domain data”。
这里的Input与Output输入框中的名称即为上文中通过Simulink模型仿真生成的输入-输出信号对应的工作区中的变量名称。Samping interval即为采样间隔,该值需与上文Simulink仿真模型中的信号仿真步长一致,否则,会导致辨识结果出现偏差。将参数配置完成后,点击“Import”按钮,结束输入信号的导入。
输入信号预处理选项,其中包括滤波器、数据转换等功能。
模型辨识设置,这里选择过程模型。
过程模型参数配置,这里选择无零点、无时延无积分环节的一阶系统模型作为待辨识模型,配置完参数后,勾选“Display Progress”按钮,点击“Estimate”按钮开始进行辨识。
过程模型辨识结果,左边对话框显示了模型辨识精度及相对误差。
双击右边对话框中的辨识模型结果P1,弹出如下对话框,由图可知,Kp = 1,Tp1 = 1,与上文中Simulink仿真模型中的传递函数参数吻合,至此,完成了整个简单的系统辨识工具箱的使用流程。
原文链接:https://blog.csdn.net/m0_66861238/article/details/130077760
什么时候使用系统辨识,当系统传递函数不确定(在多大程度上不确定?)时,通过对输入输出数据采集,通过数学迭代找到控制对象的近似模型。在找到近似模型(传递函数)后,就可以使用线性化调参工具对系统控制参数进行整定,进行控制系统设计。
调用命令:systemIdentification
一般过程:
将数据数组从matlab工作区导入程序;
绘制数据;
数据归一化;
估计、验证、 线性模型;
模型导出到工作区
原文链接:https://blog.csdn.net/tzlaa/article/details/113575724
进入统辨识工具箱主界面
系统辨识:系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。现代控制理论中的一个分支。通过辨识建立数学模型的目的是估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。
进入方式及界面介绍:
结合我的例子数据进行讲解
打开方式:
1、 在命令行窗口输入命令:ident