基于BLDC无刷直流电机的SVPWM控制器查找表设计matlab仿真

目录

1.BLDC电机基础

2.SVPWM原理

3. 查找表设计

4. MATLAB程序

5. 仿真


       无刷直流电机(BLDC)因其高效率、高功率密度和长寿命等优点,在工业自动化、电动汽车、航空航天等领域得到了广泛应用。为了驱动BLDC电机,需要采用先进的控制策略,其中空间矢量脉宽调制(SVPWM)是一种常用的方法。SVPWM能够最大化利用直流电压,减少谐波,提高电机性能。

1.BLDC电机基础

       BLDC电机是一种同步电机,其定子绕组采用三相星形或三角形连接,转子采用永磁体。BLDC电机的运行原理是通过电子换向器控制定子绕组的通电顺序,使电机产生连续的转矩。BLDC电机的数学模型可以用电压方程、磁链方程和转矩方程来描述。

       无刷直流电机(Brushless DC Motor,简称BLDC电机)是近年来在电机驱动领域得到广泛应用的一种高性能电机。与传统的有刷直流电机相比,BLDC电机具有更高的效率、更长的使用寿命、更低的维护成本和更好的控制性能。本文将详细介绍BLDC电机的工作原理、数学模型以及控制策略,以期为读者提供全面深入的了解。

       BLDC电机主要由定子、转子和位置传感器三部分组成。其中,定子采用多相绕组结构,通常为三相;转子采用永磁体,根据永磁体的安装方式可分为表贴式和内嵌式两种;位置传感器用于检测转子的位置信息,为控制器提供换相依据。

扫描二维码关注公众号,回复: 17326273 查看本文章

       BLDC电机的工作原理可以概括为“电子换向”和“磁场定向控制”。通过控制器对定子绕组通电顺序的精确控制,实现电机转矩的连续输出和转速的平滑调节。具体来说,BLDC电机的工作原理包括以下几个步骤:

  1. 位置检测:位置传感器检测转子的实时位置,并将位置信息传递给控制器。
  2. 换相逻辑:控制器根据位置信息确定当前应该通电的定子绕组,并通过功率变换器提供相应的电压和电流。
  3. 转矩产生:通电的定子绕组与永磁体之间产生相互作用力,从而驱动转子旋转。
  4. 闭环控制:通过速度和位置反馈,实现电机的精确控制和性能优化。

2.SVPWM原理

       空间矢量脉宽调制(Space Vector Pulse Width Modulation,简称SVPWM)是一种先进的电机驱动技术,特别适用于三相电压源型逆变器(VSI)驱动的无刷直流电机(BLDC)或永磁同步电机(PMSM)。与传统的正弦脉宽调制(SPWM)相比,SVPWM具有更高的电压利用率、更低的谐波含量和更快的动态响应。本文将详细阐述SVPWM的基本原理、数学推导和实现方法,以便读者对其有深入全面的理解。

       SVPWM是一种基于三相电压型逆变器的脉宽调制技术,其基本原理是将三相电压矢量合成一个旋转的空间矢量,通过控制该空间矢量的幅值和旋转速度来控制电机的运行。SVPWM的优点是电压利用率高、谐波含量低、动态响应快。

SVPWM的实现过程包括以下几个步骤:

  1. 扇区判断:根据三相电压的大小关系,确定空间矢量所在的扇区。
  2. 时间计算:计算两个相邻非零矢量和零矢量的作用时间。
  3. 矢量合成:根据计算得到的作用时间,合成所需的空间矢量。
  4. PWM波生成:根据合成的空间矢量生成三相PWM波,驱动逆变器开关管。

为了深入理解SVPWM的工作原理,需要建立其数学模型。以下是一些关键的数学公式和推导。

  1. 三相电压与空间电压矢量的关系:在三相坐标系下,三相电压可以表示为:

    其中Um​为相电压幅值,ω为角频率。通过Clarke变换和Park变换,可以将三相电压转换为旋转坐标系下的直轴和交轴电压。
  2. 空间电压矢量的合成:在复平面上,三相电压可以合成一个旋转的空间电压矢量:

    其中Uref​为合成的空间电压矢量。通过控制Uref​的幅值和旋转速度,可以控制电机的转矩和转速。
  3. 作用时间的计算:在SVPWM中,作用时间的计算是关键步骤之一。以第一扇区为例,假设T1​和T2​分别为相邻的两个非零矢量的作用时间,T0​为零矢量的作用时间,则有以下等式:

    其中Ts​为采样周期,U1​和U2​为第一扇区的两个基本电压矢量。通过解这个等式,可以得到T1​、T2​和T0​的值。
  4. PWM波形的生成:根据计算得到的作用时间和开关状态,可以生成三相PWM波。PWM波的占空比由作用时间和采样周期决定。​​​​​​​​​​​​​​

3. 查找表设计

       为了提高SVPWM的实时性和降低计算量,可以采用查找表的方法来实现SVPWM。查找表是一种将复杂计算或查表操作的结果预先存储在内存中,以供实时调用的技术。在SVPWM中,查找表主要用于存储扇区判断结果、作用时间计算和PWM波生成所需的数据。

查找表的设计步骤如下:

  1. 扇区判断查找表:根据三相电压的大小关系,可以将空间矢量划分为6个扇区。每个扇区对应一组特定的开关状态,可以将这些开关状态预先存储在查找表中。在实际应用中,只需根据当前的三相电压值查找对应的扇区和开关状态。
  2. 作用时间计算查找表:作用时间的计算涉及复杂的数学运算,如平方根、反正切等。为了提高实时性,可以将常用工作条件下的作用时间计算结果预先存储在查找表中。在实际应用中,根据当前的电压和频率等参数查找对应的作用时间。
  3. PWM波生成查找表:PWM波的生成需要精确的定时和计数操作。为了提高实时性和减少CPU负担,可以将PWM波的占空比和周期等参数预先存储在查找表中。在实际应用中,根据当前的电压和频率等参数查找对应的PWM波参数,然后利用定时器或硬件PWM模块生成所需的PWM波。

4. MATLAB程序

clc 
clear
close all
var = 1039; %% variable to adjust peak value to number we want
A = 900; %% peak value of saddle = A * 2
sample = 1000; %% how many samples we take

step =  (2*pi) / (sample) ;
a1 = 0: step :(2*pi);

sin1 = var* sin(a1) ;
sin2 = var * sin(a1 - ((2*pi)/3)) ; %% faze shift of -120 deg
sin3 = var * sin(a1 + ((2*pi)/3)) ; %% faze shift of +120 deg

hold on;
grid on;


for i = 1 : sample+1
   V(i)=(min([sin1(i),sin2(i),sin3(i)]) + max([sin1(i),sin2(i),sin3(i)]) ) /2;
   phase(i) =  sin1(i) - V(i) + A;
end

%%plot(phase)
%% ploting saddle profile period for visualization

n=7;
B = repmat(phase,1,n)
%%plot(B,'LineWidth', 3) %% plot n periods but not interpolated

%%% if we want look up table of n periods of our sine wave
%%% We just downsample it to the size we want, here i want 10 bit  = 1024
%%% since i have 10 bit encoder for bldc motor and i cant fit every tick of
%%% encoder to one index of array

idx = 1:(n*(sample+1));                                 % Index
idxq = linspace(min(idx), max(idx), 1024);    % Interpolation Vector
Vi = interp1(idx, B, idxq, 'linear');       % Downsampled Vector
plot(Vi,'LineWidth', 3);



%% this will save lookup table as .txt file, in current folder. 
%%file = fopen('Space_Vector.txt','wt');

%%enter path where you want to save your file,
file = fopen('Space_Vector.txt','wt');

%%split array to remove last comma from txt file
end_ = Vi(end);
Vi(end) = [];

if file > 0
     fprintf(file,' %.0f , ',Vi');
     fprintf(file,' %.0f  ',end_');
     fclose(file);
 end
%% 
up4009


5. 仿真

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/135273950