慢响应系统PID调参(二)——系统辨识

概述

系统辨识的目的是找到实际系统中单输入与单输出之间近似的传递函数,需要采集输入、输出实验数据,一般构建一阶、二阶或三阶系统,可能要加入纯延迟项。之后采用MATLAB的System Identification工具箱优化出最优的传递函数参数。

数据采集和处理

数据的采样率要固定,若不固定,须用插值的方式算出采样率固定的实验数据。一般给受控系统输入连续多个阶跃信号,要等到系统对当前阶跃信号的响应趋于稳定后再输入下一个阶跃,保证所采集的响应数据能够全面反应出系统的特性。该阶跃信号应该是PID控制器的输出,如S7-1500中的PID用手动模式,人为写入一个固定的输出值。

系统的响应数据一般要偏移成初始条件为0,例如环境温度是30℃,所采集的加热炉温度是从30℃开始的,此时所有响应数据要减去30。我做过测试,偏移后的数据拟合出的传递函数,其拟合优度要比未偏移高很多,更能体现出系统的真实响应。

System Identification工具箱操作

将输入、输出数据导入MATLAB的工作区。

 在命令窗口运行systemIdentification,打开系统辨识工具箱。

 导入实验数据:在Import data下拉列表中选择Time domain data。在input中填写工作区的输入数据变量u,output中填写输出变量y。我的实验数据,其时间从0时刻开始,采样率0.4s一次采样。点击Import,数据成功导入。

  

 将左侧的mydata拖拽到Working data。在Estimate下拉列表中选择Process Models,打开优化操作窗口。根据实际系统类型,选择极点数、是否有零点、是否有纯延迟项、是否有极点为0。

在Initial Guess中选择User-defined,根据实验数据,评估增益、延迟时间、极点等参数的取值范围,给出合理的搜索范围和起始点,将对优化效果有非常大的帮助。将系统稳态值除以输入,可得到增益K。通过对比阶跃输入的时间和输出有响应的时间,大致评估出延迟时间Td。

 

 勾选Display progress可看到迭代过程。做好以上准备后,点击Estimate按钮,自动选择合适的优化算法,开始迭代过程。拟合优度越接近100%,拟合效果越好。

 迭代结果自动存入模型预览区域,右击,可看到模型的具体参数。拖拽到To Workspace,可将模型导入MATLAB的工作区。

 至此,可以得到实际受控系统近似的传递函数。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值