版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称:电机的DSP控制课程设计院系:电子信息与电气工程学院专业:电气工程与自动化班级:学号:姓名:上海交通大学目录TOC\o"1-3"\h\u178211.电机控制的DSP芯片 346622.软件设计要求 316602.1学会DSP开发环境的使用,能编写C语言程序; 3267912.2编写数码管显示程序、键盘扫描程序; 3239722.3编写AD采样程序; 3253162.4编写6路PWM正弦波程序(变频器逆变需6路); 3170093.软件实现 3169133.1数码管显示程序、键盘扫描程序 3255453.1.1程序设计思路 3272753.1.2程序模块 4270013.2AD采样程序 6282243.2.1程序设计思路 6270493.2.2程序模块 6283883.36路PWM正弦波程序 7314203.3.1程序设计思路 7160733.3.2程序模块 8197943.3.3程序设计结果 1075134.课程总结 14电机控制的DSP芯片本课程设计用的芯片为TMS320F28027;本课程设计中主要用到的一些电路模块:显示和键盘电路、BC7281、A/D采样电路、PWM输出电路。2.软件设计要求2.1学会DSP开发环境的使用,能编写C语言程序;2.2编写数码管显示程序、键盘扫描程序;程序运行后,初始值为0,通过1个键,按一下加1,通过另一个键,按1下减1;(按着不放,超过1秒,不断加1或减1,时间超过5秒,不断加10,或减10)。2.3编写AD采样程序;根据输入的电压值,把AD的结果显示出来,当输入电压变化时,显示值也变化。2.4编写6路PWM正弦波程序(变频器逆变需6路);PWM的开关频率为10KHz,其输出的正弦波频率为0~100Hz,根据AD的值变化,50Hz时输出100%电压,0~50Hz按V/f等于常数输出,死区时间取2us。频率值显示在数码管上。软件实现3.1数码管显示程序、键盘扫描程序3.1.1程序设计思路此程序关键是如何去计时,最初考虑是用计时器中断去设计程序,但此方法需要在中断中执行判断按键是否持续,以及更改和现实数字,中断中操作过多,经常出错。故后来改为用延时环节计时,此方法的优点是不需要用中断,但计时不够精确。3.1.2程序模块 for(;;) {time=0;//计时变量time初始值为0;if(KEY==0){key_number=Read_7281(0x13); //读取按键值switch(key_number){case0x00:{keynumber++; if(keynumber>9999)keynumber=0;write(); delay(2);}break; case0x01: {keynumber--; if(keynumber<0)keynumber=9999; write(); delay(2); }break;}//switch }//if while(KEY==0)//如果按键没有松开,则开始计时; { if(time<=5)//延时环节,延时为1秒; { for(cnt1=0;cnt1<270;cnt1++) { for(cnt2=0;cnt2<10000;cnt2++){if(KEY!=0)break;} if(KEY!=0)break;//如果按键松开,则跳出循环,重新开始计时; }}if(KEY!=0)break;time++;//如果1秒内按键未松开,则计时变量time加1;cnt1=cnt2=0; if(time>=1&&time<=5)//按着不放超过1秒,则不断加1或减1; { switch(key_number) {case0x00:{ keynumber++; if(keynumber>9999)keynumber=0; write();}break; case0x01: { keynumber--; If(keynumber<0)keynumber=9999; write(); }break;default:break; } } if(time>5)//按着不放超过5秒,则不断加10或减10; { switch(key_number) {case0x00:{ keynumber+=10; if(keynumber>9999)keynumber=0; write(); delay(15);}break; case0x01: { keynumber-=10; if(keynumber<0)keynumber=9999; write(); delay(15); }break;default:break; } } } }//for3.2AD采样程序3.2.1程序设计思路此程序相对简单,只需要用ADC中断获取通道的采样值,再将采样值在数码管上显示即可。3.2.2程序模块//ADC中断,获取通道采样值;interruptvoidadc_isr(void){Voltage0[0]=AdcResult.ADCRESULT0; //模数转换结果由ADCINA0通道采样产生Voltage0[1]=AdcResult.ADCRESULT1; //模数转换结果由ADCINA1通道采样产生Voltage0[2]=AdcResult.ADCRESULT2; //模数转换结果由ADCINA2通道采样产生Voltage0[3]=AdcResult.ADCRESULT3; //模数转换结果由ADCINA3通道采样产生Voltage0[4]=AdcResult.ADCRESULT4; //模数转换结果由ADCINA4通道采样产生 //28027缺ADCINA5ADCRESULT5Voltage0[5]=AdcResult.ADCRESULT6; //模数转换结果由ADCINA6通道采样产生Voltage0[6]=AdcResult.ADCRESULT7; //模数转换结果由ADCINA7通道采样产生 //28027缺ADCINB0ADCRESULT8Voltage0[7]=AdcResult.ADCRESULT9; //模数转换结果由ADCINB1通道采样产生Voltage0[8]=AdcResult.ADCRESULT10; //模数转换结果由ADCINB2通道采样产生Voltage0[9]=AdcResult.ADCRESULT11; //模数转换结果由ADCINB3通道采样产生Voltage0[10]=AdcResult.ADCRESULT12; //模数转换结果由ADCINB4通道采样产生 //28027缺ADCINB5ADCRESULT13Voltage0[11]=AdcResult.ADCRESULT14; //模数转换结果由ADCINB6通道采样产生Voltage0[12]=AdcResult.ADCRESULT15; //模数转换结果由ADCINB7通道采样产生AdcRegs.ADCINTFLGCLR.bit.ADCINT1=1; //ClearADCINT1flagreinitializefornextSOCPieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//AcknowledgeinterrupttoPIEreturn;} //for循环for(;;)//计算每一位的数值,并显示;{ qw=Voltage0[0]/1000; bw=(Voltage0[0]-1000*qw)/100; sw=(Voltage0[0]-1000*qw-100*bw)/10; gw=Voltage0[0]-1000*qw-100*bw-10*sw; qw1=Voltage0[1]/1000; bw1=(Voltage0[1]-1000*qw1)/100; sw1=(Voltage0[1]-1000*qw1-100*bw1)/10; gw1=Voltage0[1]-1000*qw1-100*bw1-10*sw1;Write_7281(0x15,(0x70+qw)); //向最右边算起第8位写0Write_7281(0x15,(0x60+bw)); //向最右边算起第7位写0 Write_7281(0x15,(0x50+sw)); //向最右边算起第6位写0 Write_7281(0x15,(0x40+gw)); //向最右边算起第5位写0 Write_7281(0x15,(0x30+qw1)); //向最右边算起第4位写0Write_7281(0x15,(0x20+bw1)); //向最右边算起第3位写0 Write_7281(0x15,(0x10+sw1)); //向最右边算起第2位写0 Write_7281(0x15,(0x00+gw1)); //向最右边算起第1位写0 delay(3);}3.36路PWM正弦波程序3.3.1程序设计思路PWM开关频率和死区的设置,可以在InitEPwm1Example(),这个函数中通过对周期寄存器赋值来控制开关频率,死区则通过对RaisingEdgeDelay和FailingEdgeDelay赋值来设置。程序要求开关频率为10KHZ,而28027主频为60MHZ,由于60M/3000/2=10K,故周期寄存器赋值3000;程序要求死区为2us,故只需将上升沿延迟和下降沿延迟均设定为1us即可。输出波形为正弦波,即要求占空比按正弦变化,本组通过查表(表中数据按正弦变化),来进行脉宽调制。对于频率的控制,首先按50HZ为基准,要求每次步长为1查表,将表中数据查完一遍,输出的波形即为50HZ。则由于开关频率为10KHZ,10K/50=200,所以正弦表中应含有200个数值,且数值大小按正弦变化。当频率小于50HZ时,按F/50这一比例系数为步长进行查表,由于F<50,故查表较慢,即输出波形的频率变小。当频率大于50HZ时,也按F/50这一比例系数为步长进行查表,由于此时F>50,故查表较快,即输出波形频率变大。对与V/f为常数,则可通过简单的运算即可实现。3.3.2程序模块//正弦表//Sintable,MaxValue4096,MinValue0unsignedshortsin_table[200]={2073,2138,2202,2266,2330,2393,2456,2519,2582,2643,2705,2765,2825,2884,2942,3000,3056,3112,3166,3220,3272,3323,3372,3421,3468,3513,3558,3600,3641,3681,3719,3755,3790,3823,3854,3883,3911,3937,3961,3983,4003,4021,4037,4051,4063,4074,4082,4088,4092,4095,4095,4093,4089,4083,4075,4066,4054,4040,4024,4006,3987,3965,3942,3916,3889,3860,3829,3797,3762,3726,3689,3649,3609,3566,3522,3477,3430,3382,3333,3282,3230,3177,3123,3068,3011,2954,2896,2837,2777,2717,2656,2594,2532,2469,2406,2342,2279,2215,2150,2086,2022,1957,1893,1829,1765,1702,1639,1576,1513,1452,1390,1330,1270,1211,1153,1095,1039,983,929,875,823,772,723,674,627,582,537,495,454,414,376,340,305,272,241,212,184,158,134,112,92,74,58,44,32,21,13,7,3,0,0,2,6,12,20,29,41,55,71,89,108,130,153,179,206,235,266,298,333,369,406,446,486,529,573,618,665,713,762,813,865,918,972,1027,1084,1141,1199,1258,1318,1378,1439,1501,1563,1626,1689,1753,1816,1880,1945,2009};//此即为正弦表,此表中数据按正弦规律变化,通过查表可以控制占空比,即控制电压大小,通过改变查表的快慢即可控制输出波形的频率。//EPWM1配置//10KHz:60M/3000/2=10Kcenter-aligned#defineEPWM1_TIMER_TBPRD3000//Periodregister周期寄存器赋值3000#defineEPWM2_TIMER_TBPRD3000//Periodregister#defineEPWM3_TIMER_TBPRD3000//PeriodregistervoidInitEPwm1Example(){//SetupTBCLKEPwm1Regs.TBPRD=EPWM1_TIMER_TBPRD;//Settimerperiod801TBCLKs//周期寄存器值为3000,60M/3000/2=10K;即开关频率设置为10KHZ;EPwm1Regs.TBPHS.half.TBPHS=0x0000;//Phaseis0EPwm1Regs.TBCTR=0x0000;//Clearcounter………………EPwm1Regs.DBCTL.bit.OUT_MODE=DB_FULL_ENABLE;EPwm1Regs.DBCTL.bit.POLSEL=DB_ACTV_HIC;//ToggleEPWM1BonlyEPwm1Regs.DBCTL.bit.IN_MODE=DBA_ALL;//DelayonRaisingandFalingEPwm1Regs.DBRED=120;//1usdeadbandEPwm1Regs.DBFED=120;//死区配置,RED和FED均设置为1us,即死区时间为2us;……}//for循环for(;;){ FreqFloat=ADCResults[0]/38;//频率与通道采样值乘正比,除以38是为了控制频率调节范围为0~100HZ; FreqInt=(unsignedint)FreqFloat; th=(FreqInt%100)/10;//将频率输出在数码管上; Write_7281(0x15,(0x50+th)); th=FreqInt%10; Write_7281(0x15,(0x40+th)); Delay(2);asm("NOP");}//EPWM中断函数interruptvoidepwm1_isr(void){//UpdatetheCMPAandCMPBvalues//update_compare(&epwm1_info);unsignedintPhaseAPosition;unsignedshorti,j,k;InterruptedTimes++;PWMStep=FreqFloat/50.0;//设置查表的步长,以50HZ为基准;PhaseAPositionHistory+=PWMStep;//按步长依次查表;if(PhaseAPositionHistory>200){PhaseAPositionHistory-=200;}//若超过200,则循环PhaseAPosition=(unsignedint)PhaseAPositionHistory;if(FreqInt>50){ i=(unsignedshort)((float)sin_table[PhaseAPosition%200]/1.37f); j=(unsignedshort)((float)sin_table[(PhaseAPosition+133)%200]/1.37f); k=(unsignedshort)((float)sin_table[(PhaseAPosition+67)%200]/1.37f);//频率大于50HZ时的变换式,输出电压为100%幅值;}else{ i=(unsignedshort)((float)FreqInt*2*sin_table[PhaseAPosition%200]/137.0f); j=(unsignedshort)((float)FreqInt*2*sin_table[(PhaseAPosition+133)%200]/137.0f); k=(unsignedshort)((float)FreqInt*2*sin_table[(PhaseAPosition+67)%200]/137.0f);}//频率小于50HZ时所用的变换式,保证了电压变化在50HZ处的连续,也保证了V/f为常数;if(PWMEnabled){//设置各路PWM的占空比; EPwm1Regs.CMPA.half.CMPA=i; EPwm2Regs.CMPA.half.CMPA=j; EPwm3Regs.CMPA.half.CMPA=k;}//EPwm1Regs.CMPB=i;//SetCompareBvalue//ClearINTflagforthistimerEPwm1Regs.ETCLR.bit.INT=1;//清中断标志位//Acknowledgethisinterrupttoreceivemoreinterruptsfromgroup3PieCtrlRegs.PIEACK.all=PIEACK_GROUP3;}3.3.3程序设计结果图片1死区2us图片21、2路PWM,相位差图片31、3路PWM,相位差图片41、5路PWM,相位差图片5频率50HZ时输出的电压波形图片6频率小于50HZ时输出的电压波形(V/f为常数),电压幅值变小图片7频率大于50HZ时输出的电压波形,幅值不变4.课程总结16周的课程设计即将结束,16周的学习,有老师的讲解,也有自己的摸索。课堂上,老师对不同种类电机运行原理,以及对PWM等知识的介绍,让我温习了电机学和电力电子的基础知识。同时通过编程,让我在科创4B和DSP实践等课程的基础上,对TMS320C28027单片机及其源码有了进一步了解。最终在小组成员的努力下,顺利的完成了本课程的任务,在此要感谢各位小组成员,能够一起面对困难,克服困难,也要感谢老师和助教的监督和指导。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024正规的私人借款合同样本
- 2024小区购销合同样本
- 吉林大学《内科学D》2021-2022学年第一学期期末试卷
- 创新教学法经验总结 教导主任发言稿
- 美学搭配课件教学课件
- 2025届高考英语二轮复习高频阅读词组+练习四十二含解析
- 2024-2025年新教材高中物理第一章动量守恒定律3动量守恒定律练习含解析新人教版选择性必修第一册
- 2024-2025学年高中历史第五单元现代中国的科技与文化14“百花齐放百家争鸣”课时分层作业含解析北师大版必修3
- 新教材高中政治12.3价值的创造与实现作业5含解析新人教版必修4
- 2024年中小企业购销合同样本
- 国家开放大学《电气传动与调速系统》章节测试参考答案
- 须弥(短篇小说)
- 旋风除尘器设计与计算
- 《装配基础知识培训》
- 出口退税的具体计算方法及出口报价技巧
- PCB镀层与SMT焊接
- Unit 1 This is my new friend. Lesson 5 课件
- 2019年青年英才培养计划项目申报表
- 剪纸教学课件53489.ppt
- 芳香油的提取
- 企业人才测评发展中心建设方案
评论
0/150
提交评论