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