第三章无刷直流电动机PWM控制方案.docx
- 文档编号:2898227
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:15
- 大小:414.91KB
第三章无刷直流电动机PWM控制方案.docx
《第三章无刷直流电动机PWM控制方案.docx》由会员分享,可在线阅读,更多相关《第三章无刷直流电动机PWM控制方案.docx(15页珍藏版)》请在冰点文库上搜索。
第三章无刷直流电动机PWM控制方案
第三秦、用EL-DSPMCKIV空斑无钊去浹电动机PWM滋
实验概述:
本实验是一个无刷直流电动机的PWM控制系统。
结构简单,用到的模块也较少。
下面给出每个模块的输入与输出量名称及其量值格式
表4—1
软件模块
输入
输岀
名称
格式
名称
格式
DAIALOG
*iptrl
*iptr2
♦iptr3
*iptr4
Q15四个变量的地址,这四个变量能在图形屮显示出來
N/A
Memory
RMP2_CNTL
Desiredlnpiit
Ran^)2Delay
Q0,转矩斜坡控制函数
Out
QO
MOD6CNT
Tiigliiput
Q0,换相计数控制函数
Counter
QO正转0-5变化,反转5、0变化
BLDC3PWMD
RV_
CnitnPointer
DutyFimc
Q0,通电指针
Q15,占空比
CMPR1
CMPR2
CMPR3
T1PER
EVregisters
F281xhall3
HallMapPointer
当前霍尔状态
CniiDTrigHall
换相蝕发信号
PidReg3
—V
Ref
Q24,pid调节
Ont
Q24
(一)、无刷直流电动机PWM控制原理简介
无刷直流电动机从结构上讲更接近永磁同步电动机(我们在下一章节中做详细介绍),控制方法也很简单,主要是通过检测转于的位置传感器给出的转于磁极位置信号来确定励磁的方向,从而保证转矩角在9()度附近变化,保证电机工作的髙效率。
定于换相是通过转于位置信号来控制,转矩的大小则通过PWM的方法控制有效占空比来调控。
我公司提供过两种直流无刷电机,一种以前提供过的57BL-02直流无刷电机的额定电压为24V,额定转速为1600rpm)转于极数为4,也就是2极对,还有一种是现在提供的57BL-0730N1直流无刷电机,该电机额定转速为3000rpm,转于板数为1(),也就是5极对,这两种电机的转于位置都由霍尔传感器提供,同时由此计算出电机的转速,控制程序样例没有电流环。
(2)、系统组成方案及功能模块划分
本实验为开环和闭环实验,通过几个模块信号处理最终用BLDCPW3I模块产生
1PM驱动信号来控制直流无刷电机转动。
图4・1系统软件流程
下图为一个开环控制的系统功能框图,参誇占空比信号经由RMP2CNTL模块处理,变成缓变信号送到PWM产生模块。
霍尔传感器的输出脉冲信号,经由DSP的CAPKCAP2.CAP3端口被DSP获取。
通过霍尔提供的转亍位置信息HALL3_DRV模块判断转于位置,并将该转于位置信息通过计数器传递给BLDC_3PWM_PRV模块,该模块通过占空比输入、设定开关频率以及转于的位置信息产生相应的PWM信号作用于逆变器中的开关管,从而驱动电动机旋转。
图47系统功能框图
(3)、系统测试步骤和方法
进行该系统测试的前提是已经在电脑上安装好CCS3.3版本的软件了,我们提供的软件是在CCS3.3版本下进行调试的,尤其是我们提供的工作环«wks文件是在此版本下保存的,在不同的版本下并不兼容,所以建议客户安装CCS3.3版本,如果非要在CCS其他版本下运行该真软件,请客户自行建立工作环境xvks文件。
另外该系统测试的前提也认为是将DSP的USE仿真驱动也已经安装好了。
首先将公司提供的光盘根目录下的mckiv^件夹拷贝到电脑巳盘的根目录下,由于TI公司的CCS集成软件是有路径记忆功能的,所以最好是拷贝到E盘。
首先按照以下方法连接好控制器和机组:
1.将控制器背板上的带单芯插头的灰色大地线插到直流有刷电机机组上。
2.将M002号电缆的1()芯航空插头连接到控制器的背板上。
将另一头4芯航空插头连接到直流无刷电机的5芯插座上。
3-将M007号霍尔信号电缆一端的9芯航空插头连接到直流无刷电机的9芯航空插座上,另一端9芯航空插头连接到控制器前面DSPCPU板下面的那块接口板INF2上的9芯航空插座上,并将1NF2上的JP1拨向左侧,标有“LINEIOOO”字样。
4.将连接在磁粉制动器上的M006号负载电缆的4芯卡式插头连接到控制器背板的4芯圆形卡式插座上。
5.将仿真器连接到DSP28335CPU板上的J8上(右上角14P插座)。
6.将3芯电源线插入控制器的背板上,并将电源线插在电源接线板上,注意,一定要确保插座板上的大地线是接触良好的。
7.打开控制器背板上的的红色船形电源开关,如果有电,此开关的指示灯应点亮。
同时控制器前面的液晶显示器应显示开机IH面,然后停留在菜单画面。
9.启动CCS软件(CCSmdiov3.3)(在此之前应该已经用SetupCCSindiov3.3文件设置好CPU类型和仿真器类型),如杲8秒二内还没有进入到CCS软件的操作页面,并且发现DSPCPU板上的“LED3”指示灯不闪烁,请按DSMPU板上的复位犍(在LED4灯的右边),直到该指示灯闪烁为止,然后就应该能进入CCS3.3了。
注意.CCS3.3软件界面出现后,在界面的右下角岀现如下提示:
°J肛工俪口朋OWTON)
说明CCS3.3软件没有连接目标CPU,所以此时要用“Ebu歹Collect”命令来连接目标CPU,执行完后再界面的右下角会岀现如下提示:
[警•HALTED彳说明软件可以正常使用了。
最后用“File-
Workspace—LoadWorkspace…"菜单命令打开
E:
MCKIV\28335soft\bldc28335100305\DMC\C28\V32X\sys\BLDC3.1_2833x\cflo
at\build\bldc_2833x\Debug”文件夹下的工作环境文件“bldc_2833x.wks”文件。
步骤1、开环启动,寻找最佳换相表测试
此实验用RMP2.CNTL.M()D6_CNT和BLDCPWM^硬件电路连接来实验直流
无刷电机的开环控制,通过实验过程来验证以上几个模块及逆变电路工作是否正常,并分析模块在系统中的作用,关键是通过转于在不同起始位置的不同换相控制表来找到让转矩和转于正交的最佳换相表。
图4-1-1和图4-1-2分别给出了此步骤的功能框图和软件流程图。
以下给出步骤1中的控制参数尺其调节范围:
图4・1-2步骤1软件流程图
仿真测试具体操作方法如下:
1.将头文件“build.h”中的编译指令BU3LDLEVEL设为“LEVEL1”,目前公
司配置的直流无刷电机是5极对的,以前公司配置过2极对的直流无刷电机,如杲电机是2极对的,请打开“PARAMETERH”头文件,并修改这一行程序:
#dcfincP10//Numberofpoles,将1()修改为4.
#dcfincBASE_FREQ250将25()修改为5()
如果是5极对电机则不用修改。
然后用“Projuc—Euild”指令重新编译连接程序;
2.用File-LoadProgramw菜单命令加载“bldc_2833x.out”文件到目标板,此时注意观察加载的文件“bldc_2833xeut”是否您刚才编译链接生成的文件,看一下文件的生成时间就知道了,如杲所有源文件都没有修改,此时“bldj2833“ui”的生成时间不会变化;如果想证实源文件编译是否执行,可以在主程序中随便修改一点注释内容,那么编译的时候就肯定会生成新时间的输出文件。
3•点击“EburWdtimeMode”选择实时模式,此时出现一个对话框,选择“是(Y)”,再点击< 实时运行模式下运行。 4.在“Watchwindk”窗口中左键点击“Eiiildl”标签并在空白处点击右键,选 择连续刷新模式ContinuousRefreshn,此时应能观察到“EnckTickcr”变量在不断变化,说明主程序已经运行。 在控制器面板上进行电机选择,选择直流无刷电机正确后,进入状态页面(F1),打开主电源(按钮: 电源)。 将电机转于转动到任意一个可识别的位置,例如,将轴的安装端面水平,或者将安装销位置朝上,或者给转于贴一个标记,让标记朝上,目的就是要能识别这个位置,然后在下次启动是能让转于相对这个位置转动一个角度,然后设置变量“ExbluF隔”为1,此时应能观察到变量“IsrTickur”也在不断变化,说明主中断服务程序已经正常运行,此时如杲各电路部分正确,机组连接正确的话,电机应稳定运行。 如果电机没有运转,请检査各电缆是否连接可靠,检査】ZF2电路板上的JP1拨动开关是否拨向左侧,都没有错误的话,检査IZF2上的LED2是否熄灭,如果熄灭,说明产生了功率保护中断,更换DSPCPU板后实验现象依旧,则可能需要返修。 5.分别右键点击图形显示窗口“Channell&2”、“Channel&4”,选择连续刷新模式*ContinuousRefreshw,观察modi.Counter%halll.HallGpioAcceptedmodi.Triginput以及halll.CmtnTrigJHall的波形,如图4-1-3,图4-1-4所示。 modi.Counter是检测到的转于换相计数器,从0到5之间变化, haUl.HaUGpioAccepted表示的是转于换相对应的霍尔状态,modi.Triginput表示的是检测到了换相的信号标志,hMll.CmmTriMHall表示的也是换相标志。 记录下此时的“Euildl”标签中的变量FirstHallStatc,这是转于在启动之初的霍尔位置,再记录下“Euildl”标签中的speedl.SpccdRpm,这是电机当前的转速,再记录下halll.HallMap[0]-halll.HallMap⑸这个数组的6个值,这就是换相表。 这三部分的变量值记录下来以后,点击"Debug-Halt",再点击"Debug-RealtimeMode",最后点击“DcbuM-ResetCPU”和“Debug—RusEt”,退出实时运行模式,将转于转动到和刚才的初始位置偏移3()度左右的位置,然后点击“EburR如timeMode”选择实时模式,此时出现一个对话框,选择“是(Y)”,再点击“EkburRun”或者点击左侧运行图标运行程序,此时程序在实时运行模式下运行。 电机应该运行起来,记录下此时的“Euildl”标签中的变量FirsiHallStalc,“Euildl”标签中的speedl.SpccdRpm,再记录下halll.HallMap[()]-halll.HallMap[5]这个数组的6个值,然后又退出实时模式,电机停止运行,再次转动转于的初始位置,和刚才第二次的位置相差3()度左右,如此循环下去,直到转于6个初始位置都试运行完成,我们会发现,电机在相同的转矩作用下,速度相差较多,其中那个转速最快的换相表就是我们需要的保证转矩和转于正交的换相表,一般情况下,应该是haUl.HallMap[O]-halll.HallMap[5]中的数值为“451326”,最后点击 Dcbug—Halt",再点击"Dcbug—RualtimeMode",最后点击 “Ekbug-RusMPU”,退岀实时运行模式。 公司原先配真的直流无刷电机为2极对的,所以转于机械位置从()至9360度对应转于电气位置有两个36()度,具体表现就是转于在某一个位置的霍尔位置信号和转于转动18()度后的霍尔位置信号是相同的。 现在配置的是5极对的直流无刷电机,那么转于转动一圈,会有5个电气周期,每次手动转的角度就要更小了。 6.打开"bldc3_l.c"源文件,找到"float32DFuncDcsircd=0.375;;^这一行,将0.375修改为-0.375,编译文件,重新下载“bldc_2833x.()ui”文件到28335CPU目标板,重复4,5,6步,找到电机反转时的最佳换相表。 一般情况下,应该是haUl.HaUMap[0]-haDl.HallMap[5]中的数值为“645132”,这就是电机反转时的最佳换相表。 最后点击“DuburHalt”,再点击Debug-RealtimeMode",最后点击“DuburRusutCPU”,退出实时运行模式。 7•完成4,5,6,7步后找到电机正转和反转的最佳换相表后,打开“bldc3_l.c”源文件,找到“float32DFuncDcsircd=-0.375;;"这一行,将-0.375修改为0.375,编译文件,重新下载“bldc_2833x.mil”文件到28335CPU目标板,让电机运行起来,在“VCarchwindg”窗口中的“Euild2”标签中双击DFuncDcsircd变量右侧的数据,输入要改变的值,观察电机速度的变化,例如输入0.4后回车,观察电机速度的变化,然后改变为().5后回车观察电机速度的变化。 也可以改变转矩的值为负值,例如改为05,看电机换向情况。 8.点击wDebug—Hal,再点击“Debug-RealtimeMode”,最后点击 Debug—RcsctCPU,"Dubu—Restart,退出实时运行模式,并停止程序 运行。 9.如果继续实验,请转步骤2,否则先关闭控制器的功率部分主电源(在液晶显示状态页面时按下电源按钮),然后关闭CCS3.3软件退岀程序,关闭控制电源。 iE釀时最隹换向表下的波形图 国4-1-3modi.Counterfijlialll.HallGpioAccepted4-14modl.Tnglnpiit和lialll.CmtnTngHall 步骤2、在最佳换相表下开环启动并换向测试 通过上一步获得让转矩和转于正交的最佳换相表,在最佳换相表控制下进行换 相,观察电机的运转情况,尺其换相控制过程。 图421和图422分别给出了此步 骤的功能框图和软件流程图。 以下给岀步骤2中的控制参数尺其调节范围: EnablcFlag: 启动控制(0,1) DfuncDcsircd: 转矩设定值,-+7fffli 图421步骤2功能框图 图4-2-2步骤2软件流程图 如杲不是从第一步继续实验到这里,请按照前面系统测试和步骤所描述的方法操 作,否则请直接进行下面的操作: 1.将头文件“build.h”中的编译指令BUILDLEVEL设为“LEVEL2”,然后用“Project-Euild”指令重新编译连接程序; 2.用aFile-LoadProgram"菜单命令加载“bldc_2833x.oul”文件到目标板,此时注意观察加载的文件“bldc_2833xat”是否您刚才编译链接生成的文件,看一下文件的生成时间就知道了,如果所有源文件都没有修改,此时“bldc_2833x.()ut”的生成时间不会变化;如果想证实源文件编译是否执行,可以在主程序中随便修改一点注释内容,那么编译的时候就肯定会生成新时间的输出文件。 3•点击“Debug-R如timeMode”选择实时模式,此时出现一个对话框,选择“是 (Y),再点击MDebug-Runw或者点击左侧运行图标运行程序,此时程序在实时运行模式下运行。 4.在“Watchwindow”窗口中左键点击“Euild2”标签并在空白处点击右键,选择连续刷新模式“ContinuousReFresh",此时应能观察到“EackTickcr”变量在不断变化,说明主程序已经运行。 5.如果从步骤1继续实验而来,跳过此步。 否则在控制器面板上进行电机选择,选择直流无刷电机正确后,进入状态页面(F1),打开主电源(按钮: 电源)。 6.设置变量uEnablcFlagw为1,此时应能观察到变量“IsrTickcr”也在不断变化,说明主中断服务程序已经正常运行,此时如果各电路部分正确,机组连接正确的话,电机应稳定运行。 观察控制器上液晶显示的速度是否稳定,如杲跳动较大,请检査大地线是否连接良好。 7.分别右键点击图形显示窗口“Channcll&2”、“Channc】3&4”,选择连续刷新 模式ContinuousRefreshw,观察modi.Counter-,hall1.HallGpioAccepted的波形,如图4-2-3所示和图4-2-4所示。 modl.Counirr是检测到的转于换相计数器,从0到5定间变化,halll.HallGpioAcccplcd表示的是转于换相对应的霍尔状态,从图形显示窗口“Chaimcll&2”中仔细观察对应与换相计数器modi.Counter的霍尔状态表halll.HallGpioAccepted,看是不是第一步我们检测到的最佳换相表,图形显示窗口“Channel&4”显示的是电机的转速speedl.SpccdRpm,单位为转每分和halll.CminTrigHall,表示的是霍尔换相触发信号。 8.让电机运行起来,在“W吐chwindmv”窗口中的“Euild2”标签中双击DFuncPcsircd变量右侧的数据,输入要改变的值,观察电机速度的变化,例如改变为“-0.375”后回车观察电机速度的变化,电机应该换向运行,从图形显示窗口“Channcll&2”中仔细观察对应与换相计数器modi.Counter的霍尔状态表haUl.HaUGpioAcceptcd。 看是不是第一步我们检测到的反向最佳换相顺序,注意此时modi.Counter^从5到0变化的,所以我们看到的换相顺序有所不同。 9.点击“Dubu呂--Halt",再点击“Debu若--RealtimeMode”,最后点击 Debug—RcsctCPUKDebug—Restart,退出实时运行模式,并停止程序 运行。 1().如果继续实验,请转步骤3,否则先关闭控制器的功率部分主电源(在液晶显示状态页面时按下电源按钮),然后关闭CCS3.3软件退岀程序,关闭控制电源。 图4-2-3modiCounter和hall]HallGpioAccepte医4-2-4speedl.SreedRrm和halll.CmtnTrigHall 步骤3、速度闭环系统功能测试 速度闭环P】调节器的模拟实验所用到的模块框图和程序流程图如图4一3—1和 图4一3—2所示: 图4一3—1步骤3结构稚图 图4一3—2步骤3程序流程图 如杲不是从第二步继续实验到这里,请按照前面系统测试步骤和方法所描述的步骤进行处理,否则请直接按照下面的操作方法进行实验: 1.将头文件“build.h”中的编译指令BUILDLEVEL设为“LEVEL3”,然后用 “Project-Build”指令重新编译连接程序; 2.用"File-LoadProgram"菜单命令加载“bldc_2833xeiil”文件到目标板,此时注意观察加载的文件“bldc_2833xeut”是否您刚才编译链接生成的文件,看一下文件的生成时间就知道了,如果所有源文件都没有修改,此时“bldc_2833x.()ut”的生成时间不会变化;如果想证实源文件编译是否执行,可以在主程序中随便修改一点注释内容,那么编译的时候就肯定会生成新时间的输岀文件。 3•点击“Debug-R如timeMode”选择实时模式,此时出现一个对话框,选择“是 (Y)”,再点击MDcbug-Runw或者点击左侧运行图标运行程序,此时程序在实时运行模式下运行。 4.在“Watchwindo*”窗口中左犍点击“Build3”标签并在空白处点击右键,选择连续刷新模式ContinuousRefresh^,此时应能观察到“EnckTickcr"变量在不断变化,说明主程序已经运行。 5.如果从步骤2继续实验而来,跳过此步。 在控制器面板上进行电机选择,选择直流无刷电机正确后,进入状态页面(F1),打开主电源(按钮: 电源)。 如果是单一的直流无刷电机控制器则不需要进行电机选择,进入状态页面后直接打开主电源即可。 6.设置变量< 7・分别右键点击图形显示窗口“Channull&2”、“Channel&4”,选择连续刷新模式*ContinuousRefreshw,观察modi.Counter、hall1.HallGpioAccepted的波形。 modi.Counter是检测到的转于换相计数器,电机正转时从0到5变化,或者电机反转时从5到()之间变化,halll.HMGpioAcccpird表示的是转于换相对应的霍尔状态。 图形显示窗口“Channel&4”显示的是检测到的A相电流ilg2_vdcl.ImuasA,下面显示的®ilg2_vdcl.ImeasB,表示的是检测到的E相电流。 在“Watchwindow"窗口中的“Euild3”标签中的speedl.SpccdRpm变量显示的值是电机的转速,注意和控制器面板上显示的速度进行比较,应该差不多。 如图4-3-3和图4-3-4所示。 &在“Watchwindow”窗口中的“Euild3”标签中双击SpeedRe®量右侧的数据,输入要改变的值,观察电机速度的变化,例如输入-0.4后回车,观察电机速度的变化。 在确认电机速度能及时准确的跟随速度给定值变化后,在某一速度下,通过控制器的面板设定不同的负载,观察电机的带负载能力。 在控制器面板上按下 “菜单”按键,出现菜单页面后按下向下按键,“设定”条目前面的光标闪烁,按下“确定”按键,出现设定页面,“负载”条目前面的光标闪烁,继续按下“确定”按犍,利用向上或者向下按键改变负载电流值,首先修改百位的电流值,然后按“shift: ”按犍移动到十位,利用向上或者向下按键改变十位的数据,再按“shiFt”按键移动到个位,改变数值,最后按“确定”按键。 负载是一个500毫安,2牛米的一个磁粉制动器,产生的扭矩为: 输入电流值/5(X)*2牛米。 控制器限制电流输入值为()到30()毫安。 例如我们将十位的()变为5后按“确定”键,就是设定负载为5()毫安,磁粉制动器产生的转矩=50/500*2=0.2牛米。 机组配置的直流无刷电机额定带负载能力为()・23牛米,所以我们输入的负载不要超过5()毫安,带负载实验也不要时间过长,以免损坏电机和功率器件。 因为没有电流环,严禁做堵转实验。 注意加载后,电机的速度会降低,但是经过速度P】调节后,很快就回到原来的速度,这样说明速度闭环是成功的。 加载后可以明显的看到ImcasA和ImcasB电流峰值增大,去载后电流明显减小。 9.点击“Dubu呂--Halt",再点击“Dubu若--RealtimuMode”,最后点击 KDebug—RcsctCPUKDebug—Restart,退出实时运行模式。 1().先关闭控制器的功率部分主电源(在液晶显示状态页面时按下电源按钮), 然后关闭CCS3.3软件退出程序,再关闭控制器的控制电源。 如用4-3-3modi.Counter、halll.HallGpioAccepted胃4-3-4所示;ImeasA和ImeasB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 章无刷 直流电动机 PWM 控制 方案