问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PID模型优化:系统辨识工具箱及PID Tuner使用详解

创作时间:
作者:
@小白创作中心

PID模型优化:系统辨识工具箱及PID Tuner使用详解

引用
CSDN
1.
https://blog.csdn.net/zrx_19950522/article/details/123282444

在工程控制领域,准确的系统模型和合适的PID参数是保证系统稳定运行的关键。本文将详细介绍如何使用MATLAB的系统辨识工具箱推算系统传递函数,以及如何利用PID Tuner快速优化PID控制器参数。此外,还将介绍如何将连续模型离散化,以便在实际硬件中实现控制算法。

传递函数推算

在实际的工程项目中,由于执行机构比较复杂,较难仅通过电路计算其数学模型并进一步进行仿真调试。这时就可以通过辨识建立数学模型来估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。在MATLAB中,可以通过系统辨识工具箱(System Identification Toolbox)来推算系统传递函数。下面将对如何使用该工具箱进行介绍。

打开方式

  1. 命令行方式:在命令行中输入”ident”
  2. APP界面选择:在APP界面中选择”System Identification”

界面介绍

基本操作

  1. 导入数据

在MATLAB中导入输入输出数据,如下图所示为MATLAB支持导入的数据类型:

导入后如下图所示:

  1. 将数据导入工具箱

在辨识工具箱的import选项中选择时域数据选项,如下图所示:

选择时域数据选项后,将弹出如下所示的界面:

在上图input及output选项中将MATLAB工作空间中的输入输出数据名称填入,”data name”处填写辨识输入区域数据名,开始时间选择0,时基选择1ms。都选择好后选择import将数据导入辨识输入区域,如下图所示:

  1. 输入数据预处理

对输入的信号进行处理,可选多份数据中的一份、合并数据、数据平滑化、滤波、采样等方法。

  1. 参数辨识

如下图所示,选择传递函数选项对系统传递函数的参数进行辨识。

选择传递函数选项后,会弹出如下界面对传递函数的形式进行选择。

之后点击”Estimate”进行参数辨识,辨识完成后,出现如下所示界面:

在如下界面中,点击tfx选项,即可查看传递函数

如下图所示为辨识出的系统传递函数,

如上图所示为选择两个极点一个零点时辨识出的传递函数,测试的输入输出数据由下图所示传递函数导出,对比可知,两传递函数相同。

针对上述情况,若保持默认值,即两个极点两个零点,则参数辨识结果如下:

将辨识出的传递函数表达式输出及原传递函数输出进行比较,输出重合,结果如下:

PID参数拟合

我们在使用PID控制器时,需要通过调节PID的各个参数,来使系统的输出曲线满足我们的实际要求。常用的几种PID参数调节方法需要通过多次的参数修改来调整系统的输出曲线,较为繁琐。Simulink提供了一种较为简易的PID参数调节方法,通过”PID tuner”工具来调整系统输出波形,输出该输出波形对应的PID参数。

打开方式

如下图所示为PID控制器参数界面:

单击”Tuner”按钮,将弹出”PID tuner”操作界面,如下图所示:

波形调整

通过调整下图所示的两个,可以调整输出波形:

如下图所示为调整完成后的输出波形:

参数输出

单击上图中的”Update Block”选项可以将调整后的参数同步到系统PID控制模型中,单击”Show Parameters”选项可以查看该输出波形对应的PID参数,如下图所示:

将调整后的参数同步到系统模型后,再对系统进行仿真测试,可得到如下所示的系统输出波形:

离散化仿真

我们建立的simulink模型大多数为连续的模型,而在实际使用时,需要将连续模型进行离散化,并将离散化的PID控制器以C代码的形式输出,其中simulink代码的导出与state flow代码的导出步骤相同。下面主要对连续模型的离散化步骤进行介绍。

首先,按照state flow中的方法设置函数解算及代码生成设置。然后按照下图所示选择模型离散化工具。

然后在下图模型离散化工具界面中设置合适的时基,之后点击”S->Z”将连续模型离散化,并进行仿真调试,离散模型的仿真调试与连续模型的仿真调试相同。

如下图所示为离散化后的PID控制模型:

参考

  1. https://blog.csdn.net/tzlaa/article/details/113575724?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7EHighlightScore-2.queryctrv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7EHighlightScore-2.queryctrv2&utm_relevant_index=5
  2. 百度安全验证
  3. Simulink中连续模型的离散化_我陪你走的博客-CSDN博客_simulink离散化
  4. https://blog.csdn.net/weixin_39731456/article/details/112508107
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号