版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区域经理用工合同范本
- 合伙买挖机没协议合同
- 代建协议如何解约合同
- 免税汽车销售合同范本
- 合伙养殖蛋鸡合同范本
- 关于增补保安合同范本
- 合同未到期转租协议书
- 厂区道路工程合同范本
- 养猪疫苗采购合同范本
- 合伙协议可以解除合同
- 假体周围骨折课件
- 建筑工程施工安全与技术管理相关知识试卷
- 2025年高等教育工学类自考-02382管理信息系统历年参考题库含答案解析(5套典型题)
- 2025年人教版新教材数学三年级上册教学计划(含进度表)
- 2025年搅拌站员工技能考试题库
- 医院移动护理系统
- 初中道德与法治名师讲座
- 急性胆源性胰腺炎护理查房
- 《血管内导管相关性血流感染预防与诊治指南(2025)》解读 4
- 法布里病护理查房
- 人教版-物理-中考专题复习-电路故障分析-学案有答案
评论
0/150
提交评论