PID算法的数字离散化
PID算法的数字化
PID算法的表达式:
P(t)=Kp[e(t)+1TI∫e(t)dt+TDde(t)dt](1)P(t)=K_p[e(t)+\frac{1}{T_I}\int{e(t)dt}+T_D\frac{de(t)}{dt}]\tag{1} P(t)=Kp[e(t)+TI1∫e(t)dt+TDdtde(t)](1)
P(t)P(t)P(t)为调节器的输出信号;e(t)e(t)e(t)为调节器的偏差信号,它等于给定值与测量值之差;KPK_PKP为调节器的比例系数;TIT_ITI为调节器的积分时间;TDT_DTD为调节器的微分时间。
由于计算机控制是一种采样控制,它只能根据采样时刻的偏差来计算控制量。所以 必须对上述公式进行离散化:
∫1ne(t)dt=∑j=0nE(j)Δt=T∑j=0nE(j)(2)\int_1^n{e(t)dt}=\sum_{j=0}^{n}{E(j)\Delta{t}}=T\sum_{j=0}^{n}{E(j)}\tag{2} ∫1ne(t)dt=j=0∑nE(j)Δt=Tj=0∑nE(j)(2)
de(t)dt≈E(k)−E(k−1)Δt=E(k)−E(k−1)T(3)\frac{de(t)}{dt}\approx\frac{E(k)-E(k-1)}{\Delta{t}}=\frac{E(k)-E(k-1)}{T}\tag{3} dtde(t)≈ΔtE(k)−E(k−1)=TE(k)−E(k−1)(3)
将(2)和(3)代入(1)中得到:
P(k)=Kp{E(k)+TTI∑j=0kE(j)+TDT[E(k)−E(k−1)]}P(k)=K_p\{E(k)+\frac{T}{T_I}\sum_{j=0}^{k}{E(j)}+\frac{T_D}{T}[E(k)-E(k-1)]\} P(k)=Kp{E(k)+TITj=0∑kE(j)+TTD[E(k)−E(k−1)]}
式中,T=ΔtT=\Delta{t}T=Δt为采样周期,必须使TTT足够小,才能保证系统有一定的精度。
一、位置型PID
在位置控制算式中,不仅需要对E(j)E(j)E(j)进行累加,而且计算机的任何故障都会引起P(k)P(k)P(k)大幅度变化。
第k次采样时PID的输出表达式:
P(k)=KpE(k)+KI∑j=0kE(j)+KD[E(k)−E(k−1)](4)P(k)=K_pE(k)+K_I\sum_{j=0}^{k}{E(j)}+K_D[E(k)-E(k-1)]\tag{4} P(k)=KpE(k)+KIj=0∑kE(j)+KD[E(k)−E(k−1)](4)
为程序设计时更加方便,设比例输出:
PP(k)=KPE(k)(5)P_P(k)=K_PE(k)\tag{5} PP(k)=KPE(k)(5)
积分项输出:
PI(k)=KI∑j=0kE(j)=KIE(k)+PI(k−1)(6)P_I(k)=K_I\sum_{j=0}^{k}{E(j)}=K_IE(k)+P_I(k-1)\tag{6} PI(k)=KIj=0∑kE(j)=KIE(k)+PI(k−1)(6)
微分项输出:
PD(k)=KD[E(k)−E(k−1)](7)P_D(k)=K_D[E(k)-E(k-1)]\tag{7} PD(k)=KD[E(k)−E(k−1)](7)
简写得到离散化的位置型PID编程公式:
P(k)=PP(k)+PI(k)+PD(k)(8)P(k)=P_P(k)+P_I(k)+P_D(k)\tag{8} P(k)=PP(k)+PI(k)+PD(k)(8)
二、增量型PID
增量型PID优点:1、由于计算机输出的是增量,所以误动作影响小,必要时可用逻辑判断的方法去掉;2、不产生积分失控。劣势:1、积分截断效应大,有静态误差;2、溢出的影响大。
增量型PID公式为:
ΔP(k)=Kp[E(k)−E(k−1)]+KIE(k)+KD[E(k)−2E(k−1)+E(k−2)](9)\Delta{P(k)}=K_p[E(k)-E(k-1)]+K_IE(k)+K_D[E(k)-2E(k-1)+E(k-2)]\tag{9} ΔP(k)=Kp[E(k)−E(k−1)]+KIE(k)+KD[E(k)−2E(k−1)+E(k−2)](9)
比例项:
ΔPP(k)=KP[E(k)−E(k−1)](10)\Delta{P_P(k)}=K_P[E(k)-E(k-1)]\tag{10} ΔPP(k)=KP[E(k)−E(k−1)](10)
积分项:
ΔPI(k)=KIE(k)(11)\Delta{P_I(k)}=K_IE(k)\tag{11} ΔPI(k)=KIE(k)(11)
微分项:
ΔPD(k)=KD[E(k)−2E(k−1)+E(k−2)](12)\Delta{P_D(k)}=K_D[E(k)-2E(k-1)+E(k-2)]\tag{12} ΔPD(k)=KD[E(k)−2E(k−1)+E(k−2)](12)
简写得到增量型PID公式:
ΔP(k)=ΔPP(k)+ΔPI(k)+ΔPD(k)(13)\Delta{P(k)}=\Delta{P_P(k)}+\Delta{P_I(k)}+\Delta{P_D(k)}\tag{13} ΔP(k)=ΔPP(k)+ΔPI(k)+ΔPD(k)(13)
PID算法的数字离散化相关推荐
- 针对初学者的PID算法教程,以及趣味总结
关注+星标公众号,不错过精彩内容 来源 | 技成培训 PID的数学模型 在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设计与实现过程,对于一般 ...
- PID控制算法实践应用(一):PID算法的离散化
目录 前言 一.PID连续系统离散化 二.总结 前言 上一节中,论述了PID算法的基本形式,并对其控制过程的实现有了一个简要的说明,通过上一节的总结,基本已经可以明白PID控制的过程.这一节中先继续上 ...
- PID算法搞不懂?看这篇文章。
大家好,我是张巧龙,网上关于PID算法的文章很多,但是感觉有必要自己再进行一次总结,抽丝剥茧地重新认识了一下PID: 1 前言 2 开环控制 3 闭环控制 4 PID 4.1 系统架构 4.2 理论基 ...
- 电子设计竞赛(4)-常用的两种PID算法
公众号关注 "大鱼机器人" 设为 "星标",重磅干货,第一时间送达! 1. 什么是PID PID 控制器以各种形式使用超过了 1 世纪,广泛应用在机械设备.气动 ...
- 用Excel教会你PID算法
01.引入PID 电机控制 这样是没有反馈的,也就是说我们完全相信输入的数字,且是理想化的模型,比如输入占空比为50%的25Kz的PWM,车轮速度为1m/s,实际产品中会受到各种这样的影响,比如地面阻 ...
- PID算法的基础知识
PID的含义 控制系统通常根据有没有反馈会分为开环系统和闭环系统,PID是一个闭环控制算法.因此要实现PID算法,必须在硬件上具有闭环控制,就是得有反馈.比如控制一个电机的转速,就得有一个测量转速的传 ...
- PID算法入门与C语言代码实现
PID算法的入门理解以及C代码实现 在结束了自控原理的学习后,了解到PID算法是一种万能算法,在课设中也是经常使用到的一种算法,所以想具体的来进行以下总结与学习,如果有错漏的地方,欢迎大家共同来探讨与 ...
- PID控制器开发笔记之一:PID算法原理及基本实现
在自动控制中,PID及其衍生出来的算法是应用最广的算法之一.各个做自动控制的厂家基本都有会实现这一经典算法.我们在做项目的过程中,也时常会遇到类似的需求,所以就想实现这一算法以适用于 ...
- 在 FPGA 上快速构建 PID 算法
在 FPGA 上快速构建 PID 算法 副标题:优秀的IC/FPGA开源项目(四)-使用HLS构建PID算法 <优秀的IC/FPGA开源项目>是新开的系列,旨在介绍单一项目,会比<优 ...
最新文章
- sql server 数据库备份方案
- 使用mysql-proxy 快速实现mysql 集群 读写分离
- [译]2019年修炼前端开发者之路
- 使用docker安装的mysql如何让其他机器访问
- mastercam2017安装教程
- poj1182(食物链)续
- 插入节点insertBefore()
- python如何保持数据类型不变_python 可变和不可变数据类型、格式化输出和基础运算符...
- mysql for update缺点_有关mysql的for update以及 死锁问题
- layer模态窗简单使用
- verilog之状态机的结构
- 【图像增强】基于matlab GUI暗通道图像去雾【含Matlab源码 740期】
- prinect pdf toolbox 2021中文版
- c#明华rf读卡器_:C# 实现明华读卡器(2)
- java 调查问卷_java学习调查问卷
- 【QT】QT从零入门教程(八):图像灰度化
- 生命计算机在线,抖音死亡计算器寿命计算器在线测试入口 使用生命年龄计算器...
- 2022全年PMP考证时间表(预估)收藏版
- 高等数学 - 对弧长的积分
- easyBCD修改系统启动项