import时间 matlab_拒绝瞎调,用matlab,自动调节PID参数

本文介绍了如何利用MATLAB的system identification和PID tuner工具自动辨识系统的传递函数并调整PID参数。通过模拟数据或实际电机数据,经过系统辨识得到传递函数,然后使用PID tuner自动整定PID控制器,实现更高效的控制效果。这种方法节省了手动调参的时间,并且可以设计更精确的控制器。文章还提到了后续的深入研究,包括单关节动力学参数辨识和力矩前馈控制。
摘要由CSDN通过智能技术生成

写在最前,在经验调参双环PID的时候,发现无论如何调都不能够满意,而且很浪费时间。因此,想找到更合理更科学地方法,来得出PID参数,于是发现了一个新大陆 -- 系统辨识

最终效果:自动调出PID三项对应的参数,控制效果很不错。

目的:通过matlab,辨识出系统的传递函数,找到最理想的PID参数。

优点:1.节省“盲调PID”的时间。2.在辨识出传递函数后,还可以设计专门的控制器,达到经验调参不能做到的效果,逼近完美。

用到的工具:1.matlab的system identification 和PID tunner app2.simulink。

只要跟我做以下几步就可以啦:

1.得到你的电机的输入输出曲线(数据),导入matlab里。

2.用system Identification app,系统辨识,得到传递函数;

3.用PID tunner自动整定PID参数。

一、伪造数据

tips:这一部分操作的目的,是模拟电机正常运行,得到相类似的数据。如果你已经有实际真实的数据,跳过这一步!

由于疫情原因,现在手头没有真实的电机数据,所以我只能假装我有数据(伪造)。

首先,设计一个电机的传递函数

283c7997639dae34a00a71cdab8d9dee.png

接着在simulink上搭建简单的1DOF的PID控制器,给定PID初始参数是:P为1,I和D都为0。这样,这个控制器从输入到输出的传递函数即为电机的传递函数。

08b8fb070a9f81dbcfacbc481d3d854a.png

仿真后,导出你的输入和输出数据到matlab的工作区里,这一步就完成啦。

tips:该例子中,输入是一个单位阶跃信号。

二、导入数据

打开system identification app,并把工作区中的输入和输出数据导入进来,点击import即可。

e7fadd69911b04944ce3021b26a5ba58.png

三、辨识系统

首先,把原始数据分开为两部分:训练部分和验证部分(其实本质就是用神经网络辨识);

931f69acd9c3d239723ddd424ac18392.png

接着,把mydatae拖动到workspace Data中,把mydatav拖动到mydata中。

之后,选择估算传递函数,设置好合适的零点极点后,便可得出系统的传递函数。

83fc37cc28b6829567a36d84ff1b345b.png

双击tf2,你能看到它的详细数据,从中我们可以看到一些主要信息:辨识出来的传递函数,以及它的拟合度为100%。

d0e04e941fa4fd96a69a624f34785684.png

四、自动整定PID,使用PID tuner工具

打开simulink,双击你的PID控制器,点击tune

b6d05c09c297723b9a1b2e8d4b97bbe8.png

自动打开PID tuner之后,调节两个按钮,一个是响应速度,另一个是选择超调量。随后,它会自动更新新的曲线,以及保留原来方案的响应曲线,方便我们对比。

bb4b1beccd105ab39960cab952a01762.png

得到一个较满意的响应后,我们选择update,更新PID参数到simulink中。

1d860a102b422b29cb5592aaa7aa8c06.png

个人总结:以上步骤做出来的效果,也是和经验调参差不多的。要想做到更好的控制效果,还需要去根据传递函数与实际情况,设计一个新的控制器,matlab只是辅助工具,要懂得原理才是最重要的。


更新:最新一篇文章,系统辩识+调pid+机器人仿真平台上调角度环的完整流程,非常详细了,让你更清晰pid tuner的威力

龙胆也老师:matlab系统辨识+调PID,全网最完整步骤(v-rep仿真)​zhuanlan.zhihu.com

二更:后面又对单关节(单摆模型)进行动力学参数的辨识,还加上了力矩前馈控制。重新写了三篇文章:黑箱辨识、灰箱辨识以及力矩前馈控制。控制效果比上面那篇文章做的更好

龙胆也老师:【系统辨识】灰箱辨识单关节动力学参数​zhuanlan.zhihu.com
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值