教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

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

来源:网络收集 时间:2026-08-09
导读: 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_a

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文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/519893.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)