开关磁阻电机(Switched Reluctance Motor, SRM)是一种基于磁阻最小化原理工作的特种电机。与传统的电磁感应电机不同,SRM的转矩产生不依赖于转子导体中的感应电流,而是通过定子绕组通电后,转子趋向于使磁路磁阻最小的位置运动而产生转矩。
SRM的机械结构极为简单,主要由以下部分组成:
典型的三相12/8结构SRM(12个定子极,8个转子极)具有以下几何特征:
这种双凸极结构使得SRM具有以下机械优势:
SRM的工作原理基于磁阻转矩的产生。当定子某相绕组通电时,产生的磁场会使转子旋转到使该相磁阻最小的位置。通过依次给各相绕组通电,即可产生连续转矩。
转矩产生的物理本质可通过磁共能理论解释:
T = ∂W'/∂θ|i=const
其中:
在磁路不饱和的情况下,转矩可简化为:
T = (1/2)i²(dL/dθ)
这表明:
SRM的运行特性可分为三个区域:
典型转矩-速度特性如图1所示:
code复制转矩
|_______
| /
| /
|____/______ 速度
基速
基于TMS320F240的SRM驱动系统主要包含以下硬件模块:
采用三相不对称半桥拓扑(两开关每相):
使用增量式光电编码器:
系统采用分层中断结构:
电流环采用PI控制器,设计要点:
code复制G(s) = (Vbus/Rm)/((L/Rm)s+1)
c复制#define ILOOP_GAIN 22 // Q3格式,实际值2.75
#define ILIMIT 1023 // 对应4.273A
采用状态机方法:
c复制typedef struct {
int state; // 当前状态(1-6)
WORD position; // 位置估计值
int direction; // 转向
} state_machine;
状态转换表包含36个有效状态转移
基于捕获定时器的M/T法:
c复制void Msmt_Update_Velocity(anSRM_struct *anSRM, int mode)
{
// 使用1.25MHz时钟或5kHz中断计数
if(mode == 1) {
sum_cnt = K1_VELOCITY_EST/sum_cnt; // 高速模式
} else {
sum_cnt = K2_VELOCITY_EST/anSRM->delta_count; // 低速模式
}
// IIR滤波
filt_velocity = (ALPHA * anSRM->wEst_10xrpm)
+ (ONE_MINUS_ALPHA * inst_velocity);
}
采用固定导通角(120°电角度)、可变开通角的策略:
c复制void Commutation_Algorithm(anSRM_struct *anSRM)
{
// 超前角计算
advance = (anSRM->wEst_10xrpm * anSRM->desiredTorque) >> 9;
// 根据转矩符号调整电角度
if (anSRM->desiredTorque > 0) {
electricalAngle = position + advance;
} else {
electricalAngle = position + PI_16 - advance;
}
// 各相120°偏移
for(phase=0; phase<3; phase++) {
angle = electricalAngle - phase * TWOPIBYTHREE_16;
if((angle >= PIBYSIX_16) && (angle < FIVEPIBYSIX_16)) {
// 激活该相
}
}
}
现象:高速区电流波形振荡
解决方法:
现象:低速时位置估计错误
对策:
有效方法:
linker复制.bss > DATA PAGE 1 // 将常用变量放在片内RAM
.stack > B1 PAGE 1 // 堆栈置于快速RAM
通过上述方法,在TMS320F240上实现的SRM控制系统可实现:
这个方案特别适合需要高可靠性、宽速度范围的应用场合,如电动汽车驱动、航空作动系统等。实际应用中可根据具体需求调整控制参数和硬件配置。