c语言pID程序怎么设计,PID控制算法的C语言实现完整版)

概述:

最近两天在考虑一般控制算法的C语言实现问题,发现网络上尚没有-套完

整的比较体系的讲解。于是总结了几天,整理-套思路分享给大家。

在工业应用中PID及其衍生算法是应用最广泛的算法之-”,是当之无愧的万

能算法,如果能够熟练掌握PID算法的设计与实现过程,对于一般的研发人员来

讲,应该是足够应对一般研发问题了,而难能可贵的是,在我所接触的控制算法

当中,PID控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的

经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想

牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧,何等的简单!简单的不是

原始的,简单的也不是落后的,简单到了美的程度。先看看PID算法的一般形式:

1、PID控制算法的C语言实现三位置型PID的C语言实 现 上一节中已经抽象出了位置性PID和增量型PID的数学表达式,这一节,重 点讲解C语言代码的实现过程,算法的C语言实现过程具有一般性,通过PID 算法的C语言实现,可以以此类推,设计其它算法的c语言实现。

c语言pID程序怎么设计,PID控制算法的C语言实现完整版)_第1张图片

2、这就是离散化PID的增量式表示方式,由公式可以看出,增量式的表达结果和最 近三次的偏差有关,这样就大大提高了系统的稳定性。需要注意的是最终的输出 结果应该为

c语言pID程序怎么设计,PID控制算法的C语言实现完整版)_第2张图片

3、上一节中,我论述了PID算法的基本形式,并对其控制过程的实现有了一个 简要的说明,通过上一-节的总结,基本已经可以明白PID控制的过程。这一- 节中 先继续上一节内容补充说明一下。 1.说明一下反馈控制的原理,通过上一节的框图不难看出,PID控制其实是 对偏差的控制过程! 2.如果偏差为0,则比例环节不起作用,只有存在偏差时,比例环节才起作用。 3.积分环节主要是用来消除静差,所谓静差,就是系统稳定后输出值和设定 值之间的差值,积分环节实际上就是偏差累计的过程,把累计的误差加到原有系 统上以抵消系统造成的静差。 4.而微分信号则反应了偏差信号的变化规律,或者说是变化趋势,根据偏差 信号的变化趋势来进行超前调节,从而增加了系统的快速性。 好了,关于PID的基本说明就补充到这里,下面将对PID连续系统离散化, 从而方便在处理器上实现。下面把连续状态的公式再贴- .下:

c语言pID程序怎么设计,PID控制算法的C语言实现完整版)_第3张图片

4、1.输入量rin (t)为电机转速预定值(转/min) ; 2.输出量rout (t)为电机转速实际值(转/min) ; 3.偏差量为预定值和实际值之差(转/min) ; 那么以下几个问题需要弄清楚: 1.通过PID环节之后的U(t)是什么值呢? 2.控制执行器(直流电机)转动转速应该为电压值(也就是PWM占空比)。 3.那么U(t)与PWM之间存在怎样的联系呢?

c语言pID程序怎么设计,PID控制算法的C语言实现完整版)_第4张图片

你可能感兴趣的:(c语言pID程序怎么设计)