clear all close all fd = 1; %% Bases Sb = 1e6; Ub132 = 132e3; Ub20 = 20e3; Ub6_6 = 6.6e3; Zb132 = Ub132^2/Sb; ib132 = Sb/(sqrt(3)*Ub132); Zb20 = Ub20^2/Sb; ib20 = Sb/(sqrt(3)*Ub20); Zb6_6 = Ub6_6^2/Sb; ib6_6 = Sb/(sqrt(3)*Ub6_6); fprintf(fd, 'Ubase: %0.0f Zbase: %0.0f Ibase: %0.3f\n', Ub132, Zb132, ib132); fprintf(fd, 'Ubase: %0.0f Zbase: %0.0f Ibase: %0.3f\n', Ub20, Zb20, ib20); fprintf(fd, 'Ubase: %0.0f Zbase: %0.2f Ibase: %0.3f\n\n', Ub6_6, Zb6_6, ib6_6); %% Paso a pu %%% SEP Un_SEP = 132e3; Scc_SEP = 1600e6; Zcc_SEP_pu = j*Un_SEP^2/Scc_SEP/Zb132; ABCD_SEP = [1 Zcc_SEP_pu; 0 1]; fprintf(fd, 'Zcc_SEP_pu: j*%f\n',abs(Zcc_SEP_pu)); %%% Transformadores TR1-TR2 Un_TR1 = 132e3; Sn_TR1 = 32E6; rt_TR1 = 132e3/20e3; Ucc_TR1 = 12/100; Zcc_TR1_pu = j*Ucc_TR1*Un_TR1^2/Sn_TR1/Zb132; % Al estar en paralelo y ser los dos trafos iguales => Zcc_TR12_pu = Zcc_TR1_pu/2; ABCD_TR12 = [1 Zcc_TR12_pu; 0 1]; fprintf(fd, 'Zcc_T1_pu: j*%f\n',abs(Zcc_TR1_pu)); fprintf(fd, 'Zcc_T12_pu: j*%f\n',abs(Zcc_TR12_pu)); %%% Línea L1 long_L1_km = 0.850; Z_L1_pu = (0.053+j*1.24e-4)*long_L1_km/Zb20; Y_L1_pu = j*6.5e-7*2*pi*50*long_L1_km*Zb20; ABCD_L1 = [1 0; Y_L1_pu/2 1]*[1 Z_L1_pu; 0 1]*[1 0; Y_L1_pu/2 1]; fprintf(fd, 'Z_L1_pu: %0.8f+j*%e\n',real(Z_L1_pu),imag(Z_L1_pu)); fprintf(fd, 'Y_L1_pu: %f+j*%f\n',real(Y_L1_pu),imag(Y_L1_pu)); %%% Transformadores TR3-TR4 Un_TR3 = 20e3; Sn_TR3 = 10E6; rt_TR3 = 20e3/6.6e3; Ucc_TR3 = 8/100; Zcc_TR3_pu = j*Ucc_TR3*Un_TR3^2/Sn_TR3/Zb20; % Al estar en paralelo y ser los dos trafos iguales => Zcc_TR34_pu = Zcc_TR3_pu/2; ABCD_TR34 = [1 Zcc_TR34_pu; 0 1]; fprintf(fd, 'Zcc_T3_pu: j*%f\n',abs(Zcc_TR3_pu)); fprintf(fd, 'Zcc_T34_pu: j*%f\n',abs(Zcc_TR34_pu)); %%% Carga C1 fdp_C1 = 0.8; S_C1_pu = 25e6/Sb*(fdp_C1+j*sin(acos(fdp_C1))); %%% Carga C2 fdp_C2 = 0.8; S_C2_pu = 4e6/Sb*(fdp_C2+j*sin(acos(fdp_C2))); %%% Carga C3 fdp_C3 = 0.8; S_C3_pu = 7e6/Sb*(fdp_C3+j*sin(acos(fdp_C3))); %%% Carga C4 fdp_C4 = 0.8; S_C4_pu = 1e6/Sb*(fdp_C4+j*sin(acos(fdp_C4))); fprintf(fd,'Z_C1_pu: %f+j*%f\n',real(1/conj(S_C1_pu)),imag(1/conj(S_C1_pu))); fprintf(fd,'Z_C2_pu: %f+j*%f\n',real(1/conj(S_C2_pu)),imag(1/conj(S_C2_pu))); fprintf(fd,'Z_C3_pu: %f+j*%f\n',real(1/conj(S_C3_pu)),imag(1/conj(S_C3_pu))); fprintf(fd,'Z_C4_pu: %f+j*%f\n\n',real(1/conj(S_C4_pu)),imag(1/conj(S_C4_pu))); %%% Equivalentes que se pueden utilizar fprintf(fd,'Serie Zcc_SEP_pu y Zcc_TR12_pu: %f+j*%f\n',real(Zcc_SEP_pu+Zcc_TR12_pu), ... imag(Zcc_SEP_pu+Zcc_TR12_pu)); fprintf(fd,'Paralelo Z_C3_pu y Z_C4_pu: %f+j*%f\n',real(1/conj(S_C3_pu+S_C4_pu)), ... imag(1/conj(S_C3_pu+S_C4_pu))); fprintf(fd,'Serie Zcc_TR34_pu y par(Z_C3_pu y Z_C4_pu): %f+j*%f\n',real(Zcc_TR34_pu+1/ ... conj(S_C3_pu+S_C4_pu)), ... imag(Zcc_TR34_pu+1/conj(S_C3_pu+S_C4_pu))); fprintf(fd,'Admitancia de Serie Zcc_TR34_pu y par(Z_C3_pu y Z_C4_pu): %f+j*%f\n', ... real(1/(Zcc_TR34_pu+1/conj(S_C3_pu+S_C4_pu))), imag(1/(Zcc_TR34_pu+1/ ... conj(S_C3_pu+S_C4_pu)))); % En fin Zequivalente desde el nudo b hacia la derencha Yeq_b = conj(S_C1_pu)+Y_L1_pu/2+1/(Z_L1_pu+1/(conj(S_C2_pu)+Y_L1_pu/2+1/(Zcc_TR34_pu+1/ ... conj(S_C3_pu+S_C4_pu)))); Zeq_b = 1/Yeq_b; fprintf(fd,'Zeq_b: %f+j%f\nYeq_b: %f+j%f\n',real(Zeq_b),imag(Zeq_b),real(Yeq_b),imag(Yeq_b)); %% Cálculo del apartado a y b Ub_pu = 1; num_iter = 0; max_iter = 1; % En el examen, tal y como se ha dicho en clase, sólo se realiza una iteración Ub_inicial = 1; terminar = false; tolerancia = 1e-4; U_C1_est_pu = Ub_inicial; U_C2_est_pu = Ub_inicial; U_C3_est_pu = Ub_inicial; U_C4_est_pu = Ub_inicial; while(~terminar) num_iter = num_iter +1; % Calculo equivalente C1 Z_C1_pu = abs(U_C1_est_pu)^2/conj(S_C1_pu); ABCD_C1 = [1 0; 1/Z_C1_pu 1]; % Cálculo equivalente C2 Z_C2_pu = abs(U_C2_est_pu)^2/conj(S_C2_pu); ABCD_C2 = [1 0; 1/Z_C2_pu 1]; % Cálculo equivalente C3 Z_C3_pu = abs(U_C3_est_pu)^2/conj(S_C3_pu); ABCD_C3 = [1 0; 1/Z_C3_pu 1]; % Cálculo equivalente C4 Z_C4_pu = abs(U_C4_est_pu)^2/conj(S_C4_pu); ABCD_C4 = [1 0; 1/Z_C4_pu 1]; % Cálculo de la intensidad que pasa por TR1//TR2 que voy a llamar Ib_pu ABCD_bd = ABCD_C1*ABCD_L1*ABCD_C2*ABCD_TR34*ABCD_C3*ABCD_C4; Ib_pu = ABCD_bd(2,1)/ABCD_bd(1,1)*Ub_pu; % Cálculo del equivalente desde el nudo o (nudo que hay entre Usep_pu y Zcc_SEP_pu hasta el nudo b % SIN INCLUIR C1 (cuya intensidad ya está incluida en ib_pu) ABCD_oc = ABCD_SEP*ABCD_TR12; % Cálculo de la tensión del SEP U_SEP_pu = ABCD_oc(1,1)*Ub_pu+ABCD_oc(1,2)*Ib_pu; % Cálculo de las tensiones mejoradas en B, C y en D para obtener la potencia exacta en C2, C3 y C4 U_C1_est_pu = Ub_pu; % Permanece constante y no hay que cambiarla ABCD_cd = ABCD_TR34*ABCD_C3*ABCD_C4; U_C3_est_pu = Ub_pu/ABCD_bd(1,1); % Al haber metido todas las cargas la intensidad al final es cero U_C4_est_pu = U_C3_est_pu; U_C2_est_pu = ABCD_cd(1,1)*U_C3_est_pu; % Que tengamos los consumos de potencia en las cargas if((abs(S_C1_pu-abs(U_C1_est_pu)^2/conj(Z_C1_pu))= max_iter) fprintf(fd,'\nSuperadas el maximo numero de iteraciones: %i \n\n',num_iter); terminar = true; U_d_pu_antes_cambio = U_C3_est_pu; % Y lo guardo para luego hacer cuentas end end U_SEP_pu_apartado_a = U_SEP_pu; U_d_pu_apartado_b = U_d_pu_antes_cambio; fprintf(fd,'RESULTADOS APARTADOS A Y B\n'); fprintf(fd,'U_SEP_pu: %f+j*%f\n', real(U_SEP_pu),imag(U_SEP_pu)); fprintf(fd,'U_SEP_pu abs: %f y fase: %f\n', abs(U_SEP_pu),angle(U_SEP_pu)*180/pi); fprintf(fd,'U_d_pu antes cambio C4: %f+j%f\n', real(U_d_pu_antes_cambio), imag(U_d_pu_antes_cambio)); fprintf(fd,'U_d_pu antes cambio C4 abs: %f y fase: %f\n', abs(U_d_pu_antes_cambio), ... angle(U_d_pu_antes_cambio)*180/pi); %%% Cálculo del apartado a (segunda forma) % Realizando balances de potencia despreciando las pérdidas de L1 y de TR34 Sb_C1234 = S_C1_pu+S_C2_pu+S_C3_pu+S_C4_pu; U_SEP_pu_2 = Ub_pu+imag(Zcc_SEP_pu+Zcc_TR12_pu)*imag(Sb_C1234)/Ub_pu; %%% Cálculo de la tensión del nudo d (segunda forma) % Realizando balances de potencia y despreciando las pérdidas de TR34 y consumo de reactiva de L1 Sb_C234 = S_C2_pu+S_C3_pu+S_C4_pu; U_C2_pu_2 = max(roots([1 -Ub_pu (real(Z_L1_pu)*real(Sb_C234)+imag(Z_L1_pu)*imag(Sb_C234))])); Sb_C34 = S_C3_pu+S_C4_pu; U_C3_pu_2 = max(roots([1 -U_C2_pu_2 (imag(Zcc_TR34_pu)*imag(Sb_C34))])); %% Cálculo del apartado c % La carga C4 se transforma en la carga C4' S_C4_pu = 7*S_C4_pu; % Pasa a ser siete veces la original Ub_pu = 1; fd = 1; num_iter = 0; max_iter = 1; Ub_inicial = 1; terminar = false; tolerancia = 1e-4; % Al comentar estas líneas utilizo los valores iniciales obtenidos en el apartado a U_C1_est_pu = Ub_inicial; U_C2_est_pu = Ub_inicial; U_C3_est_pu = Ub_inicial; U_C4_est_pu = Ub_inicial; while(~terminar) num_iter = num_iter +1; % Calculo equivalente C1 Z_C1_pu = abs(U_C1_est_pu)^2/conj(S_C1_pu); ABCD_C1 = [1 0; 1/Z_C1_pu 1]; % Cálculo equivalente C2 Z_C2_pu = abs(U_C2_est_pu)^2/conj(S_C2_pu); ABCD_C2 = [1 0; 1/Z_C2_pu 1]; % Cálculo equivalente C3 Z_C3_pu = abs(U_C3_est_pu)^2/conj(S_C3_pu); ABCD_C3 = [1 0; 1/Z_C3_pu 1]; % Cálculo equivalente C4 Z_C4_pu = abs(U_C4_est_pu)^2/conj(S_C4_pu); ABCD_C4 = [1 0; 1/Z_C4_pu 1]; % Cálculo del equivalente desde el nudo o (nudo que hay entre Usep_pu y Zcc_SEP_pu hasta el nudo d ABCD_od = ABCD_SEP*ABCD_TR12*ABCD_C1*ABCD_L1*ABCD_C2*ABCD_TR34*ABCD_C3*ABCD_C4; % Cálculo de la tensión del nudo d U_C3_est_pu = abs(U_SEP_pu)/ABCD_od(1,1); % Tomamos como origen de fases U_SEP_pu % Cálculo de las tensiones mejoradas en B, C y en D para obtener la potencia exacta en C2, C3 y C4 U_C4_est_pu = U_C3_est_pu; ABCD_cd = ABCD_TR34*ABCD_C3*ABCD_C4; U_C2_est_pu = ABCD_cd(1,1)*U_C3_est_pu; ABCD_bd = ABCD_C1*ABCD_L1*ABCD_cd; U_C1_est_pu = ABCD_bd(1,1)*U_C3_est_pu; % Que tengamos los consumos de potencia en las cargas if((abs(S_C1_pu-abs(U_C1_est_pu)^2/conj(Z_C1_pu))= max_iter) fprintf(fd,'Superadas el maximo numero de iteraciones: %i \n\n',num_iter); terminar = true; U_d_pu_despues_cambio = U_C3_est_pu; % Y lo guardo para luego hacer cuentas end end U_d_pu_apartado_c = U_d_pu_despues_cambio; fprintf(fd,'RESULTADO APARTADO C \n'); fprintf(fd,'U_d_pu despues del cambio C4: %f+j%f\n', real(U_d_pu_despues_cambio), ... imag(U_d_pu_despues_cambio)); fprintf(fd,'U_d_pu despues del cambio C4 abs: %f y fase: %f\n', abs(U_d_pu_despues_cambio), ... angle(U_d_pu_despues_cambio)*180/pi); fprintf(fd,'Z_C4_prima_pu: %f+j*%f\n\n',real(1/conj(S_C4_pu)),imag(1/conj(S_C4_pu))); % Imprimimos la caída de tensión obtenida fprintf(fd,'Tensión en d apartado a: %f\n', abs(U_d_pu_antes_cambio)); fprintf(fd,'Tensión en d apartado c: %f\n', abs(U_d_pu_despues_cambio)); fprintf(fd,'Caída de tensión debido al cambio de carga: %f\n', abs(U_d_pu_despues_cambio)- ... abs(U_d_pu_antes_cambio)) %% Cálculo del apartado d fprintf(fd,'\nAPARTADO D\n'); % Ahora vamos a realizar las mismas cuentas pero despreciando C1,C2 y L1 => Ahora los nudos b y c son el % mismo nudo % Volvemos a asignar variables que hayamos utilizado S_C4_pu = 1e6/Sb*(fdp_C4+j*sin(acos(fdp_C4))); %%% Calculo de la tensión del SEP y en d antes de que nada cambie Ub_pu = 1; fd = 1; num_iter = 0; max_iter = 1; Ub_inicial = 1; terminar = false; tolerancia = 1e-4; U_C3_est_pu = Ub_inicial; U_C4_est_pu = Ub_inicial; while(~terminar) num_iter = num_iter +1; % Cálculo equivalente C3 Z_C3_pu = abs(U_C3_est_pu)^2/conj(S_C3_pu); ABCD_C3 = [1 0; 1/Z_C3_pu 1]; % Cálculo equivalente C4 Z_C4_pu = abs(U_C4_est_pu)^2/conj(S_C4_pu); ABCD_C4 = [1 0; 1/Z_C4_pu 1]; % Cálculo de la intensidad que pasa por TR1//TR2 que voy a llamar Ib_pu ABCD_bd = ABCD_TR34*ABCD_C3*ABCD_C4; Ib_pu = ABCD_bd(2,1)/ABCD_bd(1,1)*Ub_pu; % Cálculo del equivalente desde el nudo o (nudo que hay entre Usep_pu y Zcc_SEP_pu hasta el nudo b % SIN INCLUIR C1 (cuya intensidad ya está incluida en ib_pu) ABCD_oc = ABCD_SEP*ABCD_TR12; % Cálculo de la tensión del SEP U_SEP_pu = ABCD_oc(1,1)*Ub_pu+ABCD_oc(1,2)*Ib_pu; % Cálculo de las tensiones mejoradas en B, C y en D para obtener la potencia exacta en C2, C3 y C4 U_C1_est_pu = Ub_pu; % Permanece constante y no hay que cambiarla ABCD_cd = ABCD_TR34*ABCD_C3*ABCD_C4; U_C3_est_pu = Ub_pu/ABCD_cd(1,1); % Al haber metido todas las cargas la intensidad al final es cero U_C4_est_pu = U_C3_est_pu; % Que tengamos los consumos de potencia en las cargas if((abs(S_C3_pu-abs(U_C3_est_pu)^2/conj(Z_C3_pu))= max_iter) fprintf(fd,'Superadas el maximo numero de iteraciones: %i\n',num_iter); terminar = true; end end %%% Y ahora a calcular la tensión que se obtiene cuando la carga cambia % La carga C4 se transforma en la carga C4' S_C4_pu = 7*S_C4_pu; % Pasa a ser siete veces la original Ub_pu = 1; fd = 1; num_iter = 0; max_iter = 1; Ub_inicial = 1; terminar = false; tolerancia = 1e-4; % Al comentar esta línea utilizo los valores iniciales obtenidos en el apartado a % $$$ U_C1_est_pu = Ub_inicial; % $$$ U_C2_est_pu = Ub_inicial; % $$$ U_C3_est_pu = Ub_inicial; % $$$ U_C4_est_pu = Ub_inicial; while(~terminar) num_iter = num_iter +1; % Cálculo equivalente C3 Z_C3_pu = abs(U_C3_est_pu)^2/conj(S_C3_pu); ABCD_C3 = [1 0; 1/Z_C3_pu 1]; % Cálculo equivalente C4 Z_C4_pu = abs(U_C4_est_pu)^2/conj(S_C4_pu); ABCD_C4 = [1 0; 1/Z_C4_pu 1]; % Cálculo del equivalente desde el nudo o (nudo que hay entre Usep_pu y Zcc_SEP_pu hasta el nudo d ABCD_od = ABCD_SEP*ABCD_TR12*ABCD_TR34*ABCD_C3*ABCD_C4; % Cálculo de la tensión del nudo d U_C3_est_pu = abs(U_SEP_pu)/ABCD_od(1,1); % Tomamos como origen de fases U_SEP_pu % Cálculo de las tensiones mejoradas en B, C y en D para obtener la potencia exacta en C2, C3 y C4 U_C4_est_pu = U_C3_est_pu; % $$$ ABCD_cd = ABCD_TR34*ABCD_C3*ABCD_C4; % $$$ U_C2_est_pu = ABCD_cd(1,1)*U_C3_est_pu % $$$ ABCD_bd = ABCD_C1*ABCD_L1*ABCD_cd; % $$$ U_C1_est_pu = ABCD_bd(1,1)*U_C3_est_pu % Que tengamos los consumos de potencia en las cargas if((abs(S_C3_pu-abs(U_C3_est_pu)^2/conj(Z_C3_pu))= max_iter) fprintf(fd,'Superadas el maximo numero de iteraciones: %i\n',num_iter); terminar = true; end end % Imprimimos la caída de tensión obtenida fprintf(fd,'Tensión en d apartado a: %f\n', U_d_pu_antes_cambio); fprintf(fd,'Tensión en d apartado c: %f\n', U_d_pu_despues_cambio); fprintf(fd,'Caída de tensión debido al cambio de carga: %f\n', U_d_pu_despues_cambio-U_d_pu_antes_cambio) %% Otra forma de calcular esto mucho mas fácil que la de arriba S_C4_pu = 1e6/Sb*(fdp_C4+j*sin(acos(fdp_C4))); Zeq_b_der = Zcc_TR34_pu+1/conj(S_C3_pu+S_C4_pu); Zeq_b_izq = Zcc_SEP_pu+Zcc_TR12_pu; % Utilizando el divisor de tensión que se forma en b Ub_pu = Zeq_b_der/(Zeq_b_der+Zeq_b_izq)*Usep_pu % y despejando U_SEP_pu = Ub_pu*(Zeq_b_der+Zeq_b_izq)/Zeq_b_der; % Una vez que tenemos la tensión del SEP volvemos a utilizar el dichoso divisor de tensión y % calculamos la tensión en d Z_C34_pu = 1/conj(S_C3_pu+S_C4_pu); U_d_pu_antes_cambio = Z_C34_pu/(Zcc_SEP_pu+Zcc_TR12_pu+Zcc_TR34_pu+Z_C34_pu)*U_SEP_pu; fprintf(fd,'\nRESULTADOS APARTADOS dA Y dB forma rápida\n'); fprintf(fd,'U_SEP_pu: %f+j*%f\n', real(U_SEP_pu),imag(U_SEP_pu)); fprintf(fd,'U_SEP_pu abs: %f y fase: %f\n', abs(U_SEP_pu),angle(U_SEP_pu)*180/pi); fprintf(fd,'U_d_pu antes cambio C4: %f+j%f\n', real(U_d_pu_antes_cambio), imag(U_d_pu_antes_cambio)); fprintf(fd,'U_d_pu antes cambio C4 abs: %f y fase: %f\n', abs(U_d_pu_antes_cambio), ... angle(U_d_pu_antes_cambio)*180/pi); % Y ahora vamos a calcular que tensión tendremos cuando la carga C4 pase a consumir 7*C4 S_C4_pu = 7*S_C4_pu; % Pasa a ser siete veces la original Z_C34_pu = 1/conj(S_C3_pu+S_C4_pu); U_d_pu_despues_cambio = Z_C34_pu/(Zcc_SEP_pu+Zcc_TR12_pu+Zcc_TR34_pu+Z_C34_pu)*U_SEP_pu; fprintf(fd,'\nRESULTADO APARTADO dC\n'); fprintf(fd,'U_d_pu despues del cambio C4: %f+j%f\n', real(U_d_pu_despues_cambio), ... imag(U_d_pu_despues_cambio)); fprintf(fd,'U_d_pu despues del cambio C4 abs: %f y fase: %f\n', abs(U_d_pu_despues_cambio), ... angle(U_d_pu_despues_cambio)*180/pi); fprintf(fd,'Tensión en d apartado a: %f\n', abs(U_d_pu_antes_cambio)); fprintf(fd,'Tensión en d apartado c: %f\n', abs(U_d_pu_despues_cambio)); fprintf(fd,'Caída de tensión debido al cambio de carga: %f\n', abs(U_d_pu_despues_cambio)- ... abs(U_d_pu_antes_cambio)) % Como podemos ver el error mas gordo se comete en la tensión del SEP pero esa tensión no es la que % vamos buscando sino la tensión en el nudo d fprintf(fd,'Error porcentual en U_SEP : %f\n',(abs(U_SEP_pu_apartado_a)-abs(U_SEP_pu))/ ... abs(U_SEP_pu_apartado_a)*100); fprintf(fd,'Error porcentual en Ud antes: %f\n',(abs(U_d_pu_apartado_b)-abs(U_d_pu_antes_cambio))/ ... abs(U_d_pu_apartado_b)*100); fprintf(fd,'Error porcentual en Ud despues: %f\n', ... (abs(U_d_pu_apartado_c)-abs(U_d_pu_despues_cambio))/abs(U_d_pu_apartado_c)*100); %% Variables locales % Local Variables: % mode: matlab % mode: outline-minor % outline-regexp:"%[% %]+" % End: