抑制转矩脉动的开关磁阻电机驱动系统设计

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:开关磁阻电机(SRM)是一种无刷、高效电动机,但存在转矩脉动问题,影响其稳定性和效率。本主题旨在探讨通过先进的电子控制策略来减少SRM转矩脉动,优化其驱动系统。介绍包括电机原理、转矩脉动成因、电机控制策略、转矩脉动抑制技术以及系统设计与实现,并通过实验数据评估不同控制策略的有效性。

1. 开关磁阻电机(SRM)的基本原理

1.1 SRM的工作原理概述

开关磁阻电机(Switched Reluctance Motor,SRM)是一种利用磁性材料的磁阻变化来产生扭矩的电机。其结构简单,由定子、转子以及相应的控制电路组成。SRM的核心概念在于电流通过定子绕组时,会在定子与转子之间产生磁力,由于磁阻的非线性变化,这种磁力会迫使转子移动到定子磁极对应位置,从而产生转动。

1.2 SRM的结构特点

SRM的定子与转子均由简单的硅钢片叠层构成,转子没有永磁材料或绕组,因此在低速和恶劣环境下仍可保持稳定的性能。SRM的工作原理是基于定子和转子齿槽结构不对称性,通过电子开关控制定子绕组的电流,实现电动机的启动、加速、减速、反转和制动。

1.3 SRM的工作过程

在SRM的工作过程中,电流通过控制电路按顺序被引入到不同的定子绕组中,产生所需的磁场以推动转子旋转。SRM的每个相绕组的激励都是独立控制的,这种特性使得SRM能够实现精确的速度和位置控制。不过,为了有效控制SRM的运行,需要一个复杂的电子开关系统以及相应的控制算法。

通过上述三个小节的介绍,我们可以了解到SRM作为一类特殊的无刷电机,在设计、控制、以及应用等方面与传统的交流电机和直流电机有着显著的不同。接下来的章节将深入探讨SRM的转矩脉动问题及其控制策略。

2. 转矩脉动的来源和影响

2.1 转矩脉动的概念和特性

2.1.1 转矩脉动的定义

转矩脉动是开关磁阻电机(SRM)在运行过程中输出转矩的非理想状态,表现为转矩输出的波动性。在理想情况下,电机应提供平稳且连续的转矩输出,但实际上,由于电机设计、制造不完善或控制策略不当,转矩脉动成为SRM运行中不可避免的现象。这种脉动可能会引起电机运行的不稳定性,对系统的性能产生负面影响。

2.1.2 转矩脉动产生的机理

转矩脉动的产生主要与电机的结构特性、控制策略以及电气参数有关。在结构上,由于SRM的定子和转子均为凸极结构,其磁阻随位置变化而变化,从而产生不均匀的磁场分布,这是导致转矩脉动的根本原因。此外,电流上升和下降时间的不一致、换向过程中电流的断续,以及电子开关器件切换时产生的死区时间也是转矩脉动形成的重要因素。

2.2 转矩脉动对电机性能的影响

2.2.1 能效影响

转矩脉动导致电机输出转矩不稳定,从而增加了能量转换过程中的损耗。这不仅降低了电机的能量利用效率,也增加了电机的热损耗,进而需要额外的散热措施。能效的降低在工业应用中可能会造成能源浪费和运行成本的增加。

2.2.2 噪音和振动问题

转矩脉动引起电机运行中的不稳定,会直接导致机械噪声和振动的产生。振动不仅影响电机的机械寿命,也可能对电机附近的设备造成损害。噪声问题在一些对环境要求较高的场所,如医院、图书馆等,尤为敏感。

2.2.3 对驱动系统的长期稳定性影响

转矩脉动还会影响整个驱动系统的长期稳定性。在一些精密控制系统或要求高可靠性的应用中,如机器人、数控机床等,转矩脉动可能会导致控制精度的下降,进而影响系统的整体性能。长期受到转矩脉动影响,驱动系统的各部件可能会出现早期疲劳损坏,缩短系统寿命。

3. 电机控制策略

