第三章、用EL-DSPMCKIV实现无刷直流电动机PWM控制方案实验概述:本实验是一个无刷直流电动机的PWM控制系统。结构简单,用到的模块也较少。下面给出每个模块的输入与输出量名称及其量值格式(一)、无刷直流电动机PWM控制原理简介无刷直流电动机从结构上讲更接近永磁同步电动机(我们在下一章节中做详细介绍),控制方法也很简单,主要是通过检测转子的位置传感器给出的转子磁极位置信号来确定励磁的方向,从而保证转矩角在90度附近变化,保证电机工作的高效率。定子换相是通过转子位置信号来控制,转矩的大小则通过PWM的方法控制有效占空比来调控。我公司提供过两种直流无刷电机,一种以前提供过的57BL-02直流无刷电机的额定电压为24V,额定转速为1600rpm,转子极数为4,也就是2极对,还有一种是现在提供的57BL-0730N1直流无刷电机,该电机额定转速为3000rpm,转子极数为10,也就是5极对,这两种电机的转子位置都由霍尔传感器提供,同时由此计算出电机的转速,控制程序样例没有电流环。(二)、系统组成方案及功能模块划分本实验为开环和闭环实验,通过几个模块信号处理最终用BLDCPWM模块产生IPM驱动信号来控制直流无刷电机转动。下图为一个开环控制的系统功能框图,参考占空比信号经由RMP2CNTL模块处理,变成缓变信号送到PWM产生模块。霍尔传感器的输出脉冲信号,经由DSP的CAP1、CAP2、CAP3端口被DSP获取。通过霍尔提供的转子位置信息HALL3_DRV模块判断转子位置,并将该转子位置信息通过计数器传递给BLDC_3PWM_DRV模块,该模块通过占空比输入、设定开关频率以及转子的位置信息产生相应的PWM信号作用于逆变器中的开关管,从而驱动电动机旋转。(三)、系统测试步骤和方法进行该系统测试的前提是已经在电脑上安装好CCS3.3版本的软件了,我们提供的软件是在CCS3.3版本下进行调试的,尤其是我们提供的工作环境wks文件是在此版本下保存的,在不同的版本下并不兼容,所以建议客户安装CCS3.3版本,如果非要在CCS其他版本下运行该套软件,请客户自行建立工作环境wks文件。另外该系统测试的前提也认为是将DSP的USB仿真驱动也已经安装好了。首先将公司提供的光盘根目录下的mckiv文件夹拷贝到电脑E盘的根目录下,由于TI公司的CCS集成软件是有路径记忆功能的,所以最好是拷贝到E盘。首先按照以下方法连接好控制器和机组:1.将控制器背板上的带单芯插头的灰色大地线插到直流有刷电机机组上。2.将M002号电缆的10芯航空插头连接到控制器的背板上。将另一头4芯航空插头连接到直流无刷电机的5芯插座上。3.将M007号霍尔信号电缆一端的9芯航空插头连接到直流无刷电机的9芯航空插座上,另一端9芯航空插头连接到控制器前面DSPCPU板下面的那块接口板INF2上的9芯航空插座上,并将INF2上的JP1拨向左侧,标有“LINE1000”字样。4.将连接在磁粉制动器上的M006号负载电缆的4芯卡式插头连接到控制器背板的4芯圆形卡式插座上。5.将仿真器连接到DSP28335CPU板上的J8上(右上角14P插座)。6.将3芯电源线插入控制器的背板上,并将电源线插在电源接线板上,注意,一定要确保插座板上的大地线是接触良好的。7.打开控制器背板上的的红色船形电源开关,如果有电,此开关的指示灯应点亮。同时控制器前面的液晶显示器应显示开机画面,然后停留在菜单画面。9.启动CCS软件(CCStudiov3.3)(在此之前应该已经用SetupCCStudiov3.3文件设置好CPU类型和仿真器类型),如果8秒之内还没有进入到CCS软件的操作页面,并且发现DSPCPU板上的“LED3”指示灯不闪烁,请按DSPCPU板上的复位键(在LED4灯的右边),直到该指示灯闪烁为止,然后就应该能进入CCS3.3了。注意.CCS3.3软件界面出现后,在界面的右下角出现如下提示:说明CCS3.3软件没有连接目标CPU,所以此时要用“Debug--Collect”命令来连接目标CPU,执行完后再界面的右下角会出现如下提示:说明软件可以正常使用了。最后用“File—Workspace—LoadWorkspace…”菜单命令打开E:MCKIV\28335soft\bldc28335100305\DMC\C28\V32X\sys\BLDC3_1_2833x\cfloat\build\bldc_2833x\Debug”文件夹下的工作环境文件“bldc_2833x.wks”文件。步骤1、开环启动,寻找最佳换相表测试此实验用RMP2_CNTL、MOD6_CNT和BLDCPWM及硬件电路连接来实验直流无刷电机的开环控制,通过实验过程来验证以上几个模块及逆变电路工作是否正常,并分析模块在系统中的作用,关键是通过转子在不同起始位置的不同换相控制表来找到让转矩和转子正交的最佳换相表。图4-1-1和图4-1-2分别给出了此步骤的功能框图和软件流程图。以下给出步骤1中的控制参数及其调节范围:仿真测试具体操作方法如下:1.将头文件“build.h”中的编译指令BUILDLEVEL设为“LEVEL1”,目前公司配置的直流无刷电机是5极对的,以前公司配置过2极对的直流无刷电机,如果电机是2极对的,请打开“PARAMETER.H”头文件,并修改这一行程序:#defineP10//Numberofpoles,将10修改为4.#defineBASE_FREQ250将250修改为50如果是5极对电机则不用修改。然后用“Project--Build”指令重新编译连接程序;2.用“File--LoadProgram”菜单命令加载“bldc_2833x.out”文件到目标板,此时注意观察加载的文件“bldc_2833x.out”是否您刚才编译链接生成的文件,看一下文件的生成时间就知道了,如果所有源文件都没有修改,此时“bldc_2833x.out”的生成时间不会变化;如果想证实源文件编译是否执行,可以在主程序中随便修改一点注释内容,那么编译的时候就肯定会生成新时间的输出文件。3.点击“Debug--RealtimeMode”选择实时模式,此时出现一个对话框,选择“是(Y)”,再点击“Debug--Run”或者点击左侧运行图标运行程序,此时程序在实时运行模式下运行。4.在“Watchwindow”窗口中左键点击“Build1”标签并在空白处点击右键,选择连续刷新模式“ContinuousRefresh”,此时应能观察到“BackTicker”变量在不断变化,说明主程序已经运行。在控制器面板上进行电机选择,选择直流无刷电机正确后,进入状态页面(F1),打开主电源(按钮:电源)。将电机转子转动到任意一个可识别的位置,例如,将轴的安装端面水平,或者将安装销位置朝上,或者给转子贴一个标记,让标记朝上,目的就是要能识别这个位置,然后在下次启动是能让转子相对这个位置转动一个角度,然后设置变量“EnableFlag”为1,此时应能观察到变量“IsrTicker”也在不断变化,说明主中断服务程序已经正常运行,此时如果各电路部分正确,机组连接正确的话,电机应稳定运行。如果电机没有运转,请检查各电缆是否连接可靠,检查INF2电路板上的JP1拨动开关是否拨向左侧,都没有错误的话,检查INF2上的LED2是否熄灭,如果熄灭,说明产生了功率保护中断,更换DSPCPU板后实验现象依旧,则可能需要返修。5.分别右键点击图形显示窗口“Channel1&2”、“Channel3&4”,选择连续刷新模式“ContinuousRefresh”,观察mod1.Counter、hall1.HallGpioAccepted、mod1.TrigInput以及hall1.CmtnTrigHall的波形,如图4-1-3,图4-1-4所示。mod1.Counter是检测到的转子换相计数器,从0到5之间变化,hall1.HallGpioAccepted表示的是转子换相对应的霍尔状态,mod1.TrigInput表示的是检测到了换相的信号标志,hall1.CmtnTrigHall表示的也是换相标志。记录下此时的“Build1”标签中的变量FirstHallState,这是转子在启动之初的霍尔位置,再记录下“Build1”标签中的speed1.SpeedRpm,这是电机当前的转速,再记录下hall1.HallMap[0]~hall1.HallMap[5]这个数组的6个值,这就是换相表。这三部分的变量值记录下来以后,点击“Debug--Halt”,再点击“Debug--RealtimeMode”,最后点击“Debug--ResetCPU”和“Debug—Restart”,退出实时运行模式,将转子转动到和刚才的初始位置偏移30度左右的位置,然后点击“Debug--RealtimeMode”选择实时模式,此时出现一个对话框,选择“是(Y)”,再点击“Debug--Run”或者点击左侧运行图标运行程序,此时程序在实时运行模式下运行。电机应该运行起来,记录下此时的“Build1”标签中的变量FirstHallState,“Build1”标签中的speed1.SpeedRpm,再记录下hall1.HallMap[0]~hall1.HallMap[5]这个数组的6个值,然后又退出实时模式,电机停止运行,再次转动转子的初始位置,和刚才第二次的位置相差30度左右,如此循环下去,直到转子6个初始位置都试运行完成,我们会发现,电机在相同的转矩作用下,速度相差较多,其中那个转速最快的换相表就是我们需要的保证转矩和转子正交的换相表,一般情况下,应该是hall1.HallMap[0]~hall1.HallMap[5]中的数值为“451326”,最后点击“Debug--Halt”,再点击“Debug--RealtimeMode”,最后点击“Debug--ResetCPU”,退出实时运行模式。公司原先配套的直流无刷电机为2极对的,所以转子机械位置从0到360度对应转子电气位置有两个360度,具体表现就是转子在某一个位置的霍尔位置信号和转子转动180度后的霍尔位置信号是相同的。现在配置的是5极对的直流无刷电机,那么转子转动一圈,会有5个电气周期,每次手动转的角度就要更小了。6.打开“bldc3_1.c”源文件,找到“float32DFuncDesired=0.375;;”这一行,将0.375修改为-0.375,编译文件,重新下载“bldc_2833x.out”文件到28335CPU目标板,重复4,5,6步,找到电机反转时的最佳换相表。一般情况下,应该是hall1.HallMap[0]~hall1.HallMap[5]中的数值为“645132”,这就是电机反转时的最佳换相表。最后点击“Debug--Halt”,再点击“Debug--RealtimeMode”,最后点击“Debug--ResetCPU”,退出实时运行模式。7.完成4,5,6,7步后找到电机正转和反转的最佳换相表后,打开“bldc3_1.c”源文件,找到“float32DFuncDesired=-0.375;;”这一行,将-0.375修改为0.375,编译文件,重新下载“bldc_2833x.out”文件到28335CPU目标板,让电机运行起来,在“Watchwindow”窗口中的“Build2”标签中双击DFuncDesired变量右侧的数据,输入要改变的值,观察电机速度的变化,例如输入0.4后回车,观察电机速度的变化,然后改变为0.5后回车观察电机速度的变化。也可以改变转矩的值为负值,例如改为-0.5,看电机换向情况。8.点击“Debug--Halt”,再点击“Debug--RealtimeMode”,最后点击“Debug--ResetCPU”,“Debug—Restart”,退出实时运行模式,并停止程序运行。9.如果继续实验,请转步骤2,否则先关闭控制器的功率部分主电源(在液晶显示状态页面时按下电源按钮),然后关闭CCS3.3软件退出程序,关闭控