资源简介

三相PWM整流,程序包含矢量控制、前馈解耦、PI处理

资源截图

代码片段和文件信息

//======================================================
// 需要更改:UAB、U0的放大倍数“Uo_suobi“\“UAB_suobi“
// GpioDataRegs.GPADAT.bit.GPIO1 :三相控制子程序运行时间测试
// GpioDataRegs.GPADAT.bit.GPIO0 :ACD中断函数运行时间测试
// GpioDataRegs.GPADAT.bit.GPIO2   :adc_lvbo时间://PI函数运行时间测试
// GpioDataRegs.GPADAT.bit.GPIO3 : 进入中断time0的时间
//======================================================
#include “DSP28x_Project.h“     // Device Headerfile and Examples Include File
#include “math.h“
#include “IQmathLib.h“
#include “string.h“


//定义变量(装载或运行的起始地址)
// These are defined by the linker (see F2808.cmd)
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;
extern Uint16 RamfuncsLoadSize;

//把要拷贝到RAM里的函数(...)定义到段ramfuncs
#pragma CODE_SECTION(ISRTimer0 “ramfuncs“);
#pragma CODE_SECTION(adc_isr “ramfuncs“);
#pragma CODE_SECTION(ISRePWM1 “ramfuncs“);
#pragma CODE_SECTION(PI_ctr “ramfuncs“);
#pragma CODE_SECTION(ISRCap2 “ramfuncs“);
#pragma CODE_SECTION(threephase_ctr “ramfuncs“);
#pragma CODE_SECTION(Temp_protect “ramfuncs“);
#pragma CODE_SECTION(sequence “ramfuncs“);

void InitFlash(void);

//---------------------------------------------
// 全局变量
//---------------------------------------------
int   control_chose = 1 ;//1:滞环控制    0:前馈解耦
int   CAP2_n;//记录第几次进入cap,当为2时表示可以进行PWM输出
int   Temp_g;
int     Time_period;
int     Time0_period;
//------800V时的电压采样倍数
#define   Uo_suobi      0.2014652015  //Uo_suobi  为U0_input 的通过运放的缩小比例 Ruor=64.3k  2.5V/0V---2.5V0V
#define  UAB_suobi_ka  0.1506959707  //UAB实际 = U0_input*UAB_suobi_ka+UAB_suobi_kb  Rabr =83.9k
#define   UAB_suobi_kb  -261.8  //2.4-99V/0V---2.464V/1.241V

#define   Ia_suobi_ka   0.060591  //    类上
#define   Ia_suobi_kb   -99.24807
#define   Ib_suobi_ka   0.0607738   //    类上
#define   Ib_suobi_kb   -99.84911
#define   Ic_suobi_ka   0.0620848   //    类上
#define   Ic_suobi_kb   -101.8489933
//--------电流电压采样保存
Uint16    IA_nbuf[24];
Uint16    IB_nbuf[24];
Uint16    IC_nbuf[24];
Uint16    UAB_nbuf[24];
Uint16    Uo_nbuf[24];
Uint16    AD_n = 1; //第一次进AD中断为1; AD采样几次   5次结束则TD = 1;
Uint16   IA_buf;
Uint16    IB_buf;
Uint16    IC_buf;
Uint16  UAB_buf;
Uint16  Uo_buf;
float   Ia_input;
float   Ib_input;
float   Ic_input;
float    UAB_input;
float   Uo_input;
float     IA[210];
float     IB[210];
float     IC[210];
float     Uo[210];
float     UAB[210];
//----------------PI调节
float       ekek1ek2duk;
float     pi_out_reg pi_i_reg e_regup_reg;

#define ki   5 //积分参数
#define  kp   0.5  // 比例参数
#define  kd   0   // 微风参数
//----------------threephase
float32   SinA;  //交流侧三相电压相位正弦值
float32   SinB;
float32   SinC;
float32   Sin[210];
int      du_nbuf;//012...209
//-----------PWM定义
Uint32   EPwm1_TBPRD_Value;
Uint32   EPwm1_CMPA_Value;
Uint32   EPwm1_CMPB_Value;
Uint32   EPwm2_TBPRD_Value;
Uint32   EPwm2_CMPA_Value;
Uint32   EPwm2_CMPB_Value;
Uint32   EPwm3_TBPRD_Value;
Uint32   EPwm3_CMPA_Value

评论

共有 条评论