在电机控制领域,实现精确和高效的控制是至关重要的。控制策略不仅影响电机的运行性能,还直接关系到能效、稳定性和系统的长期可靠性。本章将深入探讨开关磁阻电机(SRM)的电机控制策略,特别关注六步换向和八步换向控制,以及脉宽调制(PWM)和空间矢量脉宽调制(SPWM)技术。

3.1 六步换向和八步换向控制

3.1.1 控制策略的基本概念

六步换向和八步换向控制是实现SRM电机控制的两种基本策略。它们都以最小化相绕组通电阶段的数量为基础,通过改变电流方向来控制电机转子的位置和速度。

六步换向控制是指按照一定的顺序在SRM的每相绕组中通电,实现六个基本的相位切换。这种控制方式简单直观,但在某些运行条件下可能导致转矩脉动。

相比之下,八步换向控制通过引入额外的电流路径和切换序列,减少了通电阶段的突变,从而降低了转矩脉动。八步控制策略在某些应用中提供了更加平滑的电机运行性能。

3.1.2 六步和八步控制的实现

实现六步和八步控制需要精确的定时和触发逻辑。通常这些控制策略都是在微控制器或专用电机控制器中实现的。

以六步换向控制为例,一个简单的控制序列如下所示:

  1. 通电相A。
  2. 断电相A,通电相B。
  3. 断电相B,通电相C。
  4. 断电相C,通电相D。
  5. 断电相D,通电相A。
  6. 重复以上步骤。

对于八步换向控制,引入了相间切换和额外的通电阶段,比如在相A和相B之间引入了相AB的短暂通电阶段,以此来平滑转矩脉动。

// 伪代码示例
void six_step_control() {
    phase_A_on();
    delay();
    phase_A_off();
    phase_B_on();
    // ...
}

void eight_step_control() {
    phase_A_on();
    phase_AB_short_on();
    phase_B_on();
    // ...
}

3.2 脉宽调制(PWM)和空间矢量脉宽调制(SPWM)

3.2.1 PWM的原理与应用

PWM是控制开关磁阻电机速度和转矩的一种常见方法,它通过改变脉冲宽度来控制通过电机的平均电流。

PWM的基本原理是通过快速切换开关器件的导通和断开来产生一系列脉冲波形,脉冲宽度(占空比)的改变可以控制电机的输入功率。占空比越大,平均电流越大,相应的转矩也就越大。

graph TD;
    A[Start] --> B[Set PWM Frequency];
    B --> C[Set PWM Duty Cycle];
    C --> D[Generate PWM Waveform];
    D --> E[Apply PWM to Motor];
    E --> F[Adjust PWM as Needed];

在SRM电机控制中,通常通过调整PWM信号来控制每个相绕组的电流,进而实现转速和转矩的精确控制。其优势在于控制算法相对简单,且对硬件要求不高。

3.2.2 SPWM的原理与优势

空间矢量脉宽调制(SPWM)是一种更为高级的PWM技术,它利用向量的概念来更有效地控制电机的磁通和转矩。

SPWM通过合成一个旋转的电压空间矢量来控制电机,这种方法能够减少电流谐波,降低电磁噪声,并提高电机效率。相较于传统PWM,SPWM提供了一种更为平滑和精确的控制方式。

V_{space矢量} = V_{alpha} + jV_{beta}

在实现SPWM时,需要计算出适合的电压空间矢量,并调整其大小和方向以满足特定的控制需求。由于SPWM控制更为复杂,它需要更强大的处理器和更精细的算法来实现。

在选择合适的控制策略时,需要权衡系统的复杂度、控制精度、成本和预期的性能指标。例如,对于追求高能效和低噪声的应用,SPWM可能是一个更好的选择;而对于成本敏感或控制要求不是特别严格的应用,传统的六步或八步控制策略可能更具有优势。

4. 转矩脉动抑制技术

4.1 电流控制优化

4.1.1 电流波形控制方法

电流波形的控制是降低转矩脉动的重要手段。在开关磁阻电机中,电流波形直接影响电磁转矩的产生。通过优化电流波形,可以有效抑制转矩脉动,从而提高电机运行的平稳性。

