位置式PID控制算法
#include "math.h" struct PID_Data { struct { float uc; //输入命令值 float y; //实际测量值 float u; //实际控制器输出值 float v; //控制器输出的一个比较值 }Signals; struct { float P; //比例控制器输出值 float I; //积分器输出值 float D; //微分器输出值 float yold; //y[(k-1)t]的值 float Si; //积分分离算法时误差的判断点 }States; struct { float K; //比例增益 float Ti; //积分时间常数 float Td; //微分时间常数 float N; //最大位分增益 float ulow; //控制器输出最小值 float uhigh; //控制器输出最大值 float T; //采样周期 float Ki,ar,bd,ad; //中间变量 }Par; }pid_data;
用户评论