空间矢量脉宽调制(SVPWM)的开环讲解

合集下载

SVPWM的原理讲解

SVPWM的原理讲解

SVPWM的原理讲解SVPWM(Space Vector Pulse Width Modulation)是一种基于空间矢量的脉宽调制技术,用于控制交流电机的三相逆变器。

它在电机控制中广泛应用,具有高效、低失真和高精度的优点。

本文将从原理、工作原理和优点三个方面对SVPWM进行详细介绍。

一、原理SVPWM的基本原理是将三相电压分解为alpha轴和beta轴的两个独立分量,然后根据alpha和beta的大小和相位差计算得到一个空间矢量,最后根据空间矢量的方向和大小来确定控制电压波形。

通过合理的调节控制电压的大小和频率,可以实现对电机的精确控制。

二、工作原理1. 坐标变换:将三相电压转换为alpha轴和beta轴的分量,通过如下公式计算得到alpha和beta:alpha = 2/3*Va - 1/3*Vb - 1/3*Vcbeta = sqrt(3)/3*Vb - sqrt(3)/3*Vc2. 空间矢量计算:根据alpha和beta的大小和相位差计算得到空间矢量。

空间矢量的方向和大小决定了逆变器输出电压的形状和频率。

3.脉宽调制:根据空间矢量的方向和大小来确定脉冲的宽度和频率。

通常,采用时间比较器和斜坡发生器来实现脉冲宽度调制,使得逆变器输出的脉冲宽度能够跟随空间矢量的变化。

4.逆变器控制:将调制好的脉宽信号通过逆变器输出到交流电机。

逆变器通过控制脉冲宽度和频率来改变输出电压的形状和频率,从而实现对电机的精确控制。

三、优点1.高效:SVPWM技术能够将三相电压转换为整数变化的脉宽信号,减少了功率器件的开关次数,提高了逆变器的转换效率。

2.低失真:SVPWM技术能够通过精确控制脉冲宽度和频率来改变输出电压的形状和频率,减小了电机输出的谐波失真,提高了电机的运行效果和负载能力。

3.高精度:SVPWM技术能够实现对电机的精确控制,通过调整输出电压的波形和频率,可以实现电机的恒转矩和恒转速控制,提高了电机的控制精度和稳定性。

SVPWM的原理和法则推导和控制算法详细讲解

SVPWM的原理和法则推导和控制算法详细讲解

SVPWM的原理和法则推导和控制算法详细讲解SVPWM(Space Vector Pulse Width Modulation)是一种三相不对称多电平PWM调制技术。

其原理是将三相电压转换为空间矢量信号,通过调制的方式控制逆变器输出电压,以实现对三相电机的控制。

下面将详细介绍SVPWM的原理、法则推导以及控制算法。

一、原理:SVPWM的原理在于将三相电压分解为两相,即垂直于矢量且相互垂直的两个分量,直流坐标分量和交流坐标分量。

其中,直流坐标分量用于产生直流电压,交流坐标分量用于产生交流电压。

通过对直流和交流坐标的调制,可以生成所需的输出电压。

二、法则推导:1.将三相电压写成直流坐标系下的矢量形式:V_dc = V_d - 0.5 * V_a - 0.5 * V_bV_ac = sqrt(3) * (0.5 * V_a - 0.5 * V_b)2. 空间矢量信号通过电源电压和载波进行调制来生成输出电压。

其中,电源电压表示为空间矢量V。

根据配比原则,V_dc和V_ac分别表示空间矢量V沿直流和交流坐标的分量。

V = V_dc + V_ac3.根据法则推导,导出SVPWM的输出电压:V_u = 1/3 * (2 * V_dc + V_ac)V_v = 1/3 * (-V_dc + V_ac)V_w = 1/3 * (-V_dc - V_ac)三、控制算法:1. 设定目标矢量Vs,将其转换为直流坐标系分量V_dc和交流坐标系分量V_ac。

2.计算空间矢量的模长:V_m = sqrt(V_dc^2 + V_ac^2)3.计算空间矢量与各相电压矢量之间的夹角θ:θ = arctan(V_ac / V_dc)4.计算换向周期T和换相周期T1:T=(2*π*N)/ω_eT1=T/6其中,N为极对数,ω_e为电机的角速度。

5.根据目标矢量和夹角θ,确定目标矢量对应的扇区。

6.根据目标矢量和目标矢量对应的扇区,计算SVPWM的换相角度β和占空比:β=(2*π*N*θ)/3D_u = (V_m * cos(β) / V_dc) + 0.5D_v = (V_m * cos(β - (2 * π / 3)) / V_dc) + 0.5D_w=1-D_u-D_v以上步骤即为SVPWM的控制算法。

空间矢量SVPWM讲解

空间矢量SVPWM讲解

现实考虑
易于计算机实现
形成开关信号, 控制变换器
挖掘SVPWM优势
数字实现方式
扇区确定
Vγ1>0,则A=1,反之A=0;
V γ 2>0,则B=1,反之B=0;
V γ3 >0,则C=1,反之C=0。
N =A+2B+4C
当N=3时,Uref位于第Ⅰ扇区; 当N=1时,Uref位于第Ⅱ扇区; 当N=5时,Uref 位于第Ⅲ扇区; 当N=4时,Uref 位于第Ⅳ扇区; 当N=6时,Uref 位于第Ⅴ扇区; 当N=2时,Uref 位于第Ⅵ扇区。
当N=3时,Uref位于第Ⅰ扇区; 当N=1时,Uref位于第Ⅱ扇区; 当N=5时,Uref 位于第Ⅲ扇区; 当N=4时,Uref 位于第Ⅳ扇区; 当N=6时,Uref 位于第Ⅴ扇区; 当N=2时,Uref 位于第Ⅵ扇区。






开关矢量时间确定
表Ⅰ 矢量作用时间分配
扇区






N
3
1
5
4
传统PWM技术一般通过将三角载波和
调制函数波比较获得相应脉冲波形
cos(t 30 ) 0 t 60
3 cost
60 t 120
uA
a
c os (t c os (t
150 ) 210 )
120 t 180 180 t 240
3 cost
240 t 300
cos(t 30 )
旋转向量
U UA UB UC
3
U 2
m
(sin
t,
sin
t
2 3
, s in

svpwm空间矢量控制原理课件

svpwm空间矢量控制原理课件

03
空间矢量调制波形的生成
通过计算得到各相电压的期望值,然后利用SVPWM算法生成相应的
PWM波形。
SVPWM算法实现
SVPWM算法的基本步骤
首先计算出电压矢量的期望值,然后根据该期望 值计算出相应的扇区,再根据扇区计算出相应的 矢量时间,最后生成相应的PWM波形。
矢量时间的计算
根据扇区数和期望的电压矢量幅值,可以计算出 相应的矢量时间。
THANKS
THANK YOU FOR YOUR WATCHING
05
SVPWM控制策略优化
控制策略改进方法
引入滑模控制
通过设计滑模控制器,实 现SVPWM控制系统的快 速响应和鲁棒性。
优化死区时间
通过调整死区时间的设置 ,减小SVPWM控制过程 中的谐波分量,提高控制 精度。
引入重复控制
将重复控制算法应用于 SVPWM控制系统,减小 稳态误差,提高系统跟踪 性能。
SVPWM空间矢量控制原理课件
目录 CONTENTS
• SVPWM技术概述 • 空间矢量控制原理 • SVPWM实现方式 • SVPWM与PWM对比 • SVPWM控制策略优化 • SVPWM实验与验证
01
SVPWM技术概述
SVPWM定义
SVPWM
Space Vector Pulse Width Modulation的缩写,即空间矢量脉 宽调制技术。
波形生成的实现方式
利用SVPWM算法生成相应的PWM波形,并通 过驱动电路将PWM波形输出到逆变器中,从而 控制各相电压的大小和频率。
波形生成的优点
SVPWM波形生成具有较高的电压输出能力和较 低的谐波畸变率,能够实现精确的电压控制和较 高的功率因数。

svpwm的原理及法则推导和控制算法详解

svpwm的原理及法则推导和控制算法详解

svpwm的原理及法则推导和控制算法详解SVPWM是一种空间矢量脉宽调制技术,常应用于交流电机的无传感器矢量控制方案中。

SVPWM的原理及法则推导涉及到三相交流电机理论、空间矢量分析以及脉宽调制等内容。

下面将对SVPWM的原理、法则推导和控制算法进行详解。

1.SVPWM原理SVPWM的原理是基于交流电机的三相正弦波电流与空间矢量之间的转换关系。

交流电机的电流空间矢量可以表示为一个复数形式,即电流空间矢量(ia, ib, ic) = ia + jib。

空间矢量在空间中对应一个电机角度θ。

SVPWM的目标是控制交流电机的三相正弦波电流,使其与预期空间矢量一致,从而控制电机输出力矩和转速。

SVPWM首先对预期空间矢量进行空间矢量分解,将其分解为两个基本矢量Va和Vb。

然后根据电机角度θ和两个基本矢量的大小比例,计算出三相正弦波电流的幅值和相位。

2.SVPWM法则推导SVPWM的法则推导是为了实现精确控制电机的输出力矩和转速。

在法则推导中,首先需要建立电流与电压之间的关系,然后计算出三相正弦波电流的幅值和相位。

最后根据幅值和相位生成PWM波形,控制交流电机的动作。

具体推导过程如下:-步骤1:计算Va和Vb的大小比例,根据预期空间矢量和电机角度θ,可以通过三角函数计算出Va和Vb的幅值。

-步骤2:计算Vc,由于交流电机为三相对称系统,Vc的幅值等于Va和Vb的和,相位等于Va相位加120度。

-步骤3:计算三相正弦波电流的幅值和相位,幅值可以通过输入电压和阻抗模型计算得到。

-步骤4:根据幅值和相位生成PWM波形。

3.SVPWM控制算法SVPWM控制算法实现了对交流电机输出力矩和转速的精确控制。

- 步骤1:通过位置传感器或者传感器less技术获取电机角度θ。

-步骤2:根据预期输出力矩和转速,计算出预期空间矢量。

-步骤3:根据电机角度θ和预期空间矢量,计算出Va和Vb的幅值。

-步骤4:根据Va和Vb的大小比例和Vc的相位,生成PWM波形。

空间矢量脉宽调制技术(SVPWM)

空间矢量脉宽调制技术(SVPWM)

空间矢量脉宽调制技术(SVPWM)空间矢量脉宽调制技术(SVPWM)在交流变频控制系统中的应用越来越广泛,提高SVPWM模块的可复用性、可靠性、并缩短其开发周期成为重要研究课题。

现场可编程门阵列(Field Programmable Gate Arrays)具有简洁、经济、高速度、低功耗等优势,又具有全集成化、适用性强、开发周期短等优点,利用FPGA 实现SVPWM可以提高SVPWM的可复用性,有重要的现实意义。

本文给出了基于DSP和FPGA的交流变频控制系统的硬件设计方案,搭建了由DSP最小系统、FPGA最小系统、电流检测电路、转速和位置测量电路等组成的硬件平台,完成了印刷电路板的绘制,并对该系统进行了硬件调试。

文中介绍了电压空间矢量脉宽调制(SVPWM)原理,并重点研究了基于FPGA 的SVPWM的实现方法。

根据其算法将SVPWM按功能划分为扇区计算模块、基本电压矢量作用时间计算模块、过调制控制模块、SVPWM时间生成模块、调制波生成模块和脉冲生成模块等六个子功能模块。

先对各个子模块进行设计、仿真、验证,再将整个系统组合起来进行仿真、验证,最后在设计的硬件平台上测试了PWM波形。

最后以电机为控制对象进行了开环变频试验,电机能够正常运行,且电机定子电流为正弦波,表明基于FPGA的SVPWM模块功能正确,达到了预期的目标。

本文利用FPGA实现SVPWM,开发周期短,可移植性好,能够以IP核的形式嵌入到其它系统中去,具有很强的应用价值..……基于FPGA 的SVPWM实现方法研究SVPWM 从交流电机角度出发,控制开关,形成PWM 波,使电机中产生的实际磁链矢量逼近跟踪定子磁链给定的理想圆型磁链。

这样它能明显减小逆变器输出电流的谐波成分及电动机的谐波损耗、降低脉动转矩。

并且其控制简单,数字化方便,电压利用率高,已经成为现在电流调速中的主流发展方向。

目前实现SVPWM 的算法是使用电机控制专用DSP,例如TI 公司的TMS320F2812 或AD 公司的ADMC 系列,但这些控制器只能产生6 路或12 路得PWM 信号,不能满足多轴控制的需要,如果控制多轴系统需要增加DSP 的数量,是结构复杂,成本提高。

svpwmvvvf开环

svpwmvvvf开环

基于SVPWM的vvvf开环控制异步电机斜坡加速启动仿真和传统的SPWM (正弦脉冲调制调制)相比,SVPWM (电压空间矢量脉宽调制)具有如下优点:①对系统中逆变器的直流母线电压利用率较前者提高了15%左右;②开关损耗较前者小;③电动机转速脉动及电流畸变较前者减小;④便于实现数字化控制。

本文在理论分析的基础上,应用Matlab/Simulink构建了基于SVPWM的开环控制异步电机斜坡加速启动仿真模型,并验证理论分析的结论。

1.SVPWM和vvvf转速开环异步电机调速基本原理1.1变压变频(VVVF)调速的基本控制方式原理在进行电机调速时,常须考虑的一个重要因素是:希望保持电机中每极磁通量 m 为额定值不变。

如果磁通太弱,没有充分利用电机的铁心,是一种浪费;如果过分增大磁通,又会使铁心饱和,从而导致过大的励磁电流,严重时会因绕组过热而损坏电机。

在交流异步电机中,磁通 m 由定子和转子磁势合成产生定子每相电动势:(1.1)式中:Eg —气隙磁通在定子每相中感应电动势的有效值,单位为V;f1—定子频率,单位为Hz;Ns—定子每相绕组串联匝数;kNs—基波绕组系数;m—每极气隙磁通量,单位为Wb。

由式(1)可知,只要控制好 Eg 和 f1 ,便可达到控制磁通m 的目的,对此,需要考虑基频(额定频率)以下和基频以上两种情况。

(1)基频以下调速: 恒压频比的控制方式由式(1)可知,要保持 m 不变,当频率 f1 从额定值 f1N 向下调节时,必须同时降低 Eg ,使常值即采用恒值电动势频率比的控制方式。

然而,绕组中的感应电动势是难以直接控制的,当电动势值较高时,可以忽略定子绕组的漏磁阻抗压降,而认为定子相电压Us ≈ Eg,则得,这是恒压频比的控制方式。

但是,在低频时 Us 和 Eg 都较小,定子阻抗压降所占的份量就比较显著,不再能忽略。

这时,需要人为地补偿电压 Uc ,以便近似地补偿定子压降,(2)基频以上调速:恒功率控制方式在基频以上调速时,频率应该从f1N向上升高,但定子电压Us 却不可能超过额定电压UsN ,最多只能保持Us = UsN ,这将迫使磁通与频率成反比地降低,相当于直流电机弱磁升速的情况.如果电机在不同转速时所带的负载都能使电流达到额定值,即都能在允许温升下长期运行,则转矩基本上随磁通变化,按照电力拖动原理,在基频以下,磁通恒定时转矩也恒定,属于“恒转矩调速”性质,而在基频以上,转速升高时转矩降低,基本上属于“恒功率调速”,如图1.5所示。

SVPWM控制算法详解

SVPWM控制算法详解

SVPWM控制算法详解SVPWM(Space Vector Pulse Width Modulation)是一种基于空间矢量的脉宽调制技术,适用于三相交流电机的控制。

通过调节电机的电压矢量,SVPWM可以实现精确的电机控制。

下面将详细介绍SVPWM控制算法的原理与实现。

SVPWM算法的原理是通过合理的控制电机的电压矢量,使得电机的转矩和速度可以按照设定值精确控制。

SVPWM根据当前电机的运行状态,选择合适的电压矢量进行控制,并且在控制周期内根据设定值不断调整电压矢量的大小和方向。

在空间矢量分解中,SVPWM将三相交流电源的电流分解为两个矢量:直流分量和交流分量。

直流分量表示电流的平均值,而交流分量表示电流的波动部分。

通过对直流分量和交流分量进行分解,SVPWM可以确定电流矢量的大小和方向。

在电压矢量计算中,SVPWM根据电机的状态和设定值,选择合适的电压矢量。

电压矢量有6种组合方式,分别表示正向和反向的60度和120度的电压矢量。

通过选择合适的电压矢量,SVPWM可以确定电机的电压大小和方向。

在脉宽调制中,SVPWM根据电压矢量的大小和方向,通过调节脉冲宽度比例控制电机的输出电压。

脉冲宽度比例是控制电机输出电压关键的参数,通过合理的调整脉冲宽度比例,SVPWM可以实现精确的电机控制。

以三相交流电机为例,SVPWM控制算法可以实现精确的电机转矩和速度控制。

通过选择合适的电压矢量,SVPWM可以实现电机的正反转和转速调节。

同时,SVPWM算法还可以提高电机的效率和性能。

总结起来,SVPWM控制算法是一种基于空间矢量的脉宽调制技术,通过控制电机的电压矢量,实现精确的电机控制。

SVPWM算法通过空间矢量分解、电压矢量计算和脉宽调制等步骤,确定电机的电压大小和方向。

通过合理的控制策略和数学运算,SVPWM可以实现精确的电机转矩和速度控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

采用空间矢量脉宽调制(SVPWM )的开环VVVF 调速系统的综合实训一、实验目的1、理解电压空间矢量脉宽调制(SVPWM )控制的基本原理。

2、熟悉MCKV 电机控制系统的CPU 模块、IPM 模块和机组各部分硬件模块,并确认工作正常。

3、了解SVPWM 变频器运行参数和特性。

二、实验内容:1、熟悉CCS 编程环境,并在CCS 下编译、下载、运行DSP 软件工程。

2、观察并记录定子磁链周期和频率,并分析他们之间的关系。

3、观测并记录启动时电机定子电流和电机速度波形)(t f i v =与)(t f n =;三、实验预习要求1、阅读并掌握三相交流异步电机VVVF 调速系统工作原理。

2、了解电压空间矢量脉宽调制(SVPWM )控制的基本原理。

3、阅读本次实验指导书和实验程序,写好实验预习报告。

4、在MATLAB/Simulinlk 环境中搭好仿真模型,结合本程序LEVEL1功能框图,完成电流速度双闭环系统交流异步电机矢量控制仿真。

四、实验原理当用三相平衡的正弦电压向交流电动机供电时,电动机的定子磁链空间矢量幅值恒定,并以恒速旋转,磁链矢量的运动轨迹形成圆形的空间旋转矢量(磁链圆)。

SVPWM 就是着眼于使形成的磁链轨迹跟踪由理想三相平衡正弦波电压源供电时所形成的基准磁链圆,使逆变电路能向交流电动机提供可变频电源,实现交流电动机的变频调速。

现在以实验系统中用的电压源型逆变器为例说明SVPWM 的工作原理。

三相逆变器由直流电源和6个开关元件( MOSFET) 组成。

图1是电压源型逆变器的示意图。

图1 电压源型逆变器示意图对于每个桥臂而言,它的上下开关元件不能同时打开,否则会因短路而烧毁元器件。

其中A 、B 、C 代表3 个桥臂的开关状态,当上桥臂开关元件为开而下桥臂开关元件为关时定义其状态为1 ,当下桥臂开关元件为开而上桥臂开关元件为关时定义其状态为0。

这样A 、B 、C 有000 、001 、010 、011 、100 、101 、110 、111共 8种状态。

逆变器每种开关状态对应不同的电压矢量,根据相位角不同分别命名为U 0(000)、U 1(100)、U 2(110)、U 3(010)、U 4(011)、U 5(001)、U 6(101)、U 7(111)如图2所示。

图2 基本电压空间矢量其中U 0(000)和U 7(111)称为零矢量,位于坐标的原点,其他的称为非零矢量,它们幅值相等,相邻的矢量之间相隔60°。

如果按照一定顺序选择这六个非零矢量的电压空间矢量进行输出,会形成正六边形的定子磁链,距离要求的圆形磁链还有很大差距,只有选择更多的非零矢量才会使磁链更接近圆形。

SVPWM 的关键在于用8个基本电压空间矢量的不同时间组合来逼近所给定的参考空间电压矢量。

在图3中对于给定的输出电压U ,用它所在扇区的一对相邻基本电压x U 和60 x U 来等效。

此外当逆变器单独输出零矢量时,电动机的定子磁链矢量是不动的。

根据这个特点,可以在载波周期内插入零矢量,调整角频率,从而达到变频目的。

图3 电压空间的线性组合根据正弦定理可以得到:⎪⎪⎩⎪⎪⎨⎧==-+0602001120sin sin 120sin )60sin(U U T T U U T T x PWMx PWM θθ又有U U T T U T T x PWM x PWM =++6021 得到⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧--==-=+21060201sin 3)60sin(3t t T T T U U T T U U T PWM PWM x PWM x θθ 式中PWM T 为载波周期;UU 的幅值可以由f U 曲线确定;x U 和60+x U 的幅值相同且恒为直流母线电压32V ;θ可以由输出正弦电压角频率w 和PWM nT 的乘积确定。

因此,当已知两相邻的基本电压空间矢量x U 和60+x U 后,就可以根据上式确定1T 、2T 、0T 。

五、实验流程图图1-1-1给出了实验程序功能框图:图1-1-1 实验一功能框图以下给出实验一中的控制参数及其调节范围EnableFlag : 0、1 启动控制位SpeedRef : -0.9~0.9 速度给定值六、实验设备1、DSPCPU组合板:Techv-28335+MCKV-INF2+MCKV-INF32、DSP仿真器及usb线3、MCKV DSP电机控制器4、三相交流异步电机机组5、PC机及电源电缆七、实验步骤在做该实验之前,请确保已经按照系统测试步骤和方法进行各步骤的运行,该实验具体调试操作步骤如下:1.将头文件“build.h”中的编译指令BUILDLEVEL设为“LEVEL1”,然后用“Project--Build”命令重新编译连接程序。

在“build.h”文件中第29行:#define BUILDLEVEL LEVEL1-------修改此处。

2.用“File--Load Program”菜单命令加载“ACI_2833X.out”文件到目标板,此时注意观察加载的文件“ACI_2833X.out”是否您刚才编译链接生成的文件,看一下文件的生成时间就知道了,如果所有源文件都没有修改,此时“ACI_2833X.out”的生成时间不会变化;如果想证实源文件编译是否执行,可以在主程序中随便修改一点注释内容,那么编译的时候就肯定会生成新时间的输出文件。

3.点击“Debug--Real time Mode”选择实时模式,此时出现一个对话框,选择“是(Y)”,再点击“Debug--Run”或者点击左侧运行图标运行程序,此时程序在实时运行模式下运行。

4.在“Watch window”窗口中左键点击“Build1”标签并在空白处点击右键,选择连续刷新模式“Continuous Refresh”,此时应能观察到“BackTicker”变量在不断变化,说明主程序已经运行,5.在控制器面板上进行电机选择,选择三相交流异步电机显示“正确”后,在主菜单下按两次向下键并确认后进入状态页面,打开主电源(按钮:电源)。

因为主电路中有3300uf的大电容,所以需要较长的充电时间,为了避免过大的充电电流,主电路中有NTC负温度系数的热敏电阻,所以一定要等控制器的液晶上显示“电源:开启”,才能进行下一步的操作,并且每次打开主电源距离上次关闭主电源需要有5分钟以上的间隔时间。

6.在“Watch window”窗口中双击变量“EnableFlag”右侧的“Value“值并修改为1后回车,此时应能观察到变量“IsrTicker”也在不断变化,说明主中断服务程序已经正常运行。

而此时电机应该转动,并稳定在740转/分左右的速度上,说明控制系统PWM输出部分和IPM逆变部分硬件以及机组和连线都是正确的,如果电机不转,请检查INF2电路板上的LED2指示灯是否熄灭,如果熄灭说明产生了功率保护中断,可以更换DSPCPU板测试,也可更换机组测试,如果现象依旧则需要返修。

如果电机运转了,但是控制器上没有速度显示,请检查DSPCPU电路板下面那块INF2电路板上的JP1拨码开关是否拨向左边。

7.分别右键点击图形显示窗口“Channel1&2”、“Channel3&4”,选择连续刷新模式“Continuous Refresh”,观察rg1.Out、Ta、Tb以及Tc 的波形,如图1-1-3和图1-1-4所示。

rg1.Out是给定磁链斜坡函数的输出,它是以360度为PU基值的Q15格式数据表示的,将竖线光标移至第一个图形的零点处,注意观察图形窗口“Channel1&2”左下角的第一个坐标值的第一个值是时间,单位为ms,我们可以看到给定的磁链周期为40ms,这样可以计算出给定磁链的频率为25Hz,这和我们设定的SpeedRef=0.5是对应的,设定为1时,对应频率为50Hz,周期应为20ms。

Ta、Tb、Tc表示的是三组PWM控制信号在每个调制周期中的占空比,也是Q15格式的数据。

将光标移至Channel2的第一个马鞍波的波峰中点,读出时间坐标为14.8ms,将光标移至Channel3的第一个马鞍波的波峰中点,读出时间坐标为28.2ms,那么得出结论:Ta相位超前Tb=(28.2-14.8)/40*360=120度。

如图1-1-5和图1-1-6所示。

设定speedref为不同值,完成表1-1-1。

8.改变SpeedRef的值,观察波形的周期值是否和设定值对应。

同时VdTesting、VqTesting的值也跟着变化,此时可以观测图形显示窗口波形幅值的变化。

变量VdTesting、VqTesting相当于IPARK逆变换的输入值,在程序中做了一个函数,随着SpeedRef的值变化而变化,所以不能修改。

根据speedref的值完成表1-1-2。

9.分别右键点击图形显示窗口“Channel1&2”、“Channel3&4”,取消连续刷新模式“Continuous Refresh”,点击“Debug--Halt”,再点击“Debug--Real time Mode”,最后点击“Debug--Reset CPU”,“Debug—Restart ”,退出实时运行模式,并停止程序运行。

10.如果继续实验,请转实验二。

否则请关闭控制器的功率部分主电源(按下电源键),然后关闭CCS软件退出程序,关闭控制电源。

图1-1-3 rg1.out和Ta波形图1-1-4 Tb和Tc波形图1-1-5 rg1.out和Ta波形图1-1-6 Tb和Tc波形实验报告:1、分析实验结果,并根据表1-1-1的测试结果,解释电机速度设定参考值和电机实际运行速度之间的差异是怎么产生的。

2、阅读实验程序,理解IPARK和SVPWM软件模块的工作原理。

绘制出IPARK和SVPWM模块的详细软件流程图。

3、读懂LEVEL1实验程序,并给出LEVEL1程序流程图。

4、总结实验经验,回答本实验中提出的问题,并整理实验报告。

附录:/*==================================================================== =================File name: IPARK.C (IQ version)Originator: Digital Control Systems GroupTexas InstrumentsDsscription: Inverse Park Transformation====================================================================== ===============History:-------------------------------------------------------------------------------------04-15-2005 Version 3.20-------------------------------------------------------------------------------------*/#include "IQmathLib.h" // Include header for IQmath library// Don't forget to set a proper GLOBAL_Q in "IQmathLib.h" file#include "dmctype.h"#include "ipark.h"void ipark_calc(IPARK *v){_iq Cosine,Sine;// Using look-up IQ sine tableSine = _IQsinPU(v->Angle);Cosine = _IQcosPU(v->Angle);v->Alpha = _IQmpy(v->Ds,Cosine) - _IQmpy(v->Qs,Sine);v->Beta = _IQmpy(v->Qs,Cosine) + _IQmpy(v->Ds,Sine);}/*==================================================================== =================File name: SVGEN_DQ.C (IQ version)Originator: Digital Control Systems GroupTexas InstrumentsDescription: Space-vector PWM generation based on d-q components====================================================================== ===============History:-------------------------------------------------------------------------------------04-15-2005 Version 3.20-------------------------------------------------------------------------------------*/#include "IQmathLib.h" // Include header for IQmath library// Don't forget to set a proper GLOBAL_Q in "IQmathLib.h" file#include "dmctype.h"#include "svgen_dq.h"float f_t1,f_t2;void svgendq_calc(SVGENDQ *v){_iq Va,Vb,Vc,t1,t2;Uint32 Sector = 0; // Sector is treated as Q0 - independently with global Q// Inverse clarke transformationV a = v->Ubeta;Vb = _IQmpy(_IQ(-0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualpha); // 0.8660254 = sqrt(3)/2Vc = _IQmpy(_IQ(-0.5),v->Ubeta) - _IQmpy(_IQ(0.8660254),v->Ualpha); // 0.8660254 = sqrt(3)/2// 60 degree Sector determinationif (Va>_IQ(0))Sector = 1;if (Vb>_IQ(0))Sector = Sector + 2;if (Vc>_IQ(0))Sector = Sector + 4;// X,Y,Z (Va,Vb,Vc) calculationsV a = v->Ubeta; // X = VaVb = _IQmpy(_IQ(0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualpha); // Y = VbVc = _IQmpy(_IQ(0.5),v->Ubeta) - _IQmpy(_IQ(0.8660254),v->Ualpha); // Z = Vcif (Sector==0) // Sector 0: this is special case for (Ualpha,Ubeta) = (0,0){v->Ta = _IQ(0.5);v->Tb = _IQ(0.5);v->Tc = _IQ(0.5);}if (Sector==1) // Sector 1: t1=Z and t2=Y (abc ---> Tb,Ta,Tc){t1 = Vc;t2 = Vb;v->Tb = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tbon = (1-t1-t2)/2v->Ta = v->Tb+t1; // taon = tbon+t1v->Tc = v->Ta+t2; // tcon = taon+t2 }else if (Sector==2) // Sector 2: t1=Y and t2=-X (abc ---> Ta,Tc,Tb){t1 = Vb;t2 = -Va;v->Ta = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // taon = (1-t1-t2)/2v->Tc = v->Ta+t1; // tcon = taon+t1v->Tb = v->Tc+t2; // tbon = tcon+t2 }else if (Sector==3) // Sector 3: t1=-Z and t2=X (abc ---> Ta,Tb,Tc){t1 = -Vc;t2 = Va;v->Ta = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // taon = (1-t1-t2)/2v->Tb = v->Ta+t1; // tbon = taon+t1v->Tc = v->Tb+t2; // tcon = tbon+t2 }else if (Sector==4) // Sector 4: t1=-X and t2=Z (abc ---> Tc,Tb,Ta){t1 = -Va;t2 = Vc;v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tcon = (1-t1-t2)/2v->Tb = v->Tc+t1; // tbon = tcon+t1v->Ta = v->Tb+t2; // taon = tbon+t2 }else if (Sector==5) // Sector 5: t1=X and t2=-Y (abc ---> Tb,Tc,Ta){t1 = Va;t2 = -Vb;v->Tb = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tbon = (1-t1-t2)/2v->Tc = v->Tb+t1; // tcon = tbon+t1v->Ta = v->Tc+t2; // taon = tcon+t2 }else if (Sector==6) // Sector 6: t1=-Y and t2=-Z (abc ---> Tc,Ta,Tb){t1 = -Vb;t2 = -Vc;v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tcon = (1-t1-t2)/2v->Ta = v->Tc+t1; // taon = tcon+t1v->Tb = v->Ta+t2; // tbon = taon+t2 }// Convert the unsigned GLOBAL_Q format (ranged (0,1)) -> signed GLOBAL_Q format (ranged(-1,1))// v->Ta = _IQmpy(_IQ(2.0),(v->Ta-_IQ(0.5))); // v->Tb = _IQmpy(_IQ(2.0),(v->Tb-_IQ(0.5))); // v->Tc = _IQmpy(_IQ(2.0),(v->Tc-_IQ(0.5)));}。

相关文档
最新文档