电流波形控制方法通常涉及以下步骤:

  1. 使用高性能的电流传感器来实时监测电机绕组的电流。
  2. 实施快速的电流反馈机制,确保电流达到设定的参考值。
  3. 采用先进的控制算法,如PI(比例-积分)控制,来调整电机驱动器的输出电压,以便精确控制电流波形。

例如,采用PI控制的电流控制环可以有效跟踪设定的电流参考值,并及时调整输出电压,以确保电流波形的平滑。

// 伪代码示例:PI控制器实现
void PI_Controller(double error, double *integral, double Kp, double Ki) {
    // 比例部分
    double proportional = Kp * error;
    // 积分部分
    *integral += Ki * error;
    // 输出控制信号
    double output = proportional + *integral;
    // 输出信号可以用于调整电压,从而控制电流波形
    Adjust_Output_Voltage(output);
}

4.1.2 电流反馈控制技术

电流反馈控制技术利用反馈信息调整驱动器输出,以确保电机绕组中的电流维持在期望的水平。这一技术要求有精确的电流采样和快速的处理能力,以及响应快速的电源调节机制。

实现电流反馈控制的基本步骤如下:

  1. 采样:电机绕组中的电流被实时采样。
  2. 比较:采样得到的电流值与设定的参考电流值进行比较。
  3. 调节:基于比较结果,通过调节驱动器输出电压来调整电流。
  4. 更新:根据电机负载和运行条件的变化,不断更新参考电流值和控制参数。

电流反馈控制技术的关键在于其反馈环路的设计,这包括选择合适的采样频率、控制器参数(如Kp和Ki),以及确保反馈系统的稳定性和响应速度。

4.2 相位补偿技术

4.2.1 相位补偿原理

相位补偿技术是一种常用于抑制转矩脉动的技术,通过调整开关磁阻电机中相电压的相位,以达到减少转矩脉动的目的。这种技术的核心在于优化相电压的应用时间,使其在不同的转子位置产生最佳的电磁转矩。

相位补偿的基本原理可以概括为:

  1. 分析电机的工作周期内不同转子位置下的电磁状态。
  2. 根据电磁状态和转矩脉动特性,确定最优的相电压应用时刻。
  3. 调整控制逻辑,使得驱动器输出的相电压与最优时刻相匹配。

相位补偿需要精确的转子位置检测,以及快速响应的电源控制能力。在实际应用中,相位补偿技术可以结合电流控制技术,进一步提高电机运行的平稳性和效率。

4.2.2 补偿策略的设计与实施

设计相位补偿策略需要详细的电机参数和运行特性分析。以下是一些关键步骤:

  1. 参数分析 :对电机的电气参数和机械参数进行精确测量和分析,包括相电阻、相电感、转矩常数等。
  2. 模型建立 :建立电机的数学模型,用于模拟不同相位补偿下的电流波形和转矩特性。
  3. 策略设计 :基于模型分析结果,设计相位补偿策略,确保在各个转速和负载条件下都保持最佳性能。
  4. 实验验证 :在电机上实施设计的相位补偿策略,并通过实验验证其效果。

相位补偿策略的实施需要电机控制软件的高度可配置性。通常这需要在电机控制器中集成一个高度灵活的控制算法,以便能够实时调整相位补偿的参数。

// 伪代码示例:相位补偿控制逻辑
void Phase_Compensation_Control(double rotor_position, double *voltage_phase) {
    // 根据转子位置确定最优相电压应用时刻
    if (Should_Advance(Voltage, rotor_position)) {
        // 如果需要提前施加电压
        *voltage_phase += advance_angle;
    } else if (Should_Delay(Voltage, rotor_position)) {
        // 如果需要延迟施加电压
        *voltage_phase -= delay_angle;
    }
    // 输出调整后的相电压相位
    Apply_Voltage(Voltage, *voltage_phase);
}

在上述代码中, Should_Advance Should_Delay 是根据转子位置和电机模型确定电压施加策略的函数。 advance_angle delay_angle 是根据电机特性调整的参数。 Apply_Voltage 函数则是实现电压施加的函数。

在实施相位补偿策略时,关键在于准确把握电机的电磁特性,并且实时响应各种运行条件变化,以实现最佳的转矩控制效果。

通过以上章节,我们详细讨论了电流控制优化和相位补偿技术,这两种方法是抑制开关磁阻电机转矩脉动的有效手段。在下一章中,我们将探讨系统设计与实现,包括硬件设计关键问题以及软件设计关键问题。

5. 系统设计与实现

在设计和实现开关磁阻电机(SRM)系统时,硬件和软件两个方面都是至关重要的。每个方面的关键问题都需要根据SRM的应用场景和性能要求来细致地考虑和解决。

5.1 硬件设计关键问题

硬件是支撑SRM系统正常运行的物理基础,硬件设计的优劣直接影响整个系统的性能。

5.1.1 控制电路设计

控制电路是SRM系统的大脑,它负责发出正确的控制信号以驱动电机。设计控制电路时,以下几个方面是必须要考虑的:

  • 电源管理 :设计时需考虑电源的稳定性和效率,确保提供给SRM的电力符合要求,并尽量减少能量损失。
  • 驱动电路 :根据SRM的参数,设计合适的驱动电路,以确保电机可以在不同负载情况下稳定运行。
  • 保护机制 :需要在电路设计中加入过流、过压、过热等保护措施,防止异常情况下对电机或电路造成损害。
  • 信号处理 :处理反馈信号,如位置传感器和电流传感器的信号,这些信号对于实现精确控制至关重要。

5.1.2 电机参数选择与匹配

选择合适的SRM电机参数对于系统性能至关重要。其中包括:

  • 电阻和电感 :根据工作频率和负载条件选择电机的电阻和电感,这将直接影响电机的运行效率和转矩输出。
  • 磁芯和绕组设计 :为了提高转矩密度和减小体积,需要对磁芯的材料、形状和绕组的匝数、布局进行精心设计。
  • 热设计 :电机在运行过程中会产生热量,需要通过热分析和散热设计确保电机组件不因过热而损坏。

5.2 软件设计关键问题

软件部分则负责整个系统的智能控制和管理,是实现高效运行的关键。

5.2.1 软件架构设计

软件架构的设计是实现复杂控制策略的基础,需要确保系统的可扩展性、可维护性和实时性。主要考虑以下几个方面:

  • 模块化 :将软件系统分解为多个模块,每个模块负责系统的某一部分功能,有助于提高代码的可读性和可维护性。
  • 实时操作系统(RTOS) :由于SRM通常需要实时控制,选择合适的RTOS来实现精确的时序控制和任务管理是必要的。
  • 中断服务程序设计 :必须设计高效响应的中断服务程序,以便及时处理来自硬件的各类事件和信号。

5.2.2 控制算法的编程实现

控制算法是实现SRM高效运转的核心。开发控制算法需要对电机特性有深入理解,并将理论计算与实践经验相结合。关键控制算法包括:

  • 转子位置检测算法 :实现对转子位置的精确跟踪,这在SRM的控制中至关重要。
  • 启动和制动策略 :设计合理的启动和制动控制策略,确保电机能够平滑地从静止状态到达设定转速,以及安全地减速停止。
  • 转矩脉动抑制算法 :通过编程实现转矩脉动抑制技术,如电流控制优化和相位补偿技术,减少电机运行中的噪声和振动,提高运行平稳性。

通过上述硬件和软件方面的设计,可以确保SRM系统在实际应用中表现出优异的性能和可靠性。在接下来的章节中,我们将探讨如何通过实验来验证和评估这些设计所带来的性能改进。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:开关磁阻电机(SRM)是一种无刷、高效电动机,但存在转矩脉动问题,影响其稳定性和效率。本主题旨在探讨通过先进的电子控制策略来减少SRM转矩脉动,优化其驱动系统。介绍包括电机原理、转矩脉动成因、电机控制策略、转矩脉动抑制技术以及系统设计与实现,并通过实验数据评估不同控制策略的有效性。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

对SRM电机的驱动程序 #include "DSP281x_Device.h" // DSP281x Headerfile Include File #include "DSP281x_Examples.h" // DSP281x Examples Include File #include "IQmathLib.h" #include "UserVariable.h" #include "math.h" int rpmreal=0,te=0,te1=0; long key=0,key2=0,key3=0,key4=0,key11=0; int speed_flag=0,loci_flag=0,speed_flag1=0; _iq a=0;//转速标志 unsigned int Sci_VarRx[100]; unsigned int i=0,j=0; unsigned long a1=40000; int tem1=0,temp,k2,k3,start=0; void calrpm1(){ if(Rpm<300) rpmreal=0; else rpmreal=Rpm; } void main2() { // LCD_GotoXY(2, 80); // Sendchar(" "); LCD_GotoXY(4, 80); Sendchar("1."); LCD_GotoXY(4, 96); Sendchar("2."); LCD_GotoXY(4, 112); Sendchar("3."); LCD_GotoXY(10, 16); SendStr("第十二届挑战杯作品"); LCD_GotoXY(7, 48);//16为一行,0为列,112为最大行代码 SendStr("高速磁悬浮开关磁阻电机系统"); WriteReg(0xF1, 0x0F); LCD_GotoXY(6, 80);//16为一行,0为列,112为最大行代码//共八行 SendStr("作品简介"); LCD_GotoXY(6, 96);//16为一行,0为列,112为最大行代码 SendStr("运行状态显示"); LCD_GotoXY(6, 112);//16为一行,0为列,112为最大行代码 SendStr("轴心轨迹显示"); LCD_GotoXY(6, 144);//16为一行,0为列,112为最大行代码 SendStr("南京航空航天大学高速实验室"); LCD_GotoXY(13, 160);//16为一行,0为列,112为最大行代码 Sendchar("2011/10/20"); } void main1() { LCD_GotoXY(10, 16); SendStr("第十二届挑战杯作品"); LCD_GotoXY(7, 48);//16为一行,0为列,112为最大行代码 SendStr("高速磁悬浮开关磁阻电机系统"); LCD_GotoXY(1, 80);//16为一行,0为列,112为最大行代码 SendStr("电压: 伏"); LCD_GotoXY(1, 96);//16为一行,0为列,112为最大行代码//共八行 SendStr("设定的转速: 转 分"); LCD_GotoXY(1, 112);//16为一行,0为列,112为最大行代码 SendStr("实际的转速: 转 分"); LCD_GotoXY(5, 144);//16为一行,0为列,112为最大行代码 SendStr("南京航空航天大学高速电机实验室"); LCD_GotoXY(26, 96); Sendchar("/"); LCD_GotoXY(26, 112); Sendchar("/"); disint(8,80,(unsigned long)200,0); // disint(15,96,(unsigned long)52700,0);//功能转换很重要! disint(15,112,(unsigned long)Rpm11,1);//功能转换很重要! } void main3() { WriteReg(0x10,0x68); while(loci_flag==1) { key=keyscan(); if(key=='*') { LcdClear(); LCD_ON(); main2(); loci_flag=0; } else if(key==16) { GUI_Point(x_trace[k1],y_trace[k1],1); a6=0;//zhouxin loci sample flag delay_ms(100); if(k1==200) { // LcdClear(); ClearBig(0,0);//clear 32/160 delay_ms(100); k1=0; } } } } void main4() { /* if((k1<100)&&(a5==0)) { // GUI_Point(x_trace[k1],y_trace[k1],1); a6=0;//zhouxin loci sample flag } else { */ // a5=1; k3=k1-1; if(k3<0) k3=k1+49; GUI_Point(x_trace[k3],y_trace[k3],1); if(k325)||(k3==25)) { k2=k3-25; } a5=0; delayms(100); GUI_Point(x_trace[k2],y_trace[k2],0); a6=0;//zhouxin loci sample flag // k1++; // } } void main5() { // WriteReg(0x00, 0xC5); GUI_Point(x_trace[k1],y_trace[k1],1); delay_ms(100); if(k1100)||(k1==100)) { k2=k1-100; } // WriteReg(0x00, 0xC5); GUI_Point(x_trace[k2],y_trace[k2],1); a6=0;//zhouxin loci sample flag // delay_ms(100); k1++; if(k1==200) k1=0; } void menu1() { key=keyscan(); // delayms(1); // key11=keyscan(); if(key!=16) { if(key=='A') { LcdClear(); main2(); speed_flag=0; loci_flag=0; } else if(key=='D') {start=1;speed_flag=1;LCD_ON();main1();} else if(key!='B') key2=key2*10+key; else { key3=key2; key2=0; switch(key3) { case 1:LcdClear();LCD_ON();main1();speed_flag1=1;break; case 2:LcdClear();speed_flag=1;LCD_ON();main1();speed_flag1=1;break; case 3:LcdClear();loci_flag=1;main3();speed_flag1=1;break; case 4:LcdClear();speed_flag=1;LCD_ON();main1();speed_flag1=1;break; case 5:LcdClear();speed_flag=1;LCD_ON();main1();speed_flag1=1;break; case 6:LcdClear();speed_flag=1;LCD_ON();main1();speed_flag1=1;break; } //disint(9,128,key3,0);//赋值额定转速 } } } void menu2() { int i=0; while(speed_flag==1) { delayms(1000); disint(15,112,(unsigned long)Rpm11++,1); key=keyscan(); if(key!=16) { if(key=='A') { LcdClear(); main2(); speed_flag=0; } else if(key!='B') { // disint(15+(i++),96,(unsigned long)key,0); } } } } void main(void) { // voltage=270; InitSysCtrl(); // FILE: DSP281x_SysCtrl.c DINT;//屏蔽全局中断 InitPieCtrl(); // FILE: DSP281x_PieCtrl.c pie默认状态为pie所有的中断都禁止,且标志位清零 IER = 0x0000;//禁止cpu中断并清除所有的cpu中断标志位 IFR = 0x0000; InitPieVectTable(); //piecrtl.enpie已定义 EALLOW; // This is needed to write to EALLOW protected registers PieVectTable.TINT0 = &TINT0_ISR; EDIS; // Define PIE interrupt PieCtrlRegs.PIEIER1.all=0x0043; // PDPINTA(EV-A) interrupt //对应向量表中的各位,使能位p62 PieCtrlRegs.PIEIFR1.all=0x0000; //标志寄存器,中断时自动置位 PieCtrlRegs.PIEIER2.all=0x0008; // T1PINT(EV-A) interrupt PieCtrlRegs.PIEIFR2.all=0x0000; PieCtrlRegs.PIEIER3.all=0x0001; // T2PINT(EV-A) interrupt PieCtrlRegs.PIEIFR3.all=0x0000; PieCtrlRegs.PIEIER4.all=0x0008; // T3PINT(EV-B) interrupt PieCtrlRegs.PIEIFR4.all=0x0000; PieCtrlRegs.PIEIER5.all=0x0070; // CAPINT4,CAPINT5,CAPINT6 interrupt PieCtrlRegs.PIEIFR5.all=0x0000; PieCtrlRegs.PIEIER9.all=0x0003; //sci send and recieve interrupt PieCtrlRegs.PIEIFR9.all=0x0000; IER=0x011F; // level1,level2,level3,level4,level5; //int1,2,3,4,5,9 p57 InitCpuTimers(); ConfigCpuTimer(&CpuTimer0, 150, 100); StartCpuTimer0(); InitEv(); InitTimer(); InitAdc(); // InitSci(); InitGpio(); Init_LCD(); delay_ms(10000); LCD_ON(); delay_ms(100); main2(); //the reg 0x10 never set up before // LcdClear(); // WriteReg(0x00, 0xC5);//photo point!!!!!!!!! //temp = lcd_read(0x00); // ClearBig(0,0); //176,24//320240--30/240(row and line) (+64,+8)(line,row) while(1) { EINT; delayms(200); menu1(); menu2(); // delayms(100); // WriteReg(0x00, 0xC5);// // temp = lcd_read(0x00);//正式程序不能加 // tem1 = lcd_read(0xF0); /* delayms(100); main4(); */ /* if(start==1) { while(ii<200) { selfstart(); } } */ } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值