三相并网(一)——坐标变换

本文详细介绍了三相静止坐标系(ABC)与两相旋转坐标系(αβ)之间的3s/2r变换,包括Clarck变换和Park变换。通过C语言代码解析,帮助读者理解变换过程,并探讨了C语言中typedef、结构体以及函数指针的用法。同时,文章展示了如何在DSP系统中应用这些知识,以实现逆变器并网控制。
摘要由CSDN通过智能技术生成


前言

坐标变换作为实现逆变器并网运行的第一步,实现三相静止坐标系(ABC坐标系)与两相旋转坐标系(αβ坐标系 )变换,即为通常所说的3s/2r变换。相关的代码在网上已经能够一搜一大把,而本博文的创新点在于对其中的代码进行解析,从而为读懂代码节约时间,以及最后全文完成整个系统的控制(DSP+FPGA)。

C语言实现

/*
 * c_t.h
 *coordinate transformation
 *Created on: 2021年03月13日
 *Author: Arvin
*/

#ifndef USER_c_t_H_
#define USER_c_t_H_
#include "C28x_FPU_FastRTS.h"

typedef struct{
   
	float32 As;
	float32 Bs;
	float32 Cs;
	float32 Theta;
	float32 Alpha;	//2s坐标系上的α轴分量
	float32 Beta;	//2s坐标系上的β轴分量
	float32 Dr;		//输出:2r坐标系上的d轴分量
	float32 Qr;		//输出:2r坐标系上的q轴分量
	void (*calc)();
} c_t;

typedef c_t * c_t_handle;

/*结构体初始化*/
#define PARK_DEFAULTS { 0,0,\
                    0,0,\
                    0,0,\
                    0,0,\
                    (void(*)(Uint32))c_t_calc}
/*坐标变换函数声明*/
void ct_calc(c_t_handle);

#endif /* USER_c_t_H_ */
/*
 * c_t.c
 *coordinate transformation
 *Created on: 2021年03月13日
 *Author: Arvin
*/
#include "DSP2833x_Project.h"
#include "C28x_FPU_FastRTS.h"
#include <math.h>
#include "c_t.h"

/*坐标变换函数定义*/
void ct_calc(c_t * p)
{
   
    //sqrt(2/3)=0.8164965809; sqrt(3)/2=0.8660254038
    
    //clark变换
    p->Alpha=0.8164965809*(p->As-p->Bs*0.5-p->Cs*0.5);
    p->Beta=<
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值