%% https://olli2.de/Antriebstechnik/Maschinen/ASM_T-ESB_mechRot.html component sc_ASM_T_ESB inputs mLoad = 0.0 ; % Load Torque [pu]:left end outputs out = zeros(16,1) ;% out o_torque = 0; % M [pu]: right o_speed = 0; % n [pu]: right o_iL123 = zeros(3,1); % iL123 [pu]: right o_vL123 = zeros(3,1); % vL123 [pu]: right o_debug = 0; end nodes L1 = foundation.electrical.electrical; % L1:right L2 = foundation.electrical.electrical; % L2:right L3 = foundation.electrical.electrical; % L3:right end parameters iNom = {1000,'A'}; vNomLL = {4100,'V'}; fNom = { 60, 'Hz' }; r1 = 0.05 ; xs1 = 0.12 ; xh = 2.3 ; r3 = 0.05 ; xs3 = 0.06 ; TauMech = { 0.1, 's' }; % Tau Mech in seconds end variables iL12 = { 0, 'A' }; % Current iL23 = { 0, 'A' }; % Current vL12 = { 0, 'V' }; % Voltage verkettet vL23 = { 0, 'V' }; % Voltage verkettet % interne, rotierende groessen in pu vL123 = [0,0,0]; % L123_pu v1ab = [0,0]; % klemmenspannung in ab Koordinaten i1ab = [0,0] % Staenderstrom iL123 = [0,0,0]; % L123_pu % interne Groessen mechanisch , alles in pu n =0; % Drehzahl in pu phi = 0; % aktueller rotorwinkel tf = [1,0]; % transformationsvektor torque = 0; % Drehmoment % interne Groessen elektrisch , alles in pu v1dq = [0,0]; % klemmenspannung in mech-rotor Koordinaten dPsi1dq = [0,0]% differential Staenderfluss dPsi3dq = [0,0]% differential Laueferfluss psi1dq = [0,0]% Staenderfluss psihdq = [0,0]% Hauptfluss psi3dq = [0,0]% Laueferfluss i1dq = [0,0]% Staenderstrom iudq = [0,0]% magnetisierungsstrom i3dq = [0,0]% Laueferstrom parallelX = 0; % Hilfsgroesse fuer Flussberechnungen end branches iL12 : L1.i -> L2.i; iL23 : L2.i -> L3.i; end equations % portdefinitionen vL12 == L1.v - L2.v; vL23 == L2.v - L3.v; iL123(1)*iNom*sqrt(2) == +iL12; iL123(3)*iNom*sqrt(2) == -iL23; % Klemmenleiterspannung vL123(1) == ( +2*vL12 +1*vL23 ) /3 * 1 / (vNomLL*sqrt(2/3) ) ; vL123(2) == ( -1*vL12 +1*vL23 ) /3 * 1 / (vNomLL*sqrt(2/3) ) ; vL123(3) == ( -1*vL12 -2*vL23 ) /3 * 1 / (vNomLL*sqrt(2/3) ) ; v1ab(1) == vL123(1); v1ab(2) == ( vL123(2) - vL123(3) ) / sqrt(3); %Netzspannung zurückdrehen v1dq(1) == v1ab(1)*tf(1) + v1ab(2)*tf(2); v1dq(2) == -v1ab(1)*tf(2) + v1ab(2)*tf(1); % Differentiale der Ständergleichungen, integriert wird erst am Ende dPsi1dq(1) == v1dq(1) - r1*i1dq(1) + n*psi1dq(2); dPsi1dq(2) == v1dq(2) - r1*i1dq(2) - n*psi1dq(1); % Differentiale der Laeufergleichungen, integriert wird erst am Ende dPsi3dq == 0 - r3*i3dq ; % der Hauptfluss ergibt sich aus % den Flussgleichungen und der Stromsumme parallelX == 1 / (1/xs1 + 1/xs3 + 1/xh) ; psihdq == ( psi1dq/xs1 + psi3dq/xs3 ) * parallelX ; % Die Ströme auch i1dq == ( psi1dq - psihdq ) / xs1; i3dq == ( psi3dq - psihdq ) / xs3; % Stromsumme iudq == i1dq + i3dq ; % Flüsse integrieren* psi1dq == 2*pi*fNom*integ(dPsi1dq); psi3dq == 2*pi*fNom*integ(dPsi3dq); % Staenderstrom reindrehen i1ab(1) == i1dq(1)*tf(1) - i1dq(2)*tf(2); i1ab(2) == i1dq(1)*tf(2) + i1dq(2)*tf(1); iL123(1) == i1ab(1); iL123(2) == 0.5*( -i1ab(1) + sqrt(3)*i1ab(2)); iL123(3) == 0.5*( -i1ab(1) - sqrt(3)*i1ab(2)); % mechanik n == integ( torque - mLoad ) / TauMech ; phi == 2*pi*fNom*integ(n) - 2*pi; o_debug == phi; tf == [ cos(phi) sin(phi) ]; torque == psihdq(1)*i1dq(2)-psihdq(2)*i1dq(1); % output %%%%%%% out(1) == v1dq(1) ; out(2) == v1dq(2) ; out(3) == i1dq(1) ; out(4) == i1dq(2) ; out(5) == iudq(1) ; out(6) == iudq(2) ; out(7) == i3dq(1) ; out(8) == i3dq(2) ; out(9) == psi1dq(1) ; out(10) == psi1dq(2) ; out(11) == psihdq(1) ; out(12) == psihdq(2) ; out(13) == psi3dq(1) ; out(14) == psi3dq(2) ; out(15) == torque ; out(16) == n ; o_torque == torque; o_speed == n; o_iL123(1) == iL123(1); o_iL123(2) == iL123(2); o_iL123(3) == iL123(3); o_vL123(1) == vL123(1); o_vL123(2) == vL123(2); o_vL123(3) == vL123(3); end end