定时器在PID运算中的应用.doc_第1页
定时器在PID运算中的应用.doc_第2页
定时器在PID运算中的应用.doc_第3页
定时器在PID运算中的应用.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*系统的PID部分:主要负责左右底盘电机的PID调速注:接线相关设定: 左电机 右电机 正转(向前),码盘输出高 正转(向前),码盘输出低*/#include #include /PID宏#define KAVALUE_L 250 /110#define KBVALUE_L 100 /50#define KCVALUE_L 0#define KAVALUE_R 250 /110#define KBVALUE_R 100 /50#define KCVALUE_R 0#define U_MAX(102310) /ICP的最高值 #define U_MIN (-102310) /(-1023vi_Ref - pp-vi_FeedBack);/ 偏差计数 d_error = error - pp-vi_PreError; /e-e(n-1) dd_error=d_error-pp-vi_PreDerror; / pp-vi_PreError = error;/存储当前偏差pp-vi_PreDerror = d_error;if( ( error -DEADLINE ) );/设置调节死区elsepp-vl_PreU += ( ( pp - Ka * d_error + pp - Kb * error ) + (pp-Kc*dd_error);if( pp-vl_PreU =U_MAX ) /防止调节最高溢出pp-vl_PreU = U_MAX;if( pp-vl_PreU vl_PreU = U_MIN;return (pp-vl_PreU10);/ 返回预调节占空比void L_PIDInit ()L_sPID.vi_Ref = 0 ; /速度设定值L_sPID.vi_FeedBack = 0 ;/速度反馈值L_sPID.vi_PreError = 0 ; /前一次,速度误差,vi_Ref - vi_FeedBackL_sPID.vi_PreDerror = 0 ;/前一次,速度误差之差,d_error-PreDerror;L_sPID.Ka = KAVALUE_L;L_sPID.Kb = KBVALUE_L;L_sPID.Kc = KCVALUE_L;L_sPID.vl_PreU=0;void R_PIDInit ()R_sPID.vi_Ref = 0 ; /速度设定值R_sPID.vi_FeedBack = 0 ;/速度反馈值R_sPID.vi_PreError = 0 ; /前一次,速度误差,vi_Ref - vi_FeedBackR_sPID.vi_PreDerror = 0 ;/前一次,速度误差之差,d_error-PreDerror;R_sPID.Ka = KAVALUE_R;R_sPID.Kb = KBVALUE_R;R_sPID.Kc = KCVALUE_R;R_sPID.vl_PreU=0;/*外部中断计数*/#pragma interrupt_handler int0_isr:2void int0_isr(void) if(dirl) counter_l+; else counter_l-;/*外部中断计数*/#pragma interrupt_handler int1_isr:3void int1_isr(void) if(dirr) counter_r+; else counter_r-;/TIMER2 initialize - prescale:1024/ WGM: Normal/ desired value: 10mSec/ actual value: 9.984mSec (0.2%)void timer2_init(void) TCCR2 = 0x00; /stop ASSR = 0x00; /set async mode TCNT2 = 0xD9; /setup OCR2 = 0x27; TCCR2 = 0x07; /startvoid timer2_stop() CLI(); TIMSK &= (1=0)setmotor(l,f,temp); else setmotor(l,b,0-temp); /*右电机PID调节*/if(pid_enabler) R_sPID.vi_FeedBack=counter_r; counter_r=0; temp=v_PIDCalc(&R_sPID)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论