计算机控制课程设计报告--基于单片机的直流伺服电机速度控制系统_第1页
计算机控制课程设计报告--基于单片机的直流伺服电机速度控制系统_第2页
计算机控制课程设计报告--基于单片机的直流伺服电机速度控制系统_第3页
计算机控制课程设计报告--基于单片机的直流伺服电机速度控制系统_第4页
计算机控制课程设计报告--基于单片机的直流伺服电机速度控制系统_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、.课程设计题目计算机控制技术课程设计报告题 目: 基于单片机的直流伺服电机速度控制系统 姓 名: 学 号: 专 业: 自动化 年 级: 指导教师: 2012年 12月 7日目录 任务书.2参考资料.3设计步骤与内容7设计总结.12任务书一、设计题目基于单片机的直流伺服电机速度控制系统二、设计目的1.加深理解和掌握计算机控制系统的组成结构和原理。2.学习并掌握基于状态空间的状态控制器的原理和设计方法。3.学习并掌握数字控制器的仿真和实验研究方法。三、设计任务1.设计任务:基于单片机设计一个直流伺服电机闭环调速系统,利用电机上光电编码器所提供的转速脉冲信号,通过选择合适的数字控制算法,实现对给定的

2、直流伺服电机的速度调节,要求在选定的目标转速范围(601800RPM)内,调速系统都具有较为快速、平稳和准确的响应性能。提交一份课程设计报告,其中包含的主要内容:总体设计思路,测速算法的设计,控制算法的选择,系统工作流程,实验测试结果,分析讨论,程序源代码。2.实验设备: 参考资料Copal直流伺服电机:L298N直流电机步进电机两用驱动模块:具体设计内容步骤与程序等:步骤:程序: #include "main.h"#define Kp 0.05#define Ki 0.05#define Kd 0.03#define Kt 0uchar code table10 = 0x

3、3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code LED_W8 = 0,1,2,3,4,5,6,7;uchar code smd=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xff;uchar code number=0,1,2,3,4,5,6,7,8,9;uchar code smgm=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar code smgw=0,0,1,2,3,4,5,6,7;uint pulse,jj;floa

4、t pre_err=0,last_err=0;float Up=0,Ui=0,Ud=0,Uout=0;uchar P2state,control_out;float speed_set=500,speed_measure;uint value1,value2,value3,value4;void Delay1(uint i)uchar x,j;for(j=0;j<i;j+)for(x=0;x<=20;x+);void delay2()uint i;for(i=0;i<400;i+) /控制延迟时间可以消影 void xianshi() P0=smgmsmgw8; /第8位显示

5、(左起为第1位) P2=smdnumberjj%10; /显示个位数字delay2();P0=smgmsmgw7; /第7位显示(左起为第1位)P2=smdnumberjj%1000%100/10; /显示个位数字delay2();P0=smgmsmgw6; /第6位显示(左起为第1位)P2=smdnumberjj%1000/100; /显示个位数字delay2();P0=smgmsmgw5; /第5位显示(左起为第1位)P2=smdnumberjj/1000; /显示个位数字delay2();void pid()pre_err=speed_set-speed_measure;Up=Kp*pr

6、e_err;Ui+=Ki*pre_err;Ud=Kd*(pre_err-last_err);last_err=pre_err;Uout=Up+Ui+Ud;if(Uout>=255)Uout=255;if(Uout<=0)Uout=0;control_out=(uchar)(Uout);value3=(uint)(control_out);void delay(uint i)uint j,k; for(j=i;j>0;j-) for(k=255;k>0;k-)PWM_out(control_out);/*void keyscan()P2state=P2; if(P2sta

7、te&0x01)=0)delay(250);P2state=P2;if(P2state&0x01)=0)speed_set+=10;if(P2state&0x02)=0)delay(250);P2state=P2;if(P2state&0x02)=0)speed_set+=50;if(P2state&0x04)=0)delay(250);P2state=P2;if(P2state&0x04)=0)speed_set+=100; if(P2state&0x08)=0)delay(250);P2state=P2;if(P2state&

8、0x08)=0)speed_set+=500; if(P2state&0x10)=0)delay(250);P2state=P2;if(P2state&0x10)=0)speed_set-=10;if(P2state&0x20)=0)delay(250);P2state=P2;if(P2state&0x20)=0)speed_set-=50;if(P2state&0x40)=0)delay(250);P2state=P2;if(P2state&0x40)=0)speed_set-=100; if(P2state&0x80)=0)delay

9、(250);P2state=P2;if(P2state&0x80)=0)speed_set-=500;*/void main() ECT_init();PWM_init();SCI_init();motor_H=1;motor_L=0;while(1)/keyscan();value1=(uint)(speed_set); PWM_out(control_out);/send_scope(value1,value2,value3,value4);/P0=0X00;xianshi();void int0() interrupt 0pulse+;void time0() interrupt

10、 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;speed_measure=pulse*15/2;/pulse/160/0.01*60jj=speed_measure;value2=(uint)(speed_measure); pid();pulse=0;设计总结:这是一次关于xxx同学跟xxx同学一起合作的计控课程设计,我们是这样分工的:xxx主要是负责硬件调试这一块,xxx主要是负责软件与程序这一块,经过我们的通力合作,终于完成了这次课设,但是其中也遇到种种挫折,比如xxx同学的程序有些小问题,但是经过与同学们的对比跟互相讨论,我们也得到了修正,又比如xxx同学在调试过程中遇到电机在旋转,但是数码管显示的是乱码等情况,经验证程序跟接线都无问题,我们猜测是实验室提供的数码管有问题,于是我们找人换了个板,最终在规

温馨提示

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

评论

0/150

提交评论