上海交大 运动控制 直流无刷电机实验报告 2013_第1页
上海交大 运动控制 直流无刷电机实验报告 2013_第2页
上海交大 运动控制 直流无刷电机实验报告 2013_第3页
上海交大 运动控制 直流无刷电机实验报告 2013_第4页
上海交大 运动控制 直流无刷电机实验报告 2013_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

直流无刷电机实验报告硬件电路原理简述总体硬件电路图图1.1-1总体硬件电路原理图单片机通过霍尔传感器获得转子的位置,并以此为依据控制PWM波的通断。霍尔元件测量值与PWM波通断的关系图1.2-1 霍尔元件测量值与PWM波通断的关系软件架构1、Components与变量定义图2.1-1Components列表PWMMC是用来产生控制电机的PWM波的。添加PWMMC时会同时加入一个eFlexPWM。PWM_Out对应的是GPIOB2口,这个口电位为高时,电压才会被加到电机上。GPIOB3控制着一个继电器,用于防止启动时过大的冲击电流。程序开始后不久就应把B3置高。Halla、Hallb、Hallc对应于3个霍尔传感器。依次为GPIOC3、C4、C6。TimerInt是用于测速的。根据2次霍尔元件的中断间的时间间隔来计算转速。电机旋转控制代码for(;;){Hall_Sensor=0b00000000;Halla=Halla_GetVal();Hallb=Hallb_GetVal();Hallc=Hallc_GetVal();if(Halla)Hall_Sensor|=0b00000100;if(Hallb)Hall_Sensor|=0b00000010;if(Hallc)Hall_Sensor|=0b00000001;switch(Hall_Sensor){ case0b0000011: PESL(eFPWM1_DEVICE,PWM_OUTPUT_A,PWM_SM1_ENABLE); PESL(eFPWM1_DEVICE,PWM_OUTPUT_B,PWM_SM2_ENABLE); break; case0b0000001: PESL(eFPWM1_DEVICE,PWM_OUTPUT_A,PWM_SM1_ENABLE); PESL(eFPWM1_DEVICE,PWM_OUTPUT_B,PWM_SM0_ENABLE); break; case0b0000101: PESL(eFPWM1_DEVICE,PWM_OUTPUT_A,PWM_SM2_ENABLE); PESL(eFPWM1_DEVICE,PWM_OUTPUT_B,PWM_SM0_ENABLE); break; case0b0000100: PESL(eFPWM1_DEVICE,PWM_OUTPUT_A,PWM_SM2_ENABLE); PESL(eFPWM1_DEVICE,PWM_OUTPUT_B,PWM_SM1_ENABLE); break; case0b0000110: PESL(eFPWM1_DEVICE,PWM_OUTPUT_A,PWM_SM0_ENABLE); PESL(eFPWM1_DEVICE,PWM_OUTPUT_B,PWM_SM1_ENABLE); break; case0b0000010: PESL(eFPWM1_DEVICE,PWM_OUTPUT_A,PWM_SM0_ENABLE); PESL(eFPWM1_DEVICE,PWM_OUTPUT_B,PWM_SM2_ENABLE); break;}for(i=0;i<6;i++)PWMC1_SetDutyPercent(i,50);PWMC1_Load();}这段代码是main函数中的for循环。不断地获取霍尔传感器中的值并依此控制PWM波的通断。获取到的霍尔传感器的值存入Hall_Sensor变量的后3位中。测速及调速代码以下为HallC的中断响应函数。floatRPS_C;doubleIntTimesC;#pragmainterruptcalled/*Commentthislineiftheappropriate'Interruptpreserveregisters'property*//*issetto'yes'(#pragmainterruptsaveallisgeneratedbeforetheISR)*/voidHallc_OnInterrupt(void){/*placeyourHallcinterruptprocedurebodyhere*/staticboolbFirstInt=1;if(bFirstInt){ bFirstInt=0; IntTimesC=0;}else{RPS_C=1/(IntTimesC*0.0001)/2;IntTimesC=0;if(RPS_C>50)DutyPercent-=1;elseDutyPercent+=1; }}计时器每100微秒进入一次中断,每次计时器中断,IntTimesC都会加一。因此在HallC的中断响应函数能根据IntTimesC计算转速。RPS_C为根据2次Hallc中断间的间隔计算出的每秒转速。电机每转一圈,Hallc的中断会进入2次。Halla和Hallb的中断响应函数中也有类似的代码。下面这段代码实现了积分调节,能使转速稳定在每秒50转。if(RPS_C>50)DutyPercent-=1;elseDutyPercent+=1;在main函数的for循环中,每次循环都会根据DutyPercent设置PWM波的占空比。PWMMC模块的设置(1)添加一个PWMM模块后,软件会弹出一个对话框,提示要添加一个eFlexPWM,点OK就行。图2.4-1添加PWMMC(2)在PWMMC的设置里,设置好频率,死区。频率是PWM的频率,可以设高点。由于老师给我们的板子上已经有死区了,软件的死区时间其实没有必要。然后,把FaultProtection里的fault全设为Disabled。这个好像是某种类型的保护机制,不Disabled的话可能会影响PWM波的输出,基于同样的理由,在下文中,带有Fault字样的选项,全设为Disabled或no。在Methods项卡中,把SetDutyPercent选上。图2.4-2PWMMC设置(3)在eFlexPWM的设置里,把所有带有红色感叹号的项设为Disabled。然后展开PWMFaluts。把fault全设为Disabled。把ChannelA和ChannelB的PWMFunction里的ChannelOutput设为Enable。注意ChannelA和ChannelB各有3个。把Mode设为Independent,共有3处要设。把DisablebyFault设为no,共24处要设置。图2.4-3eFlexPWM设置开发过程中遇到的各种问题及解决方法程序改变了,debug时发现运行结果没有任何变化。改变程序之后,要先点一下Make按钮,构建一遍之后再debug,否则debug的时候下载进去的还是上次构建的程序。发不出PWM波。把PWMMC和eFlexPWM的设置里,把带有Fault字样的选项,全设为Disabled或no。FaultProtection似乎是某种形式的保护机制,没设置好的话会影响PWM波的输出。还要把ChannelA和ChannelB的PWMFunction里的ChannelOutput设为Enable。注意ChannelA和ChannelB各有3个。找不到某些函数。在设置组件的对话框的底部有3个按钮,建议选择EXPERT。其他2个会隐藏部分函数和设置。能发出PWM波,但是电机不动。把GPIOB2、B3置1。GPIOB2口电位为高时,电压才会被加到电机上。GPIOB3控制着一个继电器,用于防止启动时过大的冲击电流。程序开始后不久就应把B3置高。OverI灯一直亮着,电机不动这个问题困扰了我们很久,经检查,输入电压没有过压,没有短路。后来,在老师的帮助下发现似乎是板子里的程序干扰了电机驱动板对过流的判断。进一步检查发现把控制LED灯的GPIOE6、E7、F6删除后,问题消失。事后推测,上述3个GPIO口中应该有一个和OverI相连,可以从这个口读取过流状态。但是如果把这个口作为输出口,就会影响电机驱动板对过流的判断。PI调节的参数确定在做出积分调节之后,由于我们急于做步进电机,就把电机换了。但是积分调节是有缺陷的,就是反应慢。所以还需要比例调节来补足。但是,PI的参数很难确定,只能凭经验或者一个个试。下面是我在网上找到的一个方法,也许有帮助。确定比例系数Kp时,首先去掉PID的积分项和微分项,可以令Ti=0、Td=0,使之成为纯比例调节。输入设定为系统允

温馨提示

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

评论

0/150

提交评论