PID控制步进电机转速仿真及c程序(2)

2019-08-30 23:52

if(set - now > 1) num = kp*err_now + ki*error_add + kd*(err_now - err_bef); else num = 0.1*kp*err_now + ki*error_add + kd*(err_now - err_bef); } else { if(now - set > 1) num = kp*err_now + ki*error_add + kd*(err_now - err_bef); else num = 0.1*kp*err_now + ki*error_add + kd*(err_now - err_bef); } */ if(num>num_bef) { printchar(1,10,'+'); printuint(1,11,4,num - num_bef); } else if(num

void main() { lcd_init(); timer_init(); TH1 = TL1 = 255; printword(0,0,\ //比例系数

printword(0,5,\ //设定值 printword(1,0,\ //当前占空比 printword(0,10,\ //当前电机反馈的每秒脉冲数

while(1) { if(GORB == 1) { ZZ; } else { FZ; } if(ADDSPEED == 0) set++; if(SUBSPEED == 0) set--; if(Just_Get == 1) { Just_Get = 0; GetPulse(); } else if(t2_over == 1) { t2_over = 0; Just_Get = 1; pulse = t0_flag; bbef = bef; bef = now; now = t0_flag; if(set != 0) { TR1 = 1; } else { TR1 = 0; PWM = 0; } // tpwm = tpwm + PID(); tpwm = PID2(); }

//增量式PID //位置式PID }

}

if(UP == 0) kp = kp + 1; if(DOWM == 0) kp = kp - 1;

printuint(0,2,3,kp); printuint(0,7,3,set); printuint(1,5,4,tpwm); printuint(0,13,5,pulse);


PID控制步进电机转速仿真及c程序(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《公务员法》单项选择题(附参考答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: