DSP大实验.doc_第1页
DSP大实验.doc_第2页
DSP大实验.doc_第3页
DSP大实验.doc_第4页
DSP大实验.doc_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

东南大学自动化学院实 验 报 告课程名称: DSP技术及课程设计 第 5 次实验实验名称: 直流无刷电机控制综合实验 院 (系): 自动化 专 业: 自动化 姓 名: 学 号: 实 验 室: 304 实验组别: 同组人员: 实验时间:2013年6月6日 评定成绩: 审阅教师: 目 录一.实验目的和要求 2二.实验原理 2三.实验方案与实验步骤 3四.实验设备与器材配置 6五.实验记录 6六. 实验总结 14一 实验目的和要求综合实验目标是:利用F28335核心板与ICETEK-MOTOR-E运动控制板,实现直流无刷电机的驱动。请事先阅读“ICETEK-Motor-E使用说明书.pdf”。本次实验的目标是:通过实验,验证霍尔传感器指示灯与捕获端口读取的状态是否一致,总结出电机正转和反转霍尔传感器捕获端口读取的状态的变化顺序。通过利用ti的bldc提供的库,给pwm状态指针赋值,观察电机转动状态,和与霍尔传感器状态的对应关系,使之能够总结出使电机正转,和反转的pwm指针变化顺序,霍尔传感器捕获数据的变化顺序。通过总结的变化顺序,能够自行控制电机正转,反转和锁定状态。同时,利用F28335核心板与ICETEK-MOTOR-E运动控制板,实现直流无刷电机的驱动与转速控制,利用小键盘或电位器对直流无刷电机进行转速调节,并利用液晶屏显示转速等状态信息。二 实验原理1直流无刷电动机 ICETEK-F2812-BCM实验箱采用的直流无刷电机是三相方波控制型直流无刷电机(BLDCM),如果按照一定顺序给电机的各相通入方波即可使电机转动,转动的速度及力矩与通入电机定子绕组的电压、电流成正比关系。2. 电机驱动与控制通过ICETEK-F2812-BCM实验箱,ICETEK-F2812-A板与电机驱动板及直流无刷电机连接,通过编程,TMS320F2812输出的控制信号能够控制电机转动。具体控制信号连接如下所示:电机驱动模块的内部结构如下所示: 各PWM管脚按如下顺序完成信号的输出可使电机转动: 其中,PWM代表输出一定占空比的PWM波,0常关或强制低,1常开或强制高。PhaseA、PhaseB和PhaseC的相应输出为: 三 实验方案与实验步骤准备实验1:霍尔传感器捕获1. 准备插好电机驱动板,连接好霍尔传感器接头,先不连接驱动电源和电机的abc三项电源,给dsp试验板上电,则霍尔传感器即可工作。手动转动电机,电机不加电,观察正转和反转时指示灯D4、D5、D6等的变化顺序。2. 霍尔传感器捕获然后连接好驱动电源和电机的abc三项电源。安装时注意首先应切断评估板和实验箱的电源。将ICETEK-MOTOR-E板上标注的DSP P1接口和DSP P2接口对准实验箱或评估板上相应接口同时连接,所有插针都需要插入插孔,不要插错针、漏针。注意安装的方向,不要倒装。打开“DSP_MotorExDSP2833x_examples28335bcm3.1build”下的工程文件“bldc3_1_281x_CCS3x.pjt”。(1) 先进行霍尔传感器的状态读入测试,在工程管理器的include下面找到build.h文件,将编译开关#define BUILDLEVEL LEVEL? 的设置设为LEVEL0,然后编译程序、运行程序测试。注意在中断服务程序的LEVEL0处理分支下,使用变量nNowStatus给pwm指针赋值。程序生成PWM的原理参见“准备实验2”: pwm1.CmtnPointer = nNowStatus;/0-5 pwm1.DutyFunc = (int16)rmp2.Out; pwm1.update(&pwm1);在变量观察窗口中改变nNowStatus的值(0-5之间),在变量观察窗口里观察变量hallcap的变化。观察指示灯的状态和hallcap的数值的变化对应关系,总结出指示灯和霍尔传感器读入的状态的对应关系,然后总结出正转hallcap的变化顺序,和反转时的变化顺序。(2) 总结对应关系并进行记录。俯视电机主轴,顺时针转动。(D6D4灯亮为1,灭为0)准备实验2:直流无刷电机(BLDC)控制1. 程序框架原理打开“DSP_MotorExDSP2833x_examples28335bcm3.1build”下的工程文件“bldc3_1_281x_CCS3x.pjt”。(1) 理解程序框架注意到:头文件parameter.h定义系统参数,注意到其中定义DSP的主频为150MHz;定时器中断40KHz;PWM输出频率10KHz。不要修改这些参数。打开程序bldc3_1.c,此程序为框架程序,以后涉及的电机控制及算法均将以此为基础添加完成。程序分成2部分:主程序和中断服务程序;主程序做初始化工作后等待运行标志,然后打开中断、进入空闲循环。主程序和中断服务程序均有一个独自的计数器标记本程序执行。中断服务程序MainISR以40KHz频率执行。在工程管理器的include下面找到build.h文件,将编译开关#define BUILDLEVEL LEVEL? 的设置设为level2,观察bldc3_1.c中对应处理程序的不同。(2) 基于drvlib281x库的PWM波形产生由于控制电机的程序一般需要控制的主要输出是PWM,而PWM在电机控制库中使用全局定时器1的下溢中断驱动。所以我们在使用ADC调用时需要再加入PWM发生的相关调用,以产生相关的全局定时器1的下溢中断。本例中PWM输出控制在TI提供的DrvLib281x(F281x外设驱动库)中提供。它的文档见于“v33xlibdocbldc_3pwm_drv.pdf”。PWM1-6控制:如果要电机转动则连接电机的PhaseA、PhaseB和PhaseC的输出需要满足上面图2-2给出的波形,每相电压在24V之间变动并满足上述时序关系。而要实现这一输出,需要在PWM1-6管脚上输出满足上面图描述的波形和时序关系。TMS320F281x DSP的寄存器ACTRA控制PWM1-6的输出模式,对应状态0-5的取值分别为0x0CE、0x0C0E、0x0CE2、0x2EC、0x0E2C和0x0EC0。我们只需调用电机驱动库drvlib281x中PWM波形发生模块,输入这六种状态,就可以将相应控制字送PWM的ACTRA控制寄存器。换句话说,我们可以通过在程序中给PWM发生模块顺序输入状态0-5即可让电机转动。如果反向顺序输入5-0则可使电机反向转动。 转速控制:如上所述,电机转动需要安装一定频率送状态0-5控制字,而送电机控制信号的速度(频率)则在一定程度上决定了电机转速,0-5各状态切换得快,则电机可以快些运行。但还有一个因素,即送电机输出的电流,送给电机定子的三相绕组的电流直接决定了电机转子能产生多大的转矩。当控制状态由一种切换到下一种时,电流发生的力矩是否能让转子转动到位,这决定了电机在下一个状态电流到来时是否能顺利转动下去。如果电流弱,不足以使转子转动到位,电机将“失步”或根本无法转动;如果电流过大,在下一个状态到来前早就到位,电机转子将在当前电流控制下在此位置“刹车”,如果在惯性的驱动下稍微转动过位时,就会反向转回来,导致电机转子在运行时会产生不同程度的震动,甚至电机绕组发热。由此,我们需要选择好电机状态切换的频率,也要控制好送电机驱动信号的电流大小,亦即控制好切换PWM控制字的频率和控制PWM输出的占空比。 注意:由于在电机运行时停止CPU程序会有毁坏电机或变频器硬件的可能存在,所以在实验环境下,如果需要终止程序运行时一般需要复位DSP,以防其状态不可知。复位F2812方法:选择菜单项Debug-Reset CPU,或按组合键Ctrl+R。程序停止运行。2. 根据捕获状态驱动电机运转(1)目的:在程序中添加内容完成使电机正/反方向转动。(2)分析:根据实验原理,我们只需要控制送给PWM波形发生模块pwm1的状态输入顺序即可改变电机转动方向。(3)修改程序。考核实验:直流无刷电机调速控制系统1. 基本功能得分掌握F28335核心板与ICETEK-MOTOR-E运动控制板的使用方法,接线正确,能捕获并证实霍尔传感器状态变化规律(表1);能正确总结出正/反转控制表(表2),从而控制电机正转/反转;能通过修改占空比,用示波器观察pwm口输出波形的变化。2. 提高功能得分能通过阅读学习“ICETEK-Motor-E使用说明书.pdf”,发现ICETEK-MOTOR-E运动控制板中的电位器信号,编制程序从DSP相应的ADC输入端口采集该电位器信号,能用CCS图形显示AD变换结果曲线;能编制程序,利用AD变换结果调节PWM占空比,从而对直流无刷电机进行调速;能设计基本的人机接口软件,即编制程序,利用小键盘进行正转、反转、停止功能选择,利用液晶屏显示(示意)正转、反转、停止等状态信息,并可自行扩展其它辅助功能。四 实验设备与器材配置1PC机一台,操作系统为WindowsXP (或WindowsNT、Windows98、Windows2000)。安装Code Composer Studio 3.3 软件。2ICETEK-F28335-A 实验箱一台。3 USB 连接电缆一条。五实验记录准备实验1:霍尔传感器捕获观察指示灯的状态和hallcap的数值的变化对应关系,总结出指示灯和霍尔传感器读入的状态的对应关系,然后总结出正转hallcap的变化顺序,和反转时的变化顺序如下表所示:表1 正转关系nNowStatusHallcap对应捕获端口数据D6D5D4061101410025101310014311052010表2 反转关系nNowStatusHallcap对应捕获端口数据D6D5D4051011100123011320114611054100正转时nNowStatus和Hallcap对应捕获端口数据的相关截图:准备实验2:直流无刷电机(BLDC)控制正反转数组下标(下标为当前霍尔传感器读入状态,数组值为向下一状态转动pwm所赋数值),与pwm指针对应数组为:表3 正/反转控制表转向正反正反正反正反正反正反霍尔状态123456Pwm指针315342152004以上表为参考修改BLDCMControl.c程序中的相关变量定义:Uint16 zhengzhuan6=3,5,4,1,2,0;Uint16 fanzhuan6=1,3,2,5,0,4; /注意BLDCMControl.c中的代码,并尝试让电机反转。nISRWork1=(int16)hall1.HallGpio;bISRWork=( nISRWork10 & nISRWork110000)num=3;else if(DFuncDesired5000)num=2;else if(DFuncDesired2000)num=1;else num=0;for ( i=0;i400 )DFuncDesired=12000;/这里对转速的目标进行了限幅 else if ( nADCValue10 )DFuncDesired=0; else DFuncDesired=nADCValue*30; if ( EnableFlag=FALSE )goto mmexit; /中间部分代码省略 if ( bISRWork ) if(flag=1)nNowStatus=zhengzhuannISRWork1-1;else if(flag=2)nNowStatus=fanzhuannISRWork1-1;else nNowStatus=fanzhuani-1; /*Connect inputs of the PWM_DRV module and call the PWM signal generationupdate function.*/ if ( bISRWork )/进行PWM波形输出 pwm1.CmtnPointer = nNowStatus; pwm1.DutyFunc =(int16)nADCValue*10; /(int16)rmp2.Out; pwm1.update(&pwm1); nISRWork1=(int16)rmp2.Out;#endif / (BUILDLEVEL=LEVEL2)(4)延时子函数void Delay(unsigned int nDelay)int ii,jj,kk=0;for ( ii=0;iinDelay;ii+ )for ( jj=0;jj1024;jj+ )kk+; (5)开LCD屏幕子函数void TurnOnLCD()CTRLCDCMDR=LCDCMDTURNON;Delay(LCDDELAY);CTRLCDCR=0;Delay(2048); CTRLCDCMDR=LCDCMDSTARTLINE;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);(6)开LCD清屏子函数void LCDCLS()int i,j;CTRLCDCMDR=LCDCMDSTARTLINE;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( i=0;i8;i+ )CTRLCDCMDR=LCDCMDPAGE+i;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( j=0;j64;j+ )CTRLCDLCR=0;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDPAGE+i;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( j=0;j64;j+ )CTRLCDRCR=0;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);(7)字符转换子函数char ConvertScanToChar(unsigned char cScanCode)char cReturn;cReturn=0;switch ( cScanCode )case SCANCODE_0: cReturn=0; break;case SCANCODE_1: cReturn=1; break;case SCANCODE_2: cReturn=2; break;case SCANCODE_3: cReturn=3; break;case SCANCODE_4: cReturn=4; break;case SCANCODE

温馨提示

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

评论

0/150

提交评论