标题:
无死区判断产生SVPWM波的Psim仿真实现源码与资料下载
[打印本页]
作者:
caicaiya123
时间:
2018-4-3 15:17
标题:
无死区判断产生SVPWM波的Psim仿真实现源码与资料下载
这是无死区判断产生SVPWM波的Psim仿真实现
0.png
(49.19 KB, 下载次数: 35)
下载附件
2018-4-3 18:41 上传
新型无扇区空间矢量脉宽调制算法:
0.jpg
(118.1 KB, 下载次数: 30)
下载附件
2018-4-3 18:42 上传
单片机源程序如下:
#include<stdio.h>
#include<math.h>
__declspec(dllexport) void simuser (t, delt, in, out)
// t,delt,in,out 这几个变量的类型必须为double型
// 其中,t为系统仿真时间;delt为时间步长;in为输入口;out为输出口;
// in、out都以指针的形式给出,其个数由psim中dll文件决定,分别有1、3、6、12、20、25个
// 不用的输入口必须接地,否则会出现错误
double t, delt;
double *in, *out;
{
double w,M,theta,U_alpha,U_beta;
double Ts,X,Y,Z,Tx,Ty;
double Ta,Tb,Tc,Tcm1,Tcm2,Tcm3;
int A,B,C,Sector;
M = in[0];
w = in[1];
Ts = in[2]; // PWM开关周期
theta = w*t;
U_alpha = M*cos(theta);
U_beta = M*sin(theta);
// 扇区判断
if (U_beta > 0)
A = 1;
else
A = 0;
if((sqrt(3)*U_alpha-U_beta) > 0)
B = 1;
else
B = 0;
if((sqrt(3)*U_alpha+U_beta) < 0)
C = 1;
else
C = 0;
Sector = A + 2*B + 4*C;
X = sqrt(3)*U_beta*Ts;
Y = ((3*U_alpha+sqrt(3)*U_beta)*Ts)/2;
Z = ((-3*U_alpha+sqrt(3)*U_beta)*Ts)/2;
// 各个扇区的具体作用时间选择;
switch(Sector)
{
case 1: // 第二扇区;
Tx = Z;
Ty = Y;
break;
case 2: // 第六扇区;
Tx = Y;
Ty= -X;
break;
case 3: // 第一扇区;
Tx = -Z;
Ty = X;
break;
case 4: // 第四扇区;
Tx = -X;
Ty = Z;
break;
case 5: // 第三扇区;
Tx = X;
Ty = -Y;
break;
case 6: // 第五扇区;
Tx = -Y;
Ty = -Z;
break;
default:
break;
}
// 作用时间的饱和判断;
if((Tx+Ty) > Ts)
{
Tx = (Tx*Ts)/(Tx+Ty);
Ty = (Ty*Ts)/(Tx+Ty);
}
// 桥臂开通时刻;
Ta = (Ts-Tx-Ty)/4;
Tb = Ta + Tx/2;
Tc = Tb + Ty/2;
// Tcm1是A相上桥臂管子的开通时刻
// Tcm2是B相上桥臂管子的开通时刻
// Tcm3是C相上桥臂管子的开通时刻
switch(Sector)
{
case 1:
Tcm1 = Tb;
Tcm2 = Ta;
Tcm3 = Tc;
break;
case 2:
Tcm1 = Ta;
Tcm2 = Tc;
Tcm3 = Tb;
break;
case 3:
Tcm1 = Ta;
Tcm2 = Tb;
Tcm3 = Tc;
break;
case 4:
Tcm1 = Tc;
Tcm2 = Tb;
Tcm3 = Ta;
break;
case 5:
Tcm1 = Tc;
Tcm2 = Ta;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
无扇区判断SVPWM_第一组.rar
(796.52 KB, 下载次数: 39)
2018-4-3 15:12 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
1307635916
时间:
2019-9-9 16:32
这个是七段式的SVPWM吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1