PID模型优化(系统辨识工具箱及PID tuner)

  • 传递函数推算

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

  1. 打开方式
  1. 命令行方式:在命令行中输入”ident”

 

  1. APP界面选择:在APP界面中选择”System Identification”

 

  1. 界面介绍

如下图所示为系统辨识工具箱基本界面:

 

  1. 基本操作
  1. 导入数据

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

 

导入后如下图所示:

 

  1. 将数据导入工具箱

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

 

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

 

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

 

  1. 输入数据预处理

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

 

  1. 参数辨识

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

 

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

 

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

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

 

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

 

  1. 结果测试

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

 

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

 

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

 

  • PID参数拟合

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

  1. 打开方式

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

 

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

 

  1. 波形调整

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

 

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

 

  1. 参数输出

单击上图中的”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
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值