首页 BLDC控制程序实例

BLDC控制程序实例

举报
开通vip

BLDC控制程序实例1高效利用BLDC电机控制资源奖基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计注册编号:MCHP16bitCDC0293参赛队员:刘辉杰参赛单位:华南理工大学机械与汽车工程学院Microchip华南理工大学共建16位单片机实验室基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计2摘要:本设计以永磁无刷直流电动机BLDCM)作为全电动注塑机顶出伺服系统的执行机构,以dsPIC30F4011为核心处理器驱动电路和控制电路,包括IGBT功率模块、键盘显示和通讯接口等部分。在系统的软件设计中,将所有...

BLDC控制程序实例
1高效利用BLDC电机控制资源奖基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计注册编号:MCHP16bitCDC0293参赛队员:刘辉杰参赛单位:华南理工大学机械与汽车 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 学院Microchip华南理工大学共建16位单片机实验室基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计2摘要:本设计以永磁无刷直流电动机BLDCM)作为全电动注塑机顶出伺服系统的执行机构,以dsPIC30F4011为核心处理器驱动电路和控制电路,包括IGBT功率模块、键盘显示和通讯接口等部分。在系统的软件设计中,将所有的事件分成中速、低速事件两类,单片机通过定时器循环执行这两类事件。根据控制需求编写了各个模块程序,包括输出PWM信号、信号采集、换向控制、转速控制;并实现“速度-电流”双闭环控制的功能。关键词:dsPIC顶出伺服系统永磁无刷直流电动机1.引言随着近年来塑料制品应用领域的不断扩大,世界上对注塑机械的需求呈现了持续、大幅攀升的趋势。其中电动注塑机相比传统注塑机具有能耗低、各功能同步运行以及注塑准确性高等的优点,已成为近年各大公司研究的重点。全电动式注塑机的所有运动机构都使用伺服电机驱动。所有动作和功能密切相关,一环接一环,每个环节都将影响整个注塑过程的质量。全电动式注塑机中总共有六个电机,本文对顶出机构的控制进行深入研究。在注射成型过程中,当塑件固化成型后就需要从模具中取出,一般采用顶出的方式让制品脱模。在电动注塑机中,顶出机构是由伺服电机通过同步带驱动滚珠丝杠来驱动的,如下图11所示。图11顶出机构结构简图由于注塑过程的 工艺 钢结构制作工艺流程车尿素生产工艺流程自动玻璃钢生产工艺2工艺纪律检查制度q345焊接工艺规程 特点,需要精度要求高、容量较小的伺服系统的控制电机。因此在全电动注塑机中多采用永磁同步电动机。本研究将采用永磁无刷直流电动机(简称BLDCM)作为顶出机构控制的电机。无刷直流电机(BLDCM)作为一种电子驱动的无级变速电动机,具有结构简单、运行效率高、动态响应好等诸多优点,在家用电器和工业生产领域的应用日益广泛。对无刷直流电机控制主要通过数字信号处理器DSP实现。本文采用dsPIC30F4011作为控制器。dsPIC30F4011芯片是Microchip公司推出16位dsPIC数字信号控制器,其性能速度可以为20MIPS,dsPIC30FCPU模块采用16位数据)改良的哈佛架构,并带有增强型指令集包含对DSP的有力支持。CPU拥有24位指令字,指令字带有长度可变的操作码字段。程序计数器PC)为24位宽,可以寻址高达4M×24位的程序存储器空间。本文用16位dsPIC数字信号控制器控制全电动注塑机顶出系统的无刷直流电机,开发环境采用MPLAB6.40,并用MicrochipC30optimizingcompiler(v1.10.02)进行编译,采用MPLABICD2进行调试和编程。采用无刷直流电机,基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计3使控制系统的可靠性和实时性得到了提高,可以为企业提供技术上的借鉴,有利于系统的后续开发。2.应用程序操作说明设计中采用的各功能模块有定时器、IO口及CN模块、AD模块、PWM模块和I2C模块。核心控制板如图21所示。在本设计中定时器用于脉冲计数和提供标准的实时时钟,其中Timer1用于电机的堵转保护和确定电机反转时机;IO口用于信号的输入输出,CN模块是对电机反馈的位置信号进行判断;在无刷直流控制器中,AD模块用于对电机反馈的电流信号进行采集,也用于设定转速的可调电阻上的电压的采集;PWM模块用于驱动IGBT模块,控制电机;I2C模块是用来与其他外设或单片机通信的串行接口,在这里与ZLG7290连接,用于显示控制参数和实时数据。面板上有五个键和本子程序相关:MOVE、UP、DOWN、SET和FUN,它们的功能分别是:MOVE键:用来确定设定位,共有三位,个位、十位和百位。UP键和DOWN键:分别控制被控位的增与减,每次增1或减1,在09之间循环。SET键:当用户确定其输入时可按SET键,将设定值存入对应的变量中。FUN键:参数切换键。在预定义的用户参数之间切换,方便参数的设置。用于设定的电机参数和起动参数如附表1所示。电机参数的设置主要取决于所选择的电机。由于实现了两种不同的起动方法,同时还要对几个参数进行调整,以根据特定的应用调整起动。图21dsPIC核心控制板实物图3.原理图及主要应用电路说明本节介绍驱动电路和控制电路的设计策略,以及以dsPIC30F4011为核心处理器的控制系统。硬件系统有三块电路板组成:开关电源电路板,IGBT驱动电路板,dsPIC30F4011核心控制板电路板。图31是板际间的电路连接示意图。基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计4开关电源提供电机的霍尔传感器15V的电压;提供IGBT驱动板四组20V的光藕电源和IGBT开路的300V电压;提供控制板12V的电压。控制板采集电机霍尔传感器的反馈;提供PWM信号给IGBT开关器件。开关电源IGBT电机控制板提供5v电源提供霍尔传感器电源霍尔传感器位置反馈PWM信号300v和20v光藕电源三桥中线图31板际间的电路连接示意图3.1电源电路电源电路的输入为380V工频交流电,经整流,滤波,稳压后为稳定的直流电压,再经电感和电容滤波后作为逆变单元和开关电源单元的电源。电源开关电源电路输入为220V工频交流电。可以输出380V、15V、20V、300V和12V的电压。380V电压供给电机,15V电压供给霍尔传感器,20V供给四组IGBT驱动板的光耦电源,300V电压给IGBT驱动电路;12V电压供给控制板。3.2IGBT驱动电路电机驱动器由IGBT分立元件组成,采用高速光耦对其驱动。IGBT的驱动电路必须具备2个功能:一是实现控制电路与被驱动IGBT栅极的电隔离;二是提供合适的栅极驱动脉冲。实现电隔离可采用脉冲变压器、微分变压器及光电耦合器。本设计采用TLP250功率驱动模块。TLP250内置光耦隔离可直接驱动50A1200V以内的IGBT。3.3电流反馈电路采用基于磁补偿原理的HoneyWell霍尼韦尔公司的CSNE151100这款多量程小体积电流传感器,它可以测量直流、交流或者脉动电流,原副边电路之间电气绝缘性好,绝缘电压高达5000V。传感器的供电为±15V的直流电源,输出一个正比于测量电流的模拟电压,其以供电直流电源的地作为参考地的。需对两路定子电流进行AD转换,使调理后的电压限制在05V之间,满足dsPIC的AD转换要求。3.4dsPIC30F4011核心控制板电路控制板电路包括以下几个部分:编程下载口电路、输入电路、键盘显示电路、电源电路和输出电路。其中电源电路输入12V,经7805转换后为电路板提供5V电压。输出为PWM,在下一节里介绍,用于驱动IGBT模块。整个原理图参见图32。基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计5图32核心控制板电路原理图3.4.1编程下载口电路程序的烧写是MPLABICD2通过六芯的模块接口电缆与目标PIC单片机相连,如图32所示。ICD2连接插座有六个引脚,但只使用了其中的五个引脚。目标PCB上PICmicro单片机与连接插座的连线。在VPPMCLR线和VDD之间接一个上拉电阻通常约为10K左右),这样VPPMCLR线可置为低电平来复位PIC单片机。3.4.2霍尔位置传感器反馈输入电路及sp脉冲信号输入电路如图32所示,HEADERS是电机转120°脉冲的sp信号及由电机反馈的三路霍尔的反馈信号,经过光藕隔离后再经74HC04后分别接单片机的电平变化中断(CN)捕捉口RB0、RB1、RB2和外部时钟计数器T1的RC14。3.4.3键盘显示电路控制板的键盘显示电路采用周立功的ZLG7290,如图32所示。ZLG7290的I2C接口传输速率可达32kbits容易与处理器接口并提供键盘中断信号。为确保某个有效的按键动作,所有参数寄存器的同步性,建议利用I2C通信的自动增址功能连续读RepeatCntFunctionKey和Key寄存器。ZLG7290的控制和状态查询全部都是通过读写寄存器实现的,只需象读写24C02内的单元一样即可实现对ZLG7290的控制。3.5调速控制和驱动电路图33是对三相无刷直流电动机用软件实现全数字双闭环控制的框图。给定转速与速度反馈量形成偏差,经速度调节后产生电流参考量,它与电流反馈量的偏差经电流调节后形成PWM占空比的控制量,实现电动机的速度控制。电流的反馈是通过测量两个桥臂上的电流感应电压来实现的。速度反馈则是通过霍尔位置传感器输出的位置量,经过计算得到的。位置传感器输出的位置量还用于控制换相。基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计6图33三相无刷直流电动机调速控制框图采用dsPIC30F4011芯片实现三相无刷直流电动机调速的控制和驱动电路的简图。在这个例子中,三个位置间隔120°分布的霍尔传感器H1、H2、H3经整形隔离电路后分别与dsPIC30F4011的三个捕捉引脚CAPl、CAP2、CAP3相连,通过电平变化中断来给出换相时刻,同时给出位置、转速信息。图34DSP控制与驱动电路示意图由于电动机每次只有两相通电,其中一相正向通电,另一相反向通电,形成一个路,因此每次只需控制一个电流。两个电流传感器,将其安放在电源对地端,就可方便地实现电流反馈。电流反馈输出经滤波放大电路连接到dsPIC30F4011的ADC输入端口图34中DSP控制和驱动电路ADCIN0、ADCIN0),在每一个PWM周期都对电流进行一次采样,对速度(PWM占空比)进行控制。基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计7dsPIC30F4011通过PWMlPWM6引脚经一个反相驱动电路连接到六个开关管,实现定频PWM和换相控制。4. 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 框图及编程思想程序开始运行之后,首先要对系统以及各变量进行初始化,然后再根据不同的运行模式进行相应的处理。控制器软件的总体架构包括三部分:主程序、中断子程序、其它辅助子程序。软件结构是以主程序为主,通过函数调用和全局变量与子程序进行参数传递。下面先对主程序进行介绍,主程序是一个死循环结构,其功能是对系统进行必要的初始化:获得用户设定输入,包括运行模式设定以及预置数设定:然后,根据不同的运行模式调用相应的子程序,开相应的中断。对电机的换向控制主要是在中断子程序中进行的。部分源代码参见附录2。主程序流程框图如图表41所示。主要完成上电初始化,如锁相环、看门狗、系统控制寄存器、其他寄存器、ADC模块及CAN通信接口,建立和分配各种初始化数据区等工作。然后查询以PWM时基定时10ms的中速事件是否到,如果时间到了就调用图表42的中速事件。然后查询以PWM时基定时50ms的低速事件是否到,如果时间到了就调用图表43的低速事件。系统复位复位是否有效调用外设设置程序复位功率模块并点亮LED1设置陷阱和中断初始化与用户参数有关的变量清零看门狗定时器调用中速事件调用低速事件清零看门狗定时器否是PWMLED2占空比20%主循环图41主程序流程框图图42是中速事件处理流程框图,程序首先判断中速事件的标志位mediumeventcount是否等于10ms,是则将其清零,处理接下来的程序。读取Timer2中断算出的电机转速,读取AD中断处理程序得到的电机电流,分别采用增量式的PID算法,调节PWM输出的脉宽,实现对无刷直流电机的双闭环控制。基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计8开始mediumeventcount==10msmediumeventcount==0读取转子速度调用PID算法调节PWM输出脉宽否是超速或停转?过流或过压?系统起动?禁止PWM输出调用startingcode是否否是读取定子电流结束图42中速事件处理流程框图图43是低速事件处理流程框图,程序首先判断低速事件的标志位sloweventcount是否等于50ms,是则将其清零,处理接下来的程序。首先显示当前显存中的内容,接着查询有无按键按下,如果有则进入按键处理程序。查询I2C工作方式的串行口通讯标志位是否置位,如果置位再判断电机是否运转,如果运转则要禁止除换向外所有中断,再接受串行口通讯的数据。基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计9开始sloweventcount==50mssloweventcount==0显示当前内容结束否是有无按键按下?通讯标志位?调用相应程序是否否是接受串口数据电机运转?禁止除换向外所有中断否是图43低速事件处理流程框图5.实验结果测试说明文中从全电动注塑机顶出机构的实用要求和提高控制系统可靠性的角度出发,给出了以dsPIC30F4011处理器为核心的无刷直流电机硬件构建 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 和无刷直流电机控制软件的整体框架,并在实验中验证了可行性。实验用的测量系统结构框图如图51所示,由dsPIC控制器根据无刷直流电机反馈来的位置信号,按照设定的速度施加电压信号给无刷直流电机相应绕组,力矩转速传感器用来测试无刷直流电机的转速和突变负载的大小,并将其相对应的模拟信号传递给labview测试系统,从而将实验结果测试出来。基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计10labview测试系统dsPIC控制器无刷直流电机力矩转速传感器突变负载位置反馈信号电压调速速度模拟信号图51实验测试系统框图在制品脱模后,电机要反转,顶出电机的转速要经过减速-慢速-反转-慢速-加速的变化过程。电机的速度平滑的下降,在底部保持低速一段时间,使制品与顶杆之间产生一个速度差,有利于制品的脱模,然后顶出电机反转复到顶出前的位置。实验方法:在一定负载下,设置一个初始转速,观察电机的启动升速特性曲线。转速由JN338测量,它在后面板输出跟转速同频率的方波脉冲,使用NI的定时器IO计数器采集卡6602进行脉冲计数,在LabView中显示变化过程曲线。测量结果如图52所示,在1.965Nm的负载力矩下,给定620转分的初始转速值,伺服电机在大约600毫秒左右的时间速度下降到50转分左右,保持350毫秒左右,在次期间,速度很快下降到0转分,然后反转又上升到50转分左右。经过1000毫秒左右的时间上升到给定转速值,响应快速跟上设定的速度,速度有1%左右的上下波动,取得了较好的效果。图52顶出电机顶出到位反转过程基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计11附录1控制参数参考简表参数编号参数名称描述缺省1DIRECTIONDEMAND决定旋转方向12CONTROLMODE决定速度控制方法:0-闭环速度控制,速度环输出直接控制PWM占空比。1-闭环速度控制,速度环输出作为电流环给定。2-开环速度控制,通过电位器调节的电压给定直接控制PWM占空比。3-开环速度控制,通过电位器调节的电流给定。给定值由电位器VR2提供。33LockPos.1Time第一次开始锁定的时间,以10ms为增量1004LockPos.2Time第二次开始锁定的时间,以10ms为增量1005LockPos.1Dem第一次开始锁定的百分比给定446LockPos.2Dem第二次开始锁定的百分比给定447RampStartSpeed开始加速时的速度值RPM)208RampEndSpeed结束加速时的速度值RPM)2509RampStartDem开始加速的给定百分比%4910RampEndDem.结束加速的给定百分比%5011RampDuration加速过程持续时间,增量为10ms20026No.MotorPoles电机转子的极数,不是极对数。因此,极数应该是偶数。这个参数影响所显示RPM值的速度比例。1028CurrentScale这些参数指定电压和电流反馈信号的数学比例,取决于硬件电阻529基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计1230VoltageScale分压器的比值。103533BlankingCount在换相后禁止PWM输出的死区周期数。这个延时也为非驱动相中电流的放电提供了时间。140ZeroXEnableSpeed采用采集方法1时,这个参数设置使能位置检测时的开环步进速度。10042StartingControl当这个参数设置为1时,使用电压控制起动。当设置为0时,使用电流控制起动。143WindmillingDem.这个参数适用于起动期间检测到旋转的情况此时,转子运转方向与给定方向相反)。它设定用于将电机减速至静止状态的电流给定值。2044BrakingRampT这个参数设置旋转时电机速度减为零所耗费的时间,增量为10ms。20045AcquireMethod当此参数设置为0时,采用采集方法1起动。此参数设置为1时,采用采集方法2起动。1基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计13附录2各个外围模块编程及部分源代码includep30F4011.hincludeZLG7290.hdefineFCY5000000Fosc=20.0MhzdefineMILLISECFCY1mSecdelayconstantdefineFPWM10000ValueusedtosimplifymathontheDutyCycleregisterscalculationdefinePDCSTART80definePDCMAX600definePDCMIN80defineSPEEDMAX1500defineSPEEDMIN30ThisbitstructureprovidesstatusflagsforthesoftwarestructFLAGS{unsignedBlock:1;unsignedReverse:1;unsignedButton1:1;unsignedButton2:1;unsignedButton3:1;unsignedADCEvent:1;unsignedDirChange:1;unsignedAccelerate:1;unsignedPWMFault:1;unsignedRestart:1;unsignedCCW:1;unsignedT3Event:1;unsignedCNEvent:1;unsignedPWMEvent:1;unsignedMediumEvent:1;unsignedSlowEvent:1;基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计14}Flags;counterclockwiseconstunsignedintStateLoTableCCW[]={0x0000,0x2001,0x0810,0x0801,0x0204,0x2004,0x0210,0x0000};clockwiseconstunsignedintStateLoTableCW[]={0x0000,0x0810,0x0204,0x0210,0x2001,0x0801,0x2004,0x0000};unsignedintHallValue;VariablecontainingtheHallValuefromPORTBunsignedintcounter,counter2;unsignedintcountersave[2];unsignedintSpeedSet,Speed,SpeedError;signedintError,SpeedAdd;unsignedintPDCref,PDCTEMP;unsignedintDispCounter;unsignedintProtectionON;floatKp,Ki,Kd;voidInitVar();voidInitHall();voidInitADC10(void);ADInitSubroutinetoReadPOT.voidInitMCPWM(void);InitPWMModuletodrivetheInvertervoidInitCN(void);ChangeNotificationforHallEffectSensorsvoidInitTMR1(void);voidInitTMR3(void);voidDelayNmSec(unsignedintN);GeneralDelaysubroutineunsignedintReadADC(unsignedintchannel);voidStart();名称:CN中断函数功能:换相基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计15voidattribute((interrupt))CNInterrupt(void){CNIF=0;HallValue=(unsignedint)(PORTB)0x0007;OVDCON=0;换向保护if(Flags.CCW)OVDCON=StateLoTableCCW[HallValue];elseOVDCON=StateLoTableCW[HallValue];counter++;counter2++;}名称:Timer1中断函数功能:堵转保护;确定反转时机voidattribute((interrupt))T1Interrupt(void){T1IF=0;RF1=0;if(Flags.Reverse(counter==0)){Flags.Restart=1;}elseif(ProtectionON(counter==0))启动及堵转保护子程序{CNIE=0;OVDCON=0;PDC1=0;基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计16PDC2=PDC1;PDC3=PDC1;InitTMR1();InitTMR3();Flags.Block=1;}Flags.ADCEvent=1;countersave[DispCounter]=counter;counter=0;if(DispCounter<2)DispCounter++;elseDispCounter=2;}名称:主函数intmain(void){unsignedintSpeedDisp;InitHall();初始化霍尔传感器读取功能InitMCPWM();初始化PWM模块InitCN();初始化CN中断InitTMR1();初始化Timer1InitTMR3();初始化Timer3InitADC10();初始化AD模块InitINT2();初始化显示功能i2cint();初始化I2CProtectionON=1;TRISD2=0;RD2=1;TRISD3=0;基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计17RD3=1;TRISF1=0;RF1=0;Flags.CCW=0;InitVar();KEY=0;PDCref=0;PDCTEMP=0;Flags.T3Event=0;DelayNmSec(50);dpdata(SpeedSet);while(1){while(KEY!=1){if(KEY==2)转向选择按键{KEY=0;Flags.CCW=!Flags.CCW;RF1=!RF1;}};KEY=0;RD3=0;Start();while(KEY!=1){if(Flags.Block)堵转保护{基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计18RD2=!RD2;DelayNmSec(500);}else{if(T3IF)调节控制量{T3IF=0;Speed=(unsignedint)((float)(counter2)48.83);Error=(signedint)(SpeedSetSpeed);Kp=0.2;SpeedAdd=(signedint)((float)ErrorKp);if(abs(Error)>3){PDCTEMP=(unsignedint)((signedint)PDC1+SpeedAdd);}if(PDCTEMP>PDCMAX)PDCTEMP=PDCMAX;elseif(PDCTEMP<PDCMIN)PDCTEMP=PDCMIN;PDC1=PDCTEMP;PDC2=PDC1;PDC3=PDC1;counter2=0;}if(Flags.ADCEvent)电位器{Flags.ADCEvent=0;SpeedSet=ReadADC(8)+30;if(SpeedSet>SPEEDMAX)SpeedSet=SPEEDMAX;elseif(SpeedSet<SPEEDMIN)SpeedSet=SPEEDMIN;}基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计19if(DispCounter==2)显示速度{DispCounter=0;SpeedDisp=(unsignedint)((float)(countersave[0]+countersave[1])4.88);dpdata(SpeedDisp);}if(KEY==2)反转{KEY=0;Flags.CCW=!Flags.CCW;Flags.Reverse=1;RF1=!RF1;CNIE=0;OVDCON=0;InitTMR3();}if(Flags.Restart)重新启动,用于反转{Flags.Restart=0;Start();}}}KEY=0;RD3=1;dpdata(0);CNIE=0;OVDCON=0;PDC1=0;基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计20PDC2=PDC1;PDC3=PDC1;InitVar();InitTMR1();InitTMR3();RD2=1;}}名称:电机启动函数功能:启动电机voidStart(){SpeedSet=ReadADC(8)+30;if(SpeedSet>SPEEDMAX)SpeedSet=SPEEDMAX;elseif(SpeedSet<SPEEDMIN)SpeedSet=SPEEDMIN;PDC1=PDCSTART;PDC11000100%PDC2=PDC1;PDC3=PDC1;CNIE=1;enableCNinterruptHallValue=(unsignedint)(PORTB)0x0007;ReadHallEffectSensorsif(Flags.CCW)OVDCON=StateLoTableCCW[HallValue];LoadCommutationValueelseOVDCON=StateLoTableCW[HallValue];T1IE=1;T1CONbits.TON=1;T3CONbits.TON=1;}基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计21voidInitVar(){Flags.Block=0;Flags.ADCEvent=0;Flags.Reverse=0;Flags.Restart=0;counter=0;countersave[0]=0;countersave[1]=0;DispCounter=0;counter2=0;SpeedSet=ReadADC(8)+30;if(SpeedSet>SPEEDMAX)SpeedSet=SPEEDMAX;elseif(SpeedSet<SPEEDMIN)SpeedSet=SPEEDMIN;}voidInitHall(){PCFG0=1;PCFG1=1;PCFG2=1;TRISB0=1;TRISB1=1;TRISB2=1;CNIF=0;CNIE=0;HallValue=0;}voidInitADC10(void){基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计22PCFG8=0;ADCSSL=0;ADCON1=0x00E0;sampletimeautomaticADCON2=0x0000;ADCON3=0x0701;Tsam=7Tad,Tad=TcyIFS0bits.ADIF=0;IEC0bits.ADIE=0;ADCON1bits.ADON=1;enableAD}InitMCPWM,intializesthePWMasfollows:1.FPWM=19531hz2.IndependantPWMs3.ControloutputsusingOVDCON4.SetDutyCyclewiththeADCvaluereadfrompot5.SetADCtobetriggeredbyPWMspecialtriggervoidInitMCPWM(void){PTPER=500;FCYFPWM1=499PWMCON1=0x0777;enablePWMoutputsOVDCON=0x0000;allowcontrolusingOVDPDC1=0;initPWM1,2and3to0%PDC2=PDC1;PDC3=PDC1;PWMCON2=0x0700;16postscalevaluesPTCON=0x8000;startPWM}voidInitCN(void){基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计23CNEN1=0x001c;EnableCN2,CN3andCN4CNIF=0;clearCNIFCNIE=0;enableCNinterrupt}voidInitTMR1(void){T1CON=0x0030;internalTcy256clockTMR1=0;PR1=10000;delay0.5sT1IF=0;T1IE=0;}voidInitTMR3(void){T3CON=0x0030;internalTcy256clockTMR3=0;PR3=2000;delay0.1sT3IF=0;T3IE=0;}voidDelayNmSec(unsignedintN){unsignedintj;while(N)for(j=0;j<MILLISEC;j++);}unsignedintReadADC(unsignedintchannel){if(channel>0x000F)return(0);ADCHS=channel;基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计24ADCON1bits.SAMP=1;while(!ADCON1bits.DONE);return(ADCBUF0);}I2C通讯,用于显示控制参数和实时数据voidi2cint(){I2CSTAT=0x00;I2CCON=0x8000;使能I2C模块并配置SDA、SCL引脚配置为串行端口引脚I2CEN=1;I2CBRG=181;对20MHz振荡,设定I2C速率约为100kHzMI2CIE=0;允许IIC中断}voidi2cidle(){while(TRSTAT);直到发送状态位为“0”,即发送结束while(I2CCON0x001f);等待硬件将SDA、SCL引脚初始化,并清零}voidi2ctrn(unsignedintsubaddr,unsignedintdata1,unsignedintdata2){SEN=1;启动I2Cwhile(!MI2CIF);MI2CIF=0;I2CTRN=0x70;发送从地址while(!MI2CIF);MI2CIF=0;I2CTRN=subaddr;发送子地址while(!MI2CIF);MI2CIF=0;基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计25I2CTRN=data1;发送数据while(!MI2CIF);MI2CIF=0;if(data2!=0xff){I2CTRN=data2;发送数据while(!MI2CIF);MI2CIF=0;}PEN=1;停止I2Cwhile(!MI2CIF);MI2CIF=0;}基于dsPIC30F4011的全电动注塑机顶出伺服系统的设计26参考文献:[1]钟汉如.注塑机控制系统[M].化学工业出版社,2004[2]microchiptechnologyinc.dsPIC30F系列参考手册[M].内部参考,2005年[3]赵德申,胡雪梅.开关电源高频变换电路结构与分析[J].装备制造技术.2007,6[4]陈永军,翁惠辉,李俊杰.TLP250功率驱动模块在IRF840MOSFET中的应用[J].今日电子.2005[5]王晓明,王玲.电动机的DSP控制[M].北京航空航天大学出版社,2004[6]王宏华.新型交流电动机及控制技术系列讲座(3)永磁无刷电动机[J].机械制造与自动化,2004[7]张深.直流无刷电动机原理及应用[M].机械工业出版社,1999:1120
本文档为【BLDC控制程序实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_630004
暂无简介~
格式:pdf
大小:654KB
软件:PDF阅读器
页数:26
分类:
上传时间:2017-06-07
浏览量:135