赞
踩
-原理:
构建DQ坐标系需要两个量,单相的输入只有一个量,需要把单相输入量滞后90°的作为构建DQ坐标轴的另一个输入量。而产生滞后90°的正交波的方法有几种。比如可以在时间上做延时,就是把采集的输入量先存储起来等到时间上延时了90°后,再拿来作为dq变换的另一个输入。也可以使用sogi算法去生成正交波。SOGI叫二阶广义积分器,本质是为了产生一组正交信号。这种方法比较方便,不需要去存数据。但是运算会大点。
dq变换后,需要把q轴的输出进行闭环控制,把它闭环到0就能使得输入信号跟输出信号同相位。坐标轴转换这涉及到向量。电机中也会使用到dq坐标轴,在电机中它就是旋转坐标轴,跟着电机一直旋转的。这样才能把交流量控制变换成直流量控制。
clear;clc;
%SOGI生成正交波形,park变换到dq轴,实现相位跟踪
%输入va
k= 1.414;
f=35;%Hz
w= 2*pi*f;
T= 1/10e3;
Vm = 0;
Vmax=6;
phase=3*pi/2;
t=0:T:0.9;
wiga = zeros(size(t));
va = zeros(size(t));
va_p = zeros(size(t));
qva_p =zeros(size(t));
vd =zeros(size(t));
vq =zeros(size(t));
zeta =zeros(size(t));
vf =zeros(size(t));
angle = zeros(size(t));
Vout =zeros(size(t));
err =zeros(size(t));
fo =zeros(size(t));
wiga(1)=0;
va(1)=Vmax*sin(w*t(1)+phase);
va_p(1)=0;
qva_p(1)=0;
vd(1)=0;
vq(1)=0;
zeta(1) =0;
kp=14.9235;
ki=0.05;
err(1)=0;%误差
vf(1)=0;%PI输出值
angle(1)=0;%输出的电压角度
Vout(1)=0;%输出的电压值
fo(1)=0;
for i = 2:numel(t)
%输入信号
if i==6e3
phase = pi/2;
end
if i==3e3
f=50;%Hz
w= 2*pi*f;
end
va(i)= Vmax*sin(w*t(i)+ phase);
%sogi正交信号生成
va_p(i) = -T *wiga(i-1) * qva_p(i-1) + T * k * wiga(i-1) * va(i) + (1 - T * k * wiga(i-1))* va_p(i-1);
qva_p(i) = T * wiga(i-1) * va_p(i-1) + qva_p(i-1);
%park变换
vq(i) = (-1)*sin(zeta(i-1)) * va_p(i) + cos(zeta(i-1)) * qva_p(i);
vd(i) = cos(zeta(i-1)) * va_p(i) + sin(zeta(i-1)) * qva_p(i);
%pi环路
err(i) =vq(i)-0;
vf(i) =vf(i-1) + kp*(err(i) - err(i-1)) + ki*err(i) ;
if vf(i)>50*pi
vf(i)=50*pi;
end
if vf(i)<-20*pi
vf(i)=-20*pi;
end
wiga(i)=vf(i) + w ;
%输出
fo(i)=wiga(i)/(2*pi);
zeta(i) = zeta(i-1) + T*wiga(i);
angle(i) = mod(zeta(i)+pi/2 ,2*pi);
Vout(i)=Vmax*cos(zeta(i))+Vm;
end
subplot(4,1,1);
plot(t,va,'g',t,va_p,'b',t,qva_p,'r');
subplot(4,1,2);
plot(t,va,'g',t,angle,'r');
subplot(4,1,3);
plot(t,va,'g',t,Vout,'r');
subplot(4,1,4);
plot(t,vf/10,'b',t,vq,'r',t,vd,'g',t,fo/10,'m');
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。