PID控制 位置式和增量式 怎样选择

PID控制 位置式和增量式 怎样选择,第1张

1)位置式PID控制的输出与整个过去的状态有关,用到了误差的累加值;而增量式PID的输出只与当前拍和前两拍的误差有关,因此位置式PID控制的累积误差相对更大;(2)增量式PID控制输出的是控制量增量,并无积分作用,因此该方法适用于执行机构带积分部件的对象,如步进电机等,而位置式PID适用于执行机构不带积分部件的对象,如电液伺服阀。(3)由于增量式PID输出的是控制量增量,如果计算机出现故障,误动作影响较小,而执行机构本身有记忆功能,可仍保持原位,不会严重影响系统的工作,而位置式的输出直接对应对象的输出,因此对系统影响较大。

何苦这样做!最好的办法就是用自己编程,用增量式的PID做首先根据你设定的流量,通过公式算出一个大概的频率,以这个频率为做t=0时刻PID的输出!因为一般泵的流量和电机的转速是成正比的你可以先做个测试,比如强制把电机频率直接调到50HZ,观察泵的流量,假设此时泵的流量为Q,那么当你需要设定流量为q的时候,大概所需要的频率为50q/Q当系统启动时,以此值做为增量式PID的t=0时刻的输出值,在此基础上做PID运算,超调非常小,稳定时间也会很短的调节的过程可以先把积分系数(注意是积分系数,而不是积分时间)调为零,慢慢增大P系数,当有点超振荡时再慢慢加积分系数不难的上帝保佑你!呵呵

uint ZKB; //定义占空比初始值

float zkc;

int kkk;

uint kp=4; //定义PID初始值

float ki=017;

uint kd=16;

uint uc=5000;

float ek;

float u_k;

float uk;

float uk1=0;

float ek1=0;

float ek2=0;

uchar click=0; //中断次数计数器变量

uint zhouqi=0;

void deal(uint t) //加热控制函数

{ TR0=1;

if(zhouqi==1) //进行PID算法,求新的占空比

{

zhouqi=0;

ek=wendu_c-t; //计算偏差

u_k=kp(ek-ek1)+kiek+kd(ek-2ek1+ek2); //计算增量

uk=uk1+u_k;

zkc=100uk/uc;

if (zkc>=95)

zkc=95;

kkk=(int)zkc ;

}

if(t>=wendu_c) //大于设定值

shuchu=0; //输出高电平

else //小于设定值

{

ZKB=(int)zkc; //调整新的脉宽定时,即新的占空比

if (click<=ZKB) // 判断脉宽定时周期是否到?当小于占空比值时输出高电平,高于时是低电平,从而实现占空比的调整

shuchu=1;

else

shuchu=0 ;

}

}

以上就是关于PID控制 位置式和增量式 怎样选择全部的内容,包括:PID控制 位置式和增量式 怎样选择、求助,关于PID调节的响应速度、请教单片机PWM控制加热器用增量式PID,三个参数的选择等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10162133.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存