




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机加pid算法去控制步进电机的具体措施或方法2009-7-25 12:13最佳答案P1.1(T0):Cou nt They Dista nee P0.4:TxSFR deelaratio ns/Standard I/O definition file/Math library fileP0.5:Rx#in elude <C8051F310.h>#i nclude <stdio.h>#in elude <math.h> #include vlntrins.h>#in elude <absacc.h>un sig ned int j,i;c
2、har a=0;un sig ned int t=0;/sbit led=P0A2;/PO.O(PWMO):给定左轮速度.sbit vls=P0A4; P0.4(GPIO):给定左轮方向.sbit vlf=P0A6;P0.6(T0):反馈左轮速度.sbit dlf=P1A0; /P1.0(GPIO):反馈左轮方向.P0.2(PWM0):给定右轮速度.sbit vrs=P0A5; /P0.5(GPIO):给定右轮方向.sbit vrf=P0A7; /P0.7(T0):反馈右轮速度.sbit drf=P1A1; /P1.1(GPIO):反馈右轮方向.in t ol;/左轮给定值int len;in
3、t len_1,len_2;int lyn_1,lyn_2;int vl1,vl2;/反馈左轮速度值(取样周期内的方波数)int lfz;/运算后赋给PWM的值int lyn,lynn;int lun=0,lun_仁0; /偏差校正值 即校正PWM输出 int lunp,luni,lund; /PID 校正值in t or;/右轮给定值int ren;int ren _1,re n_2;int ryn _1,ry n_2;int vr1,vr2;反馈右轮速度值(取样周期内的方波数)int rfz;/运算后赋给PWM的值in t ryn ,ry nn;int run=O,run_仁0; /偏差校
4、正值 即校正PWM输出 int run p,ru ni,rund; PID 校正值float kp=2.0;/ 比例系数 1.8float kd=0.2;微分系数 0.4float lki;积分系数void pio_i nit(void);void sys_i nit(void);void t01_i ni t(void);void TIME3_INT(void);void PID(void);void in terrupt_i nit(void);void delay (un sig ned int x);void pwm1_1(void);void ma in (void)PCA0MD &
5、amp;= 0x40; / 关闭pio_i nit();P11为测距输入端sys_i ni t();t01_i nit();pwm1_1();TIME3_INT();in terrupt_i ni t();vls=1;vrs=0; while(1)ol=50;or=50; delay(1000);ol=100;or=100; delay(IOOO);ol=-50;or=50; delay(IOOO);void PID(void)左轮PID调节if(dlf=1)vl=TL0lyn=(vl2*256+vl1);/dlf是左轮反馈方向,0表示向前elselyn=-(vl2*256+vl1); dlf
6、=1 表示是向后退,速度应该为负值len=ol-lyn;/误差二给定速度-反馈速度(取样周期内的方波数)if(abs(le n)<8)/30lki=1.4; /ki 值的确定 1.4elselki=0.05; /积分系数:如果|给定值-反馈值|太大/则就可以不引入积分,或者引入的很小0.05lun p=kp*(le n-len_1);比例校正lun i=lki*le n;积分校正lund=kd*(len-2*len_1+len_2); / 微分校正lun=lun p+l uni+lun d+l un_1;总校正新旧数据更新len 2=len 1;Ien_仁len;len:当前取样周期内出
7、现的速度偏差;len_1:上次取样周期内出现的速度偏差lun_仁lun;lun:当前取样周期内得出的PWM校正值;lun_1:上次取样周期内得出的 PWM校正值新旧数据更新if(lu n>255)lun=255;正速度if(lu n<-255)lun=-255;/ 负速度if(lu n<0)vls=1;PCAOCPHO=-lu n;if(lu n>=0)vls=0;PCA0CPH0=lu n;右轮PID调节if(drf=0)ryn=(vr2*256+vr1);else/drf是右轮反馈方向,0表示向前vl=TL0ryn=-(vr2*256+vr1); dlf=1表示是向
8、后退,速度应该为负值ren=or-ryn;误差=给定速度-反馈速度(取样周期内的方波数)if(abs(re n) <8)/30 Iki=1.4; ki 值的确定 1.4elselki=0.05; /积分系数:如果|给定值-反馈值|太大/则就可以不引入积分,或者引入的很小0.05run p=kp*(re n-ren _1);/ 比例校正run i=lki*re n;积分校正rund=kd*(ren-2*ren_1+ren_2); / 微分校正run=run p+r uni+rund+run_1;/ 总校正新旧数据更新ren _2=re n_1;ren_仁ren;len:当前取样周期内出现的
9、速度偏差;len_1:上次取样周期内出现的速度偏差run_仁run;lun:当前取样周期内得出的 PWM校正值;lun_1:上次取样周期内得出的 PWM校正值新旧数据更新if(run >255)run=255;正速度if(run<-255)run=-255;负速度if(run<0)vrs=1;PCA0CPH仁-ru n;if(run >=0)vrs=0;PCA0CP H仁run;因为这里的PCA0CPH0越大,对应的电机速度越小,所以要 255来减一下void pio_i nit(void) _XBR0=0x00;/0000 0001XBR仁0x72;/0111 001
10、0 时能弱上拉 T0T1连接到脚口 P06、CEX0、CEX1 连接至U脚口 P00、P01P0MDIN=0xff; / 模拟(0);数字 1111 0011P0MDOUT=0xc3; 开漏(0);推挽(1) 1111 1111P0SKIP=0x3c; /0011 1100P1MDIN=0xff; /1111 1111P1MDOUT=0xfc;/P1SKIP=0x00; /1111 1111P07void sys_i nit(void) _OSCICL=0x43;OSCICN=0xc2;CLKSEL=0x00;12MHzvoid pwm1_1(void)PCA0MD=0x08;/PWM的初始化
11、/PCA时钟为12分频PCA0CPL0=200;PCA0CPM0=0x42;PCA0CPH0=200;左轮/设置左轮为8位PWM输出PCA0CPL仁200;/平衡校正PCA0CPM仁0x42;/设置为8位PWM输出PCA0CPH1=200;PCA0CN=0x40; 允许 PCA 工作void t01_i ni t(void) _TCON=0x50; 计数器1、2允许TMOD=0x55;/定时器1、2采用16位计数功能CKCON=OxOO;TH1=OxOO;用于采集左轮的速度TL1=OxOO;THO=OxOO;用于采集右轮的速度TLO=OxOO;void TIME3_INT(void)TMR3CN = OxOO;/定时器3为16位自动重载CKCON &= 0x40;TMR3RLL = Oxff;TMR3RLH = 0xd7;TMR3L = Oxff;TMR3H = 0xd7;TMR3CN |= 0x04;void T3_ISR() interrupt 14 /定时器3中断服务程序 led=led;EA=0;TCON &=0x50;关闭计数器 0、1vl仁TLO;/取左轮速度值vl2=TH0;vr仁TL1;/取右轮速度值vr2=TH1;TH1=0x00;TL1=0x00;TH0=0x00;TL0=0x00;PID();PID 处理TMR3CN &=0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 核电站钢结构模块化吊装工程验收及保修协议
- 返乡标兵就业协议书
- 项目结束清算协议书
- 事故车转让理赔协议书
- ktv管理承包协议书
- pvc水管合同协议书
- 逆风集团攻略协议书
- 门店部分转让协议书
- 养殖羊合作合同协议书
- 修理厂车辆质保协议书
- 2025届广东省深圳实验学校高中园与惠东高级中学高三下学期5月适应性联考(三模)物理试卷
- 建筑史智慧树知到期末考试答案2024年
- 张拉应急预案
- 直接剪切试验记录
- DB11-381-2016既有居住建筑节能改造技术规程
- 餐厅食堂就餐券通用模板
- 煤矿安全安全设施设计
- 高中语文-戏剧单元重要知识点整理
- 门式脚手架移动作业平台施工方案
- JJF 1934-2021 超声波风向风速测量仪器校准规范
- 2021年宁夏中考地理试题及答案
评论
0/150
提交评论