-
2021-09-04 13:54:21
数字 PID 控制算法通常分为位置式 PID 控制算法和增量式 PID 控制算法
一、位置式 PID 算法 :
e(k): 用户设定的值(目标值) - 控制对象的当前的状态值 比例P : e(k) 积分I : ∑e(i) 误差的累加 微分D : e(k) - e(k-1) 这次误差-上次误差
也就是位置式PID是当前系统的实际位置,与你想要达到的预期位置的偏差,进行PID控制
因为有误差积分 ∑e(i),一直累加,也就是当前的输出u(k)与过去的所有状态都有关系,用到了误差的累加值;(误差e会有误差累加),输出的u(k)对应的是执行机构的实际位置,,一旦控制输出出错(控制对象的当前的状态值出现问题 ),u(k)的大幅变化会引起系统的大幅变化
并且位置式PID在积分项达到饱和时,误差仍然会在积分作用下继续累积,一旦误差开始反向变化,系统需要一定时间从饱和区退出,所以在u(k)达到最大和最小时,要停止积分作用,并且要有积分限幅和输出限幅
所以在使用位置式PID时,一般我们直接使用PD控制
而位置式 PID 适用于执行机构不带积分部件的对象,如舵机和平衡小车的直立和温控系统的控制。
二、增量式PID
比例P : e(k)-e(k-1) 这次误差-上次误差 积分I : e(i) 误差 微分D : e(k) - 2e(k-1)+e(k-2) 这次误差-2*上次误差+上上次误差 增量式PID根据公式可以很好地看出, 一旦确定了 KP、TI 、TD,只要使用前后三次测量值的偏差, 即可由公式求出控制增量
而得出的控制量▲u(k)对应的是近几次位置误差的增量,而不是对应与实际位置的偏差 没有误差累加
也就是说,增量式PID中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果,并且在系统发生问题时,增量式不会严重影响系统的工作
总结:增量型 PID,是对位置型 PID 取增量,这时控制器输出的是相邻两次采样时刻所计算的位置值
之差,得到的结果是增量,即在上一次的控制量的基础上需要增加(负值意味减少)控制量。float Current_Error;//当前误差 float Last_Error;//上一次误差 float Previous_Error;//上上次误差 float Increase; //最后得出的实际增量 float Point; //期望值 float NowPlace; //实际值 Current_Error = Point - NowPlace; // 计算当前误差 Increase = P * (Current_Error - Last_Error) + I * Current_Error + D * (Current_Error - 2 * Last_Error + Previous_Error); //增量式PID公式 Previous_Error = Last_Error; // 更新前次误差 Last_Error = Current_Error; // 更新上次误差 return Increase; // 返回增量
增量式与位置式区别:
1增量式算法不需要做累加,控制量增量的确定仅与最近几次偏差采样值有关,计算误差对控制 量计算的影响较小。而位置式算法要用到过去偏差的累加值,容易产生较大的累加误差。
2增量式算法得出的是控制量的增量,例如在阀门控制中,只输出阀门开度的变化部分,误动作 影响小,必要时还可通过逻辑判断限制或禁止本次输出,不会严重影响系统的工作。 而位置式的输出直接对应对象的输出,因此对系统影响较大。
3增量式PID控制输出的是控制量增量,并无积分作用,因此该方法适用于执行机构带积分部件的对象,如步进电机等,而位置式PID适用于执行机构不带积分部件的对象,如电液伺服阀。
4在进行PID控制时,位置式PID需要有积分限幅和输出限幅,而增量式PID只需输出限幅
位置式PID优缺点:
优点:
①位置式PID是一种非递推式算法,可直接控制执行机构(如平衡小车),u(k)的值和执行机构的实际位置(如小车当前角度)是一一对应的,因此在执行机构不带积分部件的对象中可以很好应用缺点:
①每次输出均与过去的状态有关,计算时要对e(k)进行累加,运算工作量大。增量式PID优缺点:
优点:
①误动作时影响小,必要时可用逻辑判断的方法去掉出错数据。
②手动/自动切换时冲击小,便于实现无扰动切换。当计算机故障时,仍能保持原值。
③算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关。缺点:
①积分截断效应大,有稳态误差;②溢出的影响大。有的被控对象用增量式则不太好;
- 比例控制对于惯性较大对象,控制过程缓慢,控制品质不佳。比例微分控制可提高控制速度,对惯性较大对象,可改善控制质量,减小偏差,缩短控制时间。
- 理想微分作用持续时间太短, 执行器来不及响应。实际使用中,一般加以惯性延迟,称为实际微分。
- PD 调节以比例调节为主,微分调节为辅,PD调节是有差调节。
- PD 调节具有提高系统稳定性、抑制过渡过程最大动态偏差的作用。
- PD 调节有利于提高系统响应速度。
- PD 调节抗干扰能力差,一般只能应用于被调参数 变化平稳的生产过程。
- 微分作用太强时,容易造成系统振荡。
更多相关内容 -
增量式PID控制算法地MATLAB仿真.pdf
2020-06-25 06:10:04实用标准 增量式 PID 控制算法的 MATLAB 仿真 PID 控制的原理 在工程实际中应用最为广泛的调节器控制规律为比例积分微分控制 简称 PID 控制又称 PID 调节 PID 控制器问世至今已有近 70 年历史它以其 结构简单稳定性... -
增量式PID控制算法Matlab仿真程序
2020-07-31 15:06:58设一被控对象G(s)=50/(0.125s^2+7s),用增量式PID控制算法编写仿真程序(输入分别为单位阶跃、正弦信号,采样时间为1ms,控制器输出限幅:[-5,5],仿真曲线包括系统输出及误差曲线,并加上注释、图例)。 -
增量式PID控制算法.doc
2020-07-26 19:49:46增量式PID算法 原理及实现方法 物理模型 软件算法流程图流程图 增量式PID算法的优点,对声音信标麦克纳姆轮pid的代码 写法有帮助,里面还有一个连接,附带代码,可以参考。搜集全网最实用资料。 -
增量式PID控制C语言代码
2020-07-31 14:03:11这里个大家分享了一个增量式PID控制C语言的源代码。 -
基于三菱FX2N的增量式PID控制器设计
2021-01-20 02:16:13增量式PID控制算法每次输出只输出控制增量,必要时可通过逻辑判断限制故障时的输出,从而降低了因机器故障导致PID误输出给系统带来严重后果的影响。 在实际系统中,PLC控制模拟量可采用PLC自带的PID过程控制模块... -
pid.rar_PID积分限幅_pid_增量式PID控制_增量式pid_控制
2022-07-14 18:40:56增强式PID集成程序,只需输入当前值、期望、比例、积分、微分、限幅即可得到增量式pid控制程序。 -
参考资料-增量式PID控制在温控系统中的应用.zip
2022-01-27 16:50:38参考资料-增量式PID控制在温控系统中的应用.zip -
增量式pid控制算法.rar_增量PID_增量式_增量式pid
2022-07-15 02:25:11增量式控制算法可以使存储空间减小,运行更迅速 -
zengliangshiPIDkongzhi.rar_pid增量式_增量PID_增量PID算法_增量式PID控制_增量式PID算
2022-07-14 22:25:33增量式控制PID算法,一种PID控制算法代码,适合参考使用 -
电机控制案例 增量式PID及其MATLAB实现 含源代码.pdf
2021-09-19 16:31:26function f(a,M) %a选则输入信号,M为输出图形的横坐标最大值; %单位阶跃f(1,1); %正弦波f(2,2) %三角波f(3,1) ts=0.001;%采样时间 G=tf(50,[0.125,7, 0]) Gd=c2d(G,ts,'z');...[num,den]=tfdata(Gd,'v') ... -
PID_KP_增量式PID控制算法_增量PID_
2021-09-30 06:59:22增量式PID matlab控制例程,可以尝试调节Kp/Ki/Kd -
基于增量式PID控制的数控恒流源
2020-08-07 09:45:05数控恒流源在计量、半导体、传感器等领域得到广泛应用,针对目前市场上大部分恒流源产品精度和智能化水平偏低等问题,提出了一种增量式PID控制的数控恒流源设计方法。该系统通过单片机对恒流源模块的输出进行采样,... -
增量式PID控制器的Verilog HDL实现
2020-08-26 11:18:52这是之前做设计的时候存下来的代码,通过quartus使用verilog hdl实现的基本PID控制,做的不算好,只实现了基本的PID控制,精度不敢保证。 之前本来想在网上找,但是找不到不到只能自己学着写。 应付一下课程设计和... -
增量式PID控制在温控系统中的应用.rar
2021-04-05 13:45:23增量式PID控制在温控系统中的应用 -
增量式PID控制模块程序设计
2021-01-20 02:29:12(1)包含必要的头文件及定义程序需要的结构。 : window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": -
增量式PID控制的Verilog算法代码
2019-04-15 20:22:28因为课程设计,需要实现PID的控制器,想在网上寻求一下现成的代码发现都没有。 于是个人尝试了一些,刚开始学习PID控制算法,练习了一些代码,这个是我尝试的结果希望对大家有帮助。 -
工业电子中的基于三菱FX2N的增量式PID控制器设计
2020-11-06 08:01:22增量式PID控制算法每次输出只输出控制增量,必要时可通过逻辑判断限制故障时的输出,从而降低了因机器故障导致PID误输出给系统带来严重后果的影响。 在实际系统中,PLC控制模拟量可采用PLC自带的PID过程控制模块... -
位置式和增量式 PID 控制器(C语言实现).rar
2021-08-31 16:45:25C语言实现的PID控制器,包含位置式和增量式C语言实现方式,文件包含头文件和源文件,添加到自己工程里就可以调用使用了。 -
51单片机增量式PID控制算法.rar
2021-06-01 15:50:09详细介绍51单片机增量式PID算法 -
STM32F103 模糊自整定增量式PID控制电机速度
2018-10-06 12:46:38本代码是基于STM32F103ZET6和编码器直流电机编写的,模糊自整定增量式PID控制电机转动速度的程序。并且是基于正点原子代码格式编写的,相对于普通增量式PID来说控制效果更好,是很好的算法优化。对于初学者有重要的... -
增量式PID控制算法
2021-05-29 15:20:30增量式PID控制算法增量式PID控制算法概述: 注:本文内容摘自《先进PID控制MATLAB仿真(第4版)》刘金琨 编著,研读此书受益匪浅,感谢作者! 增量式PID控制算法概述: 当执行机构需要的控制量的增量(例如驱动步进...增量式PID控制算法
注:本文内容摘自《先进PID控制MATLAB仿真(第4版)》刘金琨 编著,研读此书受益匪浅,感谢作者!增量式PID控制算法概述:
当执行机构需要的控制量的增量(例如驱动步进电机)时,应采用增量式PID控制。根据递推原理可得
u ( k − 1 ) = K p ( e r r o r ( k − 1 ) + K i ∑ j = 0 k − 1 e r r o r ( j ) + K d ( e r r o r ( k − 1 ) − e r r o r ( k − 2 ) ) ) u(k-1)=K_p(error(k-1)+K_i\sum_{j=0}^{k-1}error(j)+K_d(error(k-1)-error(k-2))) u(k−1)=Kp(error(k−1)+Kij=0∑k−1error(j)+Kd(error(k−1)−error(k−2)))
增量式PID控制算法
Δ u ( k ) = u ( k ) − u ( k − 1 ) \Delta u(k)=u(k)-u(k-1) Δu(k)=u(k)−u(k−1)
Δ u ( k ) = K p ( e r r o r ( k ) − e r r o r ( k − 1 ) ) + K i e r r o r ( k ) + K d ( e r r o r ( k ) − 2 e r r o r ( k − 1 ) + e r r o r ( k − 2 ) ) \Delta u(k)=K_p(error(k)-error(k-1))+K_ierror(k)+K_d(error(k)-2error(k-1)+error(k-2)) Δu(k)=Kp(error(k)−error(k−1))+Kierror(k)+Kd(error(k)−2error(k−1)+error(k−2))
式中 Δ u ( k ) \Delta u(k) Δu(k)为控制增量, K p K_p Kp为比例系数, K i K_i Ki为积分时间常数, K d K_d Kd为微分时间常数, e r r o r ( k ) error(k) error(k)为本次偏差, e r r o r ( k − 1 ) error(k-1) error(k−1)为上次偏差, e r r o r ( k − 2 ) error(k-2) error(k−2)为上上次偏差。
由于控制算法中不需要累加,控制增量 Δ u ( k ) \Delta u(k) Δu(k)仅与最近 k k k次的采样有关,所有误动作时影响小,而且较容易通过加权处理获得比较好的控制效果。
增量式PID偏差不需要累加,输出结果只和最近3次的偏差结果有关。 -
51单片机PID算法程序(三)增量式PID控制算法.doc
2022-07-10 11:33:4851单片机PID算法程序(三)增量式PID控制算法.doc51单片机PID算法程序(三)增量式PID控制算法.doc51单片机PID算法程序(三)增量式PID控制算法.doc51单片机PID算法程序(三)增量式PID控制算法.doc51单片机PID算法程序(三)... -
基于增量式PID控制的半导体制冷温控系统.pdf
2021-08-29 18:00:10基于增量式PID控制的半导体制冷温控系统.pdf -
增量式PID控制算法的MATLAB仿真.pdf
2022-06-19 20:35:20增量式PID控制算法的MATLAB仿真.pdf增量式PID控制算法的MATLAB仿真.pdf增量式PID控制算法的MATLAB仿真.pdf增量式PID控制算法的MATLAB仿真.pdf增量式PID控制算法的MATLAB仿真.pdf增量式PID控制算法的MATLAB仿真.pdf... -
增量式PID控制算法的MATLAB仿真.docx
2022-06-19 18:59:17增量式PID控制算法的MATLAB仿真.docx增量式PID控制算法的MATLAB仿真.docx增量式PID控制算法的MATLAB仿真.docx增量式PID控制算法的MATLAB仿真.docx增量式PID控制算法的MATLAB仿真.docx增量式PID控制算法的MATLAB仿真.... -
C# 增量式PID控制
2015-08-01 18:11:51C#开发的关于增量PID的控制小程序,是控制台应用程序,适合初学者增强对PID的了解及其开发。 -
位置式PID控制与增量式PID控制的比较
2012-02-03 16:43:00位置式PID控制与增量式PID控制的比较