空间矢量脉宽调制(SVPWM)的开环
- 格式:doc
- 大小:346.50 KB
- 文档页数:10
《空间矢量脉宽调制方法的研究》篇一一、引言随着电力电子技术的发展,空间矢量脉宽调制(SVPWM)技术已成为现代电机控制、电力转换等领域的核心技术之一。
SVPWM技术以其高效率、低谐波失真等优点,在电力电子系统中得到了广泛应用。
本文旨在研究空间矢量脉宽调制方法,探讨其原理、应用及优化策略,以期为相关领域的研究与应用提供参考。
二、空间矢量脉宽调制原理空间矢量脉宽调制(SVPWM)是一种基于空间矢量的调制方法,通过控制逆变器开关器件的通断,实现对电机等设备的控制。
SVPWM技术将电机定子电压空间划分为多个扇区,根据各扇区的电压矢量关系,生成相应的开关序列,以实现电机的高效控制。
SVPWM技术的原理主要包括以下步骤:1. 扇区判断:根据电机定子电压的空间位置,将整个空间划分为多个扇区。
2. 电压矢量合成:根据各扇区的电压矢量关系,计算合成所需的电压矢量。
3. 开关序列生成:根据电压矢量的需求,生成相应的开关序列,控制逆变器开关器件的通断。
三、SVPWM方法的应用SVPWM技术广泛应用于电机控制、电力转换等领域。
在电机控制中,SVPWM技术能够实现对电机的精确控制,提高电机的运行效率。
在电力转换中,SVPWM技术能够降低谐波失真,提高电能质量。
此外,SVPWM技术还具有较高的灵活性,可根据不同需求进行定制化设计。
四、SVPWM方法的优化策略为进一步提高SVPWM技术的性能,研究者们提出了多种优化策略。
其中包括:1. 矢量作用时间的优化:通过调整各矢量的作用时间,优化输出电压的波形质量。
2. 开关损耗的降低:通过降低开关频率或采用软开关技术,减少开关损耗。
3. 算法的改进:通过改进SVPWM算法,提高其运算速度和精度。
4. 多电平SVPWM技术:将传统SVPWM技术拓展至多电平系统,提高系统的电压等级和功率等级。
五、结论本文研究了空间矢量脉宽调制方法,探讨了其原理、应用及优化策略。
SVPWM技术以其高效率、低谐波失真等优点,在电力电子系统中得到了广泛应用。
基于SVPWM的异步电机变频调速系统的研究异步电机变频调速系统是现代电力系统中常用的一种调速方法,其通过改变电机的供电频率达到调节电机转速的目的。
随着电力电子技术的发展,基于空间矢量脉宽调制(SVPWM)的异步电机变频调速系统逐渐成为研究的热点。
本文将从SVPWM工作原理、SVPWM调速系统的基本结构和控制策略等方面对基于SVPWM的异步电机变频调速系统展开详细研究。
首先,介绍SVPWM的工作原理。
SVPWM是一种综合利用直流信号和交流信号来控制逆变器输出的方法,其通过合理的调节直流信号和交流信号的幅值和相位来实现对逆变器输出电压的控制。
SVPWM可以有效地提高电机的工作效率和调速响应速度,同时减小电机的谐波失真。
其次,介绍SVPWM调速系统的基本结构。
SVPWM调速系统主要由电源模块、逆变器模块、电机模块和控制模块组成。
电源模块负责提供电源电压,逆变器模块将直流电压转换为交流电压供给电机,电机模块将交流电压转换为机械能,控制模块对整个系统进行调节和控制。
然后,详细介绍SVPWM调速系统的控制策略。
SVPWM调速系统的控制策略可以分为开环控制和闭环控制两种方式。
对于开环控制,控制算法主要基于电机的数学模型,通过计算电机的工作状态和控制信号来实现对电机转速的调节。
而对于闭环控制,则需要实时采集电机的转速信息,通过反馈控制来实现对电机转速的精确调节。
最后,对基于SVPWM的异步电机变频调速系统的未来发展进行展望。
随着电力电子技术的进一步发展,基于SVPWM的异步电机变频调速系统将进一步提高其控制精度和调速性能,为各个工业领域提供更加可靠和高效的动力系统。
综上所述,基于SVPWM的异步电机变频调速系统是一种非常有潜力的调速方法。
通过深入研究SVPWM的工作原理、调速系统的基本结构和控制策略,可以更好地实现对异步电机的精确调速控制。
同时,基于SVPWM的异步电机变频调速系统也将在未来的发展中得到进一步的完善和应用。
空间⽮量脉宽调制(SVPWM)的开环采⽤空间⽮量脉宽调制(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种状态。
空间矢量脉宽调制技术(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 的数量,是结构复杂,成本提高。
基于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控制法1.3.1 电压空间矢量SVPWM技术背景我们先来回顾一下交流异步电机的工作机理:三相平衡的交流电压在电机定子绕组上产生三相平衡的交流电流;三相平衡的交流电流在定子内腔产生一个幅值恒定的磁链,该磁链在定子内腔旋转,旋转的角速度与电源(电流)的角速度相同;旋转的轨迹形成一个圆形的空间旋转磁场;旋转磁场通过电磁力矩带动转子旋转,在电动机状态下,转子旋转的角速度低于旋转磁场的角速度:转差,转差提交流异步电机产生力矩的根本原因。
前面所讨论的SPWM技术是从电源的角度出发,来合成电机的激励源。
由交流异步电机的工作机理我们想到:可不可以直接从动力源出发,来直接合成一个圆形的旋转磁场呢?如果可以,这样的控制方法显然更直接,效果应更好。
如何直接合成一个圆形的旋转磁场呢?对于交流电机,我们注意到以下的事实:电机定子是固定的,不旋转的;施加在定子上的电压是三相平衡的交流电:幅度相同,相位上彼此偏差120º;自然地,我们想到:定义异步电机的三相定子绕组上的电压为平面上的一静止坐标系的三个轴,电机的相电压在各自的轴向上依正弦规律变化。
见图2-1-10。
图2-1-10:相电压空间矢量图由图2-1-10知,三个电压轴向量不同线性组合可以合成该平面上的任一个电压矢量u,即:ππ34332201***j j j eA eA eA ++=当三个电压轴向量对应于三相平衡交流电时,即:t U A m ωsin 1=,)32sin(2πω+=t U A m ,)34sin(3πω+=t U A m ,不难得到,所合成的电压矢量为:)sin (cos 23t j t U m ωω+=jwtm e U 23= 式(2-3-1)由式(2-3-2)知,所合成的电压空间矢量具有以下特征:电压矢量模(幅值)恒定;电压矢量绕中性点旋转,旋转的轨迹是一个圆; 电压矢量绕中性点匀速旋转,旋转的角速度为ω; 电压矢量旋转的角速度与交流电源(电流)的角速度相同。
SVPWM是什么(2012-05-09 15:41:55)转载▼SVPWM(Space Vector Pulse Width Modulation)空间矢量脉宽调制,它是以三相对称正弦波电压供电时,三相对称电动机定子理想磁链圆为参考标准,以三相逆变器不同开关模式做切换,从而形成PWM波,以所形成的实际的磁链矢量来追踪其准确的磁链圆。
传统的SPWM是从电源的角度出发,以形成一个可调频调压的正弦波电源,而SVPWM 是将逆变系统和电机看成一个系统来考虑,模型比较简单,以便于微处理器实时控制。
实际上就是得用六个有效电压矢量以及两个零矢量及其作用时间,去逼近理想的连续的磁链圆。
特点:1.每个小区间内虽然有多次开关切换,但是每次切换只涉及一个器件,所以开关损耗小2.利用电压空间矢量直接生成PWM波,计算简单3.逆变器输出线电压基波最大值为直流侧电压,比一般逆变器输出电压高15%,也就是说电压利用率高开环控制异步电机程序(基于TMS320LF2407A)的作为一个刚毕业的硕士软件工程师1.一个月的时间用于学习电机控制的基本理论(3.31-4.30)2.两周的时间实现SVPWM开环控制电机的正转,反转,加速,减速(5.1-5.16)开环SVPWM控制电机旋转的例程;===================================================================== =====*.include "F2407.h" ;the header file (包含头文件)该头文件是寄存器定义文件.def _c_int0,T1_INT,PINTA ;定义符号:在当前模块中定义,并可在其它模块中使用.sect ".vectors" ;定义自定义段矢量表INT0 B _c_int0 ; Reset Vector 其中B是关键字代表跳转的意思,B左边的也是关键字,是固定的有些地方,定义矢量表时的第一句是RSVECT B START,可能是不同的DSP支持不同的定义吧,朱苛说得也不是很清楚,该点存疑,B右边的是中断程序入口标识。
SVPWM程序流程SVPWM(Space Vector Pulse Width Modulation,空间矢量脉宽调制)是一种针对三相电力变频器的调制算法,用于控制电机的速度和位置。
它向电机提供的是一个平滑的、恒定的输出,根据需要,还可以提供更高的效率和低噪声。
下面是SVPWM的程序流程。
1.首先,设定一个控制周期Tp,通常为几微秒至几毫秒。
控制周期是指电机控制器对电机进行一次新的计算和控制的时间。
2.初始化参数。
在每个控制周期开始时,需要初始化一些参数,例如注入的电流、电压、电机状态参数等。
3.设置参考矢量。
根据所需的电机速度和位置,设置参考矢量。
这些参考矢量确定了电机所需的电流矢量。
4.计算矢量时序。
根据设置的参考矢量,计算出每个矢量的持续时间。
每个电流矢量会在一段时间内保持不变。
5.计算电流波形。
通过电流矢量的持续时间和幅值,计算出每个电流矢量的波形。
波形通常是一个三相正弦波形。
6.选择最佳矢量。
根据所计算出的电流波形和每个矢量的持续时间,选择最佳的电机矢量。
最佳矢量是指使电流矢量与参考矢量尽可能接近的矢量。
7.计算PWM信号。
根据选择的最佳矢量,计算出每个相位的PWM信号。
PWM信号通常是一个方波信号,其占空比由最佳矢量的持续时间决定。
8.更新电机状态。
根据计算出的PWM信号,更新电机状态参数,例如电机速度、位置、电流等。
9.输出PWM信号。
将计算出的PWM信号输出到电机驱动器中,驱动器通过PWM信号控制电机转速和位置。
10.延时一段时间。
由于控制循环是一个周期性的过程,为了控制的稳定性和准确性,需要在每个控制周期之间延时一段时间。
11.重复上述步骤。
循环执行上述步骤,直到需要改变电机速度和位置或停止电机工作。
总结:SVPWM程序流程是一个经典的控制算法流程,通过对电机的控制周期内参数的初始化、参考矢量的设置、计算矢量时序和波形、选择最佳矢量、计算PWM信号、更新电机状态等一系列步骤,最终实现对电机速度和位置的控制。
采用空间矢量脉宽调制(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 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 transformationVa = 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) calculationsVa = v->Ubeta; // X = Va Vb = _IQmpy(_IQ(0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualpha); // Y = Vb Vc = _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)/2 v->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)/2 v->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)/2 v->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)/2 v->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)/2 v->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)));}。