📄 smss1b.m
字号:
% DATA
Ra=eval(get(hRa,'String'));
Xd=eval(get(hXd,'String'));
Xq=eval(get(hXq,'String'));
Xal=eval(get(hXal,'String'));
V=eval(get(hVs,'String'));
I=eval(get(hIs,'String'));
pf=eval(get(hpf,'String'));
%
thetapf=acos(pf);
% Motor convention:
% theta=thetapf <=== under-excited motor (lagging pf).
% theta=-thetapf <=== over-excited motor (leading pf).
% theta=thetapf-pi <=== over-excited generator (lagging pf).
% theta=-thetapf+pi<=== under-excited generator (leading pf).
% Steady-state calculations:
j=sqrt(-1); Xmd=Xd-Xal;
Eq1=V-(Ra+j*Xq)*I*exp(-j*theta);Eq=abs(Eq1) ; delta0=-angle(Eq1);
Ia=I*exp(j*(pi/2+delta0-theta)); Vt=V*exp(j*(pi/2+delta0)) ;
id0=real(Ia) ; iq0=imag(Ia) ;
vd0=real(Vt) ; vq0=imag(Vt) ;
vqp=Vt-j*Xq*Ia-Ra*Ia; vqpd=real(vqp); vqpq=imag(vqp);
Ef0=vq0-Ra*iq0-Xd*id0; if0=Ef0/Xmd; Te0=Eq*iq0;
P0=abs(Ia)*abs(Vt)*cos(theta);Q0=abs(Ia)*abs(Vt)*sin(theta);
disp(' SYNCHRONOUS MACHINE PHASOR DIAGRAM (Motor convention)')
disp(' OPERATING POINT in dq coordinates')
disp( [mode])
disp(' vd0 vq0 id0 iq0 if0 Te0 ')
disp([vd0 vq0 id0 iq0 if0 Te0])
disp(' delta0 theta0 PO QO ')
disp([delta0*180/pi theta*180/pi P0 Q0])
disp('____________________________________________________________')
figure('Units','normalized','Position',[.45 .05 .49 .5],'Name','Phasor diagram','numbertitle','on');
vecarrow([0 0],[0 Ef0],'c'),grid,hold on
vecarrow([0 0],[if0 0],'g')
vecarrow([0 0],[vd0 vq0],'k')
vecarrow([0 0],[id0 iq0],'r')
vecarrow([vd0 vq0],[vqpd vqpq],'y')
title(' PHASORS along d-q axes'),
text(0.5,1.1,mode),
h=findobj(gca,'Type','line');
set(h,'LineWidth',2)
hr=h(length(h):-1:1);
legend(hr,'Ef','If','Vt','Ia','-(Ra+jXq)Ia')
plot(0,0,'kx','MarkerSize',10,'linewidth',2)
axis equal
hold off
figure('Units','normalized', ...
'Position',[.55 .65 .25 .25],'Name','Phasor diagram','numbertitle','off');
compass(Ef0,0,'w'),hold on
compass(if0,'g')
compass(Ia,'r')
compass(Vt,'k')
compass(j*Ef0,'c')
set(findobj(gca,'Type','line'),'LineWidth',2)
%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -