simulink 您所在的位置:网站首页 工程上进行pid控制器参数整定时 simulink

simulink

2024-06-28 22:23| 来源: 网络整理| 查看: 265

控制器搭建与参数整定 搭建一个前馈PID控制器控制系统PID tuner使用 一个懂点控制但不多的小白,因为需要利用simulink仿真,所以不得不学习一些仿真的知识,这篇文章适合和我一样的新手入门,有理解错误的地方希望大手们能够指出来共同学习。

搭建一个前馈PID控制器控制系统

控制框图控制框图

这里边有几点我简单的记录一下: 1.通常我们的被控对象,我们应该是最先得到它的时域下的数学模型,由于需要验证这个模型的响应,所以需要仿真,我猜测应该也可以直接仿真,但是具体为什么要转成S函数,10多年前学得了,已经记不清,似乎是为了方便分析模型的数学特性; 2.将数学模型转成s函数,需要s变换,也叫拉普拉斯变换,在matlab中用laplace()函数可求解得到对应的G(s); 3.s代表原函数的一阶微分,s^2代表二阶微分也就是二阶导数; 4.假如G(s)=k/(Ts +1)时,根据图片,前馈函数Gf(s)=T/k*s+1/k,在simulink中搭建的时候,可以用Δu/Δt表示s,就变成了一个比例加上一个微分了,所以这个时候前馈补偿有点像PD控制器; 5.编写控制器程序的时候,单片机都是基于晶振工作的,所以都是在时域下运行的,那么根据仿真得到控制器都是S函数,这个时候就用matlab中的ilaplace()反变换函数,变换到时域下,就可以把公式写到程序里了; 6.对于输入信号,我们知道G(s)=Y(s)/U(s),所以输入肯定也是要进行s变换的,如果输入是个随时间变化的函数就要做随便,如果原来时域下的输入是离散的常数值,就用阶跃信号表示,如果是区间内随机产生的,就用对应的模块。这里引用一句话。

常数的拉普拉斯变换是A/s,其中A是常数。这是因为在拉普拉斯变换中,常数被视为阶跃信号,其值为A,其拉普拉斯变换结果为A/s。

7.PID在编程的时候的表示方法,有两种: 位置式PID: pwm=Kpe(k)+Ki∑e(k)+Kd[e(k)-e(k-1)] e(k)代表本次偏差 e(k-1)代表上一次的偏差 ∑e(k)代表e(k)以及之前的偏差的累积和;其中k为1,2,k; pwm代表输出

增量式离散PID公式: pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)] e(k)代表本次偏差 e(k-1)代表上一次的偏差 以此类推 pwm代表增量输出

PID tuner使用

1.搭建好一个控制框图 在这里插入图片描述 2。确定好PID控制器的输入以及被控对象的输出,主要确定数据流对应的线条

3.打开控制系统整定 在这里插入图片描述 4.找到new step 因为我们接下来输入的信号是阶跃信号,如果不是,就更换别的信号图 在这里插入图片描述 5.然后选择刚才选定的输入信号对应的线条,输出信号对应的线条,然后plot,得到默认的调整输出曲线 在这里插入图片描述 6.找到跟踪阶跃信号 在这里插入图片描述 7.配置期望输出响应曲线的参数 在这里插入图片描述 8、选择需要整定的模块 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 9.根据配置运行整定,PID模块中的参数 在这里插入图片描述 10.将整定得到的参数更新到simulink中对应的模块中 在这里插入图片描述 11.自整定完了,根据感受,除非很清晰的知道输出是什么样的,否则得到的参数还是需要手动调整。

经过试验,前馈+PID 比 PID提升响应速度上更快,实时性更好。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有