- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在自动控制中, PID 及其衍生出来的算法是应用最广的算法之一。 各个做自
动控制的厂家基本都有会实现这一经典算法。 我们在做项目的过程中, 也时常会
遇到类似的需求,所以就想实现这一算法以适用于更多的应用场景。
1、PID 算法基本原理
PID 算法是控制行业最经典、最简单、而又最能体现反馈控制思想的算法。
对于一般的研发人员来说,设计和实现 PID 算法是完成自动控制系统的基本要
求。这一算法虽然简单,但真正要实现好,却也需要下一定功夫。首先我们从
PID 算法最基本的原理开始分析和设计这一经典命题。
PID 算法的执行流程是非常简单的, 即利用反馈来检测偏差信号, 并通过偏
差信号来控制被控量。而控制器本身就是比例、积分、微分三个环节的加和。其
功能框图如下:
根据上图我们考虑在某个特定的时刻 t ,此时输入量为 rin(t) ,输出量为 rout(t) ,
于是偏差就可计算为 err(t)=rin(t)-rout(t) 。于是 PID 的基本控制规律就可以表示为
如下公式:
其中 Kp 为比例带, T 为积分时间, T 为微分时间。 PID 控制的基本原理就
I D
是如此。
2、PID 算法的离散化
上一节简单介绍了 PID 算法的基本原理,但要在计算机上实现就必须将其
离散化,接下来我们就说一说 PID 算法的离散化问题。在实现离散化之前,我
们需要对比例、积分、微分的特性做一个简单的说明。
比例就是用来对系统的偏差进行反应, 所以只要存在偏差, 比例就会起作用。
积分主要是用来消除静差, 所谓静差就是指系统稳定后输入输出之间依然存在的
差值,而积分就是通过偏差的累计来抵消系统的静差。 而微分则是对偏差的变化
趋势做出反应,根据偏差的变化趋势实现超前调节,提高反应速度。
在实现离散前,我们假设系统采样周期为 T 。假设我们检查第 K 个采样周期,
很显然系统进行第 K 次采样。此时的偏差可以表示为 err(K)=rin(K)-rout(K) ,那
么积分就可以表示为: err(K)+err(K+1)+ ┈┈,而微分就可以表示为: (err(K)-
err(K-1))/T 。于是我们可以将第 K 次采样时, PID 算法的离散形式表示为:
也可以记为:
这就是所谓的位置型 PID 算法的离散描述公式。我们知道还有一个增量型
PID 算法,那么接下来我们推到一下增量型 PID 算法的公式。 上面的公式描述了
第 k 个采样周期的结果,那么前一时刻也就是 k-1 个采样周期就不难表示为:
那么我们再来说第 K 个采样周期的增量,很显然就是 U(k)-U(k-1) 。于是我
们用第 k 个采样周期公式减去第 k-1 个采样周期的公式, 就得到了增量型 PID 算
法的表示公式:
当然,增量型 PID 必须记得一点,就是在记住 U(k)=U(k- 1)+?U(k) 。
3、PID 控制器的基本实现
完成了离散化后, 我们就可以来实现它了。 已经用离散化的数据公式表示出
来后,再进型计算机编程已经不是问题了。接下来我们就使用 C 语言分别针对
位置型公式和增量型公式来具体实现。
(1) 位置型 PID 的简单实现
位置型 PID 的实现就是以前面的位置型公式为基础。这一节
文档评论(0)