SVPWM算法程序_第1页
SVPWM算法程序_第2页
SVPWM算法程序_第3页
SVPWM算法程序_第4页
SVPWM算法程序_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 第6章 空间矢量脉宽调制技术例1、CLARK 变换的DSP 实现 图 CLARK 变换实现波形图/*- CLARKE 变换相关变量定义-*/ typedef struct float32 As; / 输入:A 相定子电流float32 Bs; / 输入:B 相定子电流float32 Alpha; / 输出:静止坐标系d 轴定子电流float32 Beta; / 输出:静止坐标系q 轴定子电流void (*calc(; / 计算函数指针 CLARKE; typedef CLARKE *CLARKE_handle;/*- 定义CLARKE 变换初始化参数-*/ #define CLARKE_D

2、EFAULTS 0, 0, 0, 0, (void (*(Uint32clarke_calc /*- CLARKE 变换函数原型CLARKE.C-*/ void clarke_calc(CLARKE_handle;#include "dmctype.h"2 #include "clarke.h"void clarke_calc(CLARKE *vv->Alpha = v->As;v->Beta = (v->As + 2*v->Bs*0.57735026918963; / 1/sqrt(3 = 0.57735026918963

3、例2、PARK 变换的DSP 实现 图 PARK 变换DSP 实现坐标映射/*-PARK 变换相关变量定义-*/ typedef struct float32 Alpha;/ 输入:静止坐标系d 轴定子变量loat32 Beta; / 输入:静止坐标系q 轴定子变量float32 Angle; / 输入:转子角度(弧度)float32 Ds; / 输出:旋转d 轴定子变量(M 轴)float32 Qs; / 输出:旋转q 轴定子变量(T 轴)void (*calc(; / 函数指针 PARK;typedef PARK *PARK_handle;/*- PARK 变换变量初始化参数-*/#def

4、ine PARK_DEFAULTS 0, 0, 0, 3 0, 0, (void (*(Uint32park_calc /*- PARK 函数原型-*/ void park_calc(PARK_handle;#include "dmctype.h"#include "park.h"extern float32 sin_tab;void park_calc(PARK *vfloat32 Cosine,Sine;/ 采用查表法/ (PI/2/(2*PI = 0.25/ (PI/2/(2*PI*256 = 0.25*256 = 64/ (PI/2-2*PI/(

5、2*PI = -0.75/ (PI/2-2*PI/(2*PI*256 = -0.75*256 = -192/ 查表发求解正弦if (v->Angle+0.25 > 1.0Sine = sin_tab(int16(v->Angle*256;Cosine = sin_tab(int16(v->Angle*256 - 192;elseSine = sin_tab(int16(v->Angle*256;Cosine = sin_tab(int16(v->Angle*256 + 64;v->Ds = v->Alpha*Cosine + v->Beta

6、*Sine;v->Qs = v->Beta*Cosine - v->Alpha*Sine; 4图6.7 PARK 变换坐标映射图/*- PARK 逆变换参数定义-*/typedef struct float ds;/* 输出:定子参考坐标系d-轴变量 */float qs; /* 输出:定子参考坐标系q-轴变量 */float ang; /* 输入:转子转动角度 (rad */float de; /* 输入:旋转d-轴定子变量 */float qe; /* 输入:旋转q-轴定子变量 */void (*calc(; /* 计算函数指针 */ IPARK;typedef IPAR

7、K *IPARK_handle;/*- Default initalizer for the IPARK object.-*/ #define IPARK_DEFAULTS 0, 0, 0, 0, 0, (void (*(longipark_calc /*- 逆变换函数IPARK.C-*/ void ipark_calc(IPARK_handle;/*-5 文件名称:: IPARK.C-*/ #include "ipark.h"extern float sin_tab;void ipark_calc(IPARK *vfloat cos_ang,sin_ang;/*采用查表法

8、计算正弦角度 */* (PI/2/(2*PI = 0.25 */* (PI/2/(2*PI*256 = 0.25*256 = 64 */* (PI/2-2*PI/(2*PI = -0.75 */* (PI/2-2*PI/(2*PI*256 = -0.75*256 = -192 */if (v->ang+0.25 > 1sin_ang = sin_tab(int(v->ang*256;cos_ang = sin_tab(int(v->ang*256 - 192;elsesin_ang = sin_tab(int(v->ang*256;cos_ang = sin_ta

9、b(int(v->ang*256 + 64;v->ds = v->de*cos_ang - v->qe*sin_ang;v->qs = v->qe*cos_ang + v->de*sin_ang;例3、空间矢量的算法程序/*-空间矢量的产生: SVGEN_DQ.C (IQ version-*/#include "IQmathLib.h" / Include header for IQmath library/ Don't forget to set a proper GLOBAL_Q in "IQmathLib.h

10、" file#include "dmctype.h"#include "svgen_dq.h"void svgendq_calc(SVGENDQ *v_iq Va,Vb,Vc,t1,t2; Uint32 Sector = 0; / Sector is treated as Q0 - independently with global Q / CLARKE 逆变换 Va = v->Ubeta; Vb = _IQmpy(_IQ(-0.5,v->Ubeta + _IQmpy(_IQ(0.8660254,v->Ualpha; Vc =

11、 _IQmpy(_IQ(-0.5,v->Ubeta - _IQmpy(_IQ(0.8660254,v->Ualpha; / 0.8660254 = sqrt(3/2 / 60o 扇区确定 if (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 计算 Va = v->Ubeta; Vb = _IQmpy(_IQ(0.5,v->Ubeta + _IQmpy(_IQ(0.8660254,v-&g

12、t;Ualpha; Vc = _IQmpy(_IQ(0.5,v->Ubeta - _IQmpy(_IQ(0.8660254,v->Ualpha; / X = Va / Y = Vb / Z = Vc if (Sector=0 / Sector 0: 当( U , U = (0,0 v->Ta = _IQ(0.5; v->Tb = _IQ(0.5; v->Tc = _IQ(0.5; if (Sector=1 t1 = Vc; / Sector 1: t1=Z 和 t2=Y (abc -> Tb,Ta,Tc 6 t2 = Vb; v->Tb = _IQmp

13、y(_IQ(0.5,(_IQ(1-t1-t2; v->Ta = v->Tb+t1; v->Tc = v->Ta+t2; else if (Sector=2 t1 = Vb; t2 = -Va; v->Ta = _IQmpy(_IQ(0.5,(_IQ(1-t1-t2; v->Tc = v->Ta+t1; v->Tb = v->Tc+t2; else if (Sector=3 t1 = -Vc; t2 = Va; v->Ta = _IQmpy(_IQ(0.5,(_IQ(1-t1-t2; v->Tb = v->Ta+t1; v-

14、>Tc = v->Tb+t2; else if (Sector=4 t1 = -Va; t2 = Vc; v->Tc = _IQmpy(_IQ(0.5,(_IQ(1-t1-t2; v->Tb = v->Tc+t1; v->Ta = v->Tb+t2; else if (Sector=5 t1 = Va; / Sector 5: t1=X 和 t2=-Y (abc -> Tb,Tc,Ta / tcon = (1-t1-t2/2 / tbon = tcon+t1 / taon = tbon+t2 / Sector 4: t1=-X 和 t2=Z (a

15、bc -> Tc,Tb,Ta / taon = (1-t1-t2/2 / tbon = taon+t1 / tcon = tbon+t2 / Sector 3: t1=-Z 和 t2=X (abc -> Ta,Tb,Tc / taon = (1-t1-t2/2 / tcon = taon+t1 / tbon = tcon+t2 / Sector 2: t1=Y 和 t2=-X (abc -> Ta,Tc,Tb / tbon = (1-t1-t2/2 / taon = tbon+t1 / tcon = taon+t2 7 t2 = -Vb; v->Tb = _IQmpy(

16、_IQ(0.5,(_IQ(1-t1-t2; v->Tc = v->Tb+t1; v->Ta = v->Tc+t2; else if (Sector=6 t1 = -Vb; t2 = -Vc; v->Tc = _IQmpy(_IQ(0.5,(_IQ(1-t1-t2; v->Ta = v->Tc+t1; v->Tb = v->Ta+t2; / tcon = (1-t1-t2/2 / taon = tcon+t1 / tbon = taon+t2 / Sector 6: t1=-Y 和 t2=-Z (abc -> Tc,Ta,Tb / tbon = (1-t1-t2/2 / tcon = tbon

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论