Advertisement

C语言中PID算法的主程序及其实现

阅读量:

#include typedef struct PID { /K1=实际放大倍数,T1=实际积分时间,T2=实际微分时间,T=采样周期/

double SetPoint; /定义PID结构体/

double K1;

double T1;

double T2;

double T;

double Err1; /前一时刻误差,E(K-1)/

} PID;

double PIDCalc( PID *pp, double NextPoint,double Ud1,double Ui1) /*PID计算

*/

{

double Ti,Td,Kp,Ki,Kd,Ud,Up,Ui,Err;

Ti = pp->T1 + pp->T2; /积分时间/

Td = (pp->T1 * pp->T2) / (pp->T1 + pp->T2); /微分时间/

Kp = pp->K1 * ((pp->T1 + pp->T2) / pp->T1); /比例系数/

Ki =pp->T / Ti * Kp; /积分系数/

Kd = Td / pp->T * Kp; /微分系数/

Err = pp->SetPoint-NextPoint; /当前误差/

Ud = pp->T2 / ((Kd * pp->T) + pp->T2) * Ud1+ Kd *

全部评论 (0)

还没有任何评论哟~