不用浮点实现pid_漫谈PID——实现与调参

本文介绍了PID控制器的基本原理,包括比例、积分和微分的作用,以及如何通过离散化实现PID算法。文章还讨论了PID参数的调整方法,包括比例系数、积分时间和微分时间的影响,并提供了实际项目的应用示例。此外,分享了作者在PID调参过程中的经验和心得。
摘要由CSDN通过智能技术生成

闲话:

作为一个控制专业的学生,说起PID,真是让我又爱又恨。甚至有时候会觉得我可能这辈子都学不会pid了,但是经过一段时间的反复琢磨,pid也不是很复杂。所以在看懂pid的基础上,写下这篇文章,方便学习和交流。

==================================================================

PID控制器是工业过程控制中广泛采用的一种控制器,其中,P、I、D分别为比例(Proportion)、积分(Integral)、微分(Differential)的简写;将偏差的比例、积分和微分通过线性组合构成控制量,用该控制量对受控对象进行控制,称为PID算法 。

其中KP、KI、KD分别为比例系数、积分系数、微分系数。

比例系数KP :反应系统当前最基本的误差,系数大,可以加快调节,减小误差,但是过大的比例使系统稳定性下降,甚至造成系统的不稳定。

积分系数KI  :反应系统的累计误差,使系统消除稳态误差,提高无差度,只要有误差,积分调节就会起作用。

微分系数KD :反应系统误差的变化率,具有预见性,们可以预见偏差的变化趋势,产生超前的控制效果。因此可以改善系统的动态性能。但是微分对噪声有放大作用,会减弱系统的抗干扰性。

194470410_1_20200703113028537.png

转化为数学语言就是:

194470410_2_20200703113028833.png

由上面的方框图,可以知道其传递函数(拉式域表达式)为:

194470410_3_2020070311302999.png

控制理论和数学分析中,我们一般借助拉普拉斯变化和傅里叶变换来帮助我们分析系统的某些特性,比如暂态响应、稳态响应等。但是在程序中,我们只能根据时域中的离散化的表达式来编写算法。

所以将上式转化为时域表达式为:

194470410_4_20200703113029287.png

我们需要在计算机中通过编程实现这个式子,而上式又是连续时间的表达式,所以只能先将其离散化,推导出他的差分方程如下:

194470410_5_20200703113029521.png.....................................(1)

这就是增量式pid算法的差分方程。

其中 T 为PID的计算周期,就是 dt  。其值由微控制器的定时器决定,自己设置pid的运算周期。

e(k) 为本次计算时,传感器反馈的值和设定值之间的差。

e(k-1) 为上次计算时,传感器反馈的值和设定值之间的差。

e(k-2) 为上上次计算时,传感器反馈的值和设定值之间的差。

有了pid算法的差分方程,就可以通过编程来实现这个算法。之所以得通过差分方程来实现,是因为差分方程的一般解法是迭代法,而迭代法只需要知道初值和通项公式就能计算出所有时刻的的值。这是计算机最擅长的事情了。

这个式子就是最本质的离散化PID表达式。后面我将基于他推导出其他几个常见的表达式,但是实质都是这个式子。

在推导其他的表达式之前,请注意这几个变量的 关系:

比例系数&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值