首页天道酬勤比pid控制更好的算法,pid算法c程序

比pid控制更好的算法,pid算法c程序

张世龙 05-04 01:26 7次浏览

1、对比例部分比例环节的作用是瞬时反应偏差。 发生偏差时,控制器会产生控制作用,控制量会向减少偏差的方向变化。 控制作用强弱取决于比例系数Kp,比例系数Kp越大,控制作用越强,过渡过程越快,控制过程的静态偏差也越小,但Kp越大,越容易发生振荡,破坏系统稳定性。 因此,比例系数Kp的选择如果不合适,过渡时间少,静差小,得不到稳定的效果。

2、I -积分部分由积分部分的数学公式可以看出,只要有偏差,其控制作用就会不断增加; 仅当偏差e(t )=0时,其积分为常数,控制作用为不增加的常数。 可见积分部分可以消除系统的偏差。

积分过程的调节作用可以消除静态误差,但降低系统响应速度,增加系统超调量。 积分常数Ti越大,积分积累作用越弱,此时系统暂态不振动; 虽然增大积分常数Ti会延缓静态误差的消除过程,增加消除偏差所需的时间,但可以减少过冲量,提高系统的稳定性。

Ti小时积分作用强,此时系统过渡时间可能发生振动,但消除偏差所需时间短。 因此,必须根据实际控制的具体要求来决定Ti。

3、D -微分部分的实际控制系统除了希望消除静态误差外,还要求加快调节过程。 在偏差发生的瞬间,或者偏差发生变化的瞬间,不仅要立即对应偏差量,还必须根据偏差的变化趋势事先进行适当的修正。 为了实现这一点,可以对PI控制器施加微分以形成PID控制器。

微分的作用阻止偏差的变化。 根据偏差的变化趋势(变化速度)进行控制。 偏差变化越快,微分控制器的输出越大,可以在偏差值变大之前进行修正。 微分作用的引入有助于减少超调量、克服振动、稳定系统,特别是对髙阶系统非常有利,加快了系统的跟踪速度。 微分作用对输入信号的噪声敏感,在噪声较大的系统中一般不使用微分,或者在微分作用之前对输入信号进行滤波。

位置公式PID:u(k )=Kp * e(k ) k ) ki/t*e ) k ) dt Kd*d e(k ) k; 求出波导增加式PID :u (k )=KP*e(k-1 ) Ki *e(k ) k ) KD*(e ) k )-1 ) e (k-2 ) ); 实际PID输出: u(k )=KP*e ) k-1 ) ki*e ) k ) KD*(e(k-1 ) e(k-2 ) ) u ) k-1 ); u(k )本次实际输出量u(k-1 )上次输出量u(k )输出变化量Kp :比例系数Ki :积分系数Kd )微分系数e(k-1 )上次目标和实际误差值e(k ) :本次目标和实际误差值e(k-2 ) 类型结构{ float KP; //比例系数float ki; //积分系数float kd; //微分系数float error; //误差值float lastError; //前一个误差值float dError; //上次误差和这次误差的变化值float ddError; //上次误差的变化值和本次误差的变化值的变化值float dError_last; //上次误差和上次误差的变化值float output; //输出值float output_last; //上次的输出值float output_new; (}pid_info; voidreset_PID(PID_info*PID,float kp,float ki,float kd ) {pid-kp=kp; pid-ki=ki; pid-kd=kd; pid-error=0; pid-lastError=0; pid-dError=0; pid-ddError=0; pid-dError_last=0; pid-output=0; pid-output_last=0; }浮动增量PID (浮动错误,pid_info *pid ) /增量PID ) PID-error=error; pid-dError=error - pid-lastError; PID-DD error=PID-d error-PID-d error _ last; pid-lastError=error; pid-dError_last=pid-dError; PID-output=(PID-KP*PID-derror ) pid-ki*error ) PID*PID-DDerror ) pid-output_last; pid-output_last=pid-output; //int32_tPIDoutput=(int32_t ) pid-output; 返回PID -输出; }

什么时候用增量式pid,增量式pid三个参数