# Zeigerdiagramm synchronisierte, einphasige Last an Drehspannung rechtsDrehfeld=0; useCompass=1; if rechtsDrehfeld >0 phi=-120; fprintf('Rechtdrehfeld: synchrone Belastung\n'); else phi=120; fprintf('Linksdrehfeld: asynchrone Belastung\n'); end; function zeiger=zeiger(z,desc, farbe, useCompass) abstand=0.25; zeiger=z; if useCompass <= 0 quiver(0,0, real(z), imag(z),0, 'AutoScale','on' , 'MaxHeadSize', 0.1/norm(z), 'Color' ,farbe); else h=compass(real(z), imag(z)); set(h,'color', farbe); end; text( real(z), vorzeichen(imag(z)) *abstand+ imag(z),desc , 'Color' , farbe); end; function vorzeichen=vorzeichen(x) if x == 0 vorzeichen=1; else vorzeichen=sign(x); end; end; function runden=runden(x) runden=vorzeichen(x)*ceil(abs(x)); end; fig=figure('NumberTitle', 'off', 'Name', 'Synchronisation einer einphasigen Last'); z=@(betrag, winkel) betrag*exp(j*winkel*pi/180); U1N=z(1,0); U2N=z(1,phi); U3N=z(1,-phi); if rechtsDrehfeld >0 UR=z(3,0); UL=z(sqrt(3), -30); UC=z(sqrt(3),30); UStern=z(2,180); I1=z(3,0); I2=z(3,phi); I3=z(3,-phi); else UR=z(-3,0); UL=z(sqrt(21), atand(3*sqrt(3))+90); UC=z(sqrt(21), -atand(3*sqrt(3))-90); UStern=z(4,0); I1=z(3,180); I2=z(3*sqrt(7),atand(3*sqrt(3))); I3=z(3*sqrt(7),-atand(3*sqrt(3))); end; URE=[real(UR),real(UL),real(UC), real(UStern)]; UIM=[imag(UR),imag(UL),imag(UC), imag(UStern)]; IRE=[real(I1),real(I2),real(I3)]; IIM=[imag(I1),imag(I2),imag(I3)]; subplot(1,2,1); zeiger(U1N, 'U_{1N}/U_N', 'b', useCompass); hold on; zeiger(U2N, 'U_{2N}/U_N', 'b', useCompass); zeiger(U3N, 'U_{3N}/U_N', 'b', useCompass); zeiger(UR, 'U_R/U_N', 'b', useCompass); zeiger(UL, 'U_L/U_N', 'b', useCompass); zeiger(UC, 'U_C/U_N', 'b', useCompass); zeiger(UStern, 'U_{Stern}/U_N', 'b' , useCompass); axis equal; if useCompass <= 0 xlim([runden(min(URE)),runden(max(URE)) ]); ylim([runden(min(UIM)),runden(max(UIM))]); end; title('Spannungen'); xlabel('Re'); ylabel('Im'); grid on; subplot(1,2,2); zeiger(I1, 'U_N/R*I_{1}', 'r', useCompass); hold on; zeiger(I2, 'U_N/R*I_{2}', 'r', useCompass); zeiger(I3, 'U_N/R*I_{3}', 'r', useCompass); axis equal; if useCompass <= 0 xlim([runden(min(IRE)),runden(max(IRE)) ]); ylim([runden(min(IIM)),runden(max(IIM))]); end title('Ströme'); xlabel('Re'); ylabel('Im'); grid on;