Você está na página 1de 9

cf % clear fault

cls % clear text window


store_nc % Guarda a modifica��o do sistema

define_array MQ_TYPE
define_array MQ_PROMPT
define_array MQ_NUM_CHOICES
define_matrix MQ_CHOICES(30)
define_array MQ_NUM_RESPONSES
define_matrix MQ_RESPONSE(30)

save 0 as MQ_N

save ' ESTUDO DE DIRECIONALIDADE ESQUEMA 67N + 85 (POTT)' as MQ_TITLE


save strcat (
' O usu�rio dever� escolher uma linha para estudo da direcionalidade ' ,
' e outra para aplica��o de falta que envolva a terra, ' ,
' em seguida escolher o intervalo e o tipo de falta',
' e os par�metros de tens�o e corrente ') as MQ_DESCRIPTION

save 2 as MQ_COLUMNS

increment(MQ_N)
save MQ_N lt_dir
save 'Selecione a linha para avaliar direcionalidade' as MQ_PROMPT(MQ_N)
save 'LINE' MQ_TYPE(MQ_N)
save 1 MQ_NUM_RESPONSES(MQ_N)
save 0 MQ_RESPONSE(MQ_N, 1)
save 0 MQ_RESPONSE(MQ_N, 2)
save 0 MQ_RESPONSE(MQ_N, 3)

increment(MQ_N)
save MQ_N lt_curto
save 'Selecione a linha para aplica��o dos curtos-circuitos' as MQ_PROMPT(MQ_N)
save 'LINE' MQ_TYPE(MQ_N)
save 1 MQ_NUM_RESPONSES(MQ_N)
save 0 MQ_RESPONSE(MQ_N, 1)
save 0 MQ_RESPONSE(MQ_N, 2)
save 0 MQ_RESPONSE(MQ_N, 3)

increment(MQ_N)
save MQ_N flt_step
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o intervalo entre os curtos-circuitos' as MQ_PROMPT(MQ_N)
save 3 MQ_NUM_CHOICES(MQ_N)
save 0.01 MQ_CHOICES(MQ_N, 1) %Min
save 0.999 MQ_CHOICES(MQ_N, 2) %Max
save 0 MQ_CHOICES(MQ_N, 3) %Step, 0 para intervalo cont�nuo
save 0.1 MQ_RESPONSE(MQ_N, 1) %Step padr�o

% Escolher o tipo de falta


increment(MQ_N)
save MQ_N flt_typ
save 'TC' MQ_TYPE(MQ_N) %texto
save 'Selecione o tipo de falta' as MQ_PROMPT(MQ_N)
save 2 MQ_NUM_CHOICES(MQ_N)
save 'FASE_TERRA' MQ_CHOICES(MQ_N, 1)
save 'FASE_FASE_TERRA' MQ_CHOICES(MQ_N, 2)
save 1 MQ_RESPONSE(MQ_N, 1) %Step padr�o

% Escolher a resist�ncia de falta


increment(MQ_N)
save MQ_N flt_res
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor da resist�ncia de curto-circuito (Ohm)' as
MQ_PROMPT(MQ_N)
save 3 MQ_NUM_CHOICES(MQ_N)
save 0 MQ_CHOICES(MQ_N, 1) %Min
save 1000000 MQ_CHOICES(MQ_N, 2) %Max
save 0 MQ_CHOICES(MQ_N, 3) %Step, 0 para intervalo cont�nuo
save 0 MQ_RESPONSE(MQ_N, 1) %Step padr�o

% -------------------------- Par�metros fun��o DEF -----------------------------

% Escolher a grandeza de polariza��o


increment(MQ_N)
save MQ_N plr_typ
save 'TC' MQ_TYPE(MQ_N) %texto
save 'Selecione o tipo de polariza��o' as MQ_PROMPT(MQ_N)
save 2 MQ_NUM_CHOICES(MQ_N)
save 'SEQUENCIA_ZERO' MQ_CHOICES(MQ_N, 1)
save 'SEQUENCIA_NEGATIVA' MQ_CHOICES(MQ_N, 2)
save 1 MQ_RESPONSE(MQ_N, 1) %Step padr�o

% Rela��o de TC Origem
increment(MQ_N)
save MQ_N RTC_O
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor da RTC origem' as MQ_PROMPT(MQ_N)
save 1 MQ_NUM_CHOICES(MQ_N)
save 240 MQ_CHOICES(MQ_N, 1)
save 240 MQ_RESPONSE(MQ_N, 1)

% Rela��o de TP Origem
increment(MQ_N)
save MQ_N RTP_O
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor da RTP origem' as MQ_PROMPT(MQ_N)
save 1 MQ_NUM_CHOICES(MQ_N)
save 2000 MQ_CHOICES(MQ_N, 1)
save 2000 MQ_RESPONSE(MQ_N, 1)

% Tensao V > (sequ�ncia zero ou negativa) terminal origem


increment(MQ_N)
save MQ_N dir_V_O
save 'N' MQ_TYPE(MQ_N) %numerico
save strcat('Selecione o valor de tens�o de opera��o do terminal origem',
' de acordo com a grandeza de polariza��o (3*V0 ou V2)') as MQ_PROMPT(MQ_N)
save 3 MQ_NUM_CHOICES(MQ_N)
save 0.00001 MQ_CHOICES(MQ_N, 1) %Min
save 50 MQ_CHOICES(MQ_N, 2) %Max
save 0.000001 MQ_CHOICES(MQ_N, 3) %Step, 0 para intervalo cont�nuo
save 0.5 MQ_RESPONSE(MQ_N, 1) %Step padr�o

% Corrente IN > (sequ�ncia zero) terminal destino


save 5 as Inom %valor da corrente nominal
increment(MQ_N)
save MQ_N dir_In_O
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor de corrente de opera��o (In) do terminal origem' as
MQ_PROMPT(MQ_N)
save 3 MQ_NUM_CHOICES(MQ_N)
save 0.00001 MQ_CHOICES(MQ_N, 1) %Min
save 50 MQ_CHOICES(MQ_N, 2) %Max
save 0.000001 MQ_CHOICES(MQ_N, 3) %Step, 0 para intervalo cont�nuo
save 0.5 MQ_RESPONSE(MQ_N, 1) %Step padr�o

% Fator de corrente IN rev origem


increment(MQ_N)
save MQ_N ft_rev_O
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor o fator de corrente reversa origem' as MQ_PROMPT(MQ_N)
save 3 MQ_NUM_CHOICES(MQ_N)
save 0.0001 MQ_CHOICES(MQ_N, 1) %Min
save 1 MQ_CHOICES(MQ_N, 2) %Max
save 0.0001 MQ_CHOICES(MQ_N, 3) %Step
save 0.6 MQ_RESPONSE(MQ_N, 1)%Step padr�o

% M�ximo �ngulo de torque


increment(MQ_N)
save MQ_N MTA_O
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o MTA(M�ximo �ngulo de Torque) origem' as MQ_PROMPT(MQ_N)
save 1 MQ_NUM_CHOICES(MQ_N)
save -60 MQ_CHOICES(MQ_N, 1)
save -60 MQ_RESPONSE(MQ_N, 1)

% Rela��o de TC Destino
increment(MQ_N)
save MQ_N RTC_D
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor da RTC Destino' as MQ_PROMPT(MQ_N)
save 1 MQ_NUM_CHOICES(MQ_N)
save 240 MQ_CHOICES(MQ_N, 1)
save 240 MQ_RESPONSE(MQ_N, 1)

% Rela��o de TP Destino
increment(MQ_N)
save MQ_N RTP_D
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor da RTP Destino' as MQ_PROMPT(MQ_N)
save 1 MQ_NUM_CHOICES(MQ_N)
save 2000 MQ_CHOICES(MQ_N, 1)
save 2000 MQ_RESPONSE(MQ_N, 1)

% Tensao V > (sequ�ncia zero ou negativa) terminal destino


increment(MQ_N)
save MQ_N dir_V_D
save 'N' MQ_TYPE(MQ_N) %numerico
save strcat('Selecione o valor de tens�o de opera��o do terminal destino',
' de acordo com a grandeza de polariza��o (3*V0 ou V2)') as MQ_PROMPT(MQ_N)
save 3 MQ_NUM_CHOICES(MQ_N)
save 0.00001 MQ_CHOICES(MQ_N, 1) %Min
save 50 MQ_CHOICES(MQ_N, 2) %Max
save 0.000001 MQ_CHOICES(MQ_N, 3) %Step, 0 para intervalo cont�nuo
save 0.5 MQ_RESPONSE(MQ_N, 1) %Step padr�o

% Corrente IN > (sequ�ncia zero) terminal destino

increment(MQ_N)
save MQ_N dir_In_D
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor de corrente de opera��o (In) terminal destino' as
MQ_PROMPT(MQ_N)
save 3 MQ_NUM_CHOICES(MQ_N)
save 0.00001 MQ_CHOICES(MQ_N, 1) %Min
save 50 MQ_CHOICES(MQ_N, 2) %Max
save 0.000001 MQ_CHOICES(MQ_N, 3) %Step, 0 para intervalo cont�nuo
save 0.5 MQ_RESPONSE(MQ_N, 1) %Step padr�o

% Fator de corrente IN rev destino


increment(MQ_N)
save MQ_N ft_rev_D
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o valor o fator de corrente reversa destino' as MQ_PROMPT(MQ_N)
save 3 MQ_NUM_CHOICES(MQ_N)
save 0.0001 MQ_CHOICES(MQ_N, 1) %Min
save 1 MQ_CHOICES(MQ_N, 2) %Max
save 0.0001 MQ_CHOICES(MQ_N, 3) %Step
save 0.6 MQ_RESPONSE(MQ_N, 1)%Step padr�o

% M�ximo �ngulo de torque


increment(MQ_N)
save MQ_N MTA_D
save 'N' MQ_TYPE(MQ_N) %numerico
save 'Selecione o MTA(M�ximo �ngulo de Torque) destino' as MQ_PROMPT(MQ_N)
save 1 MQ_NUM_CHOICES(MQ_N)
save -60 MQ_CHOICES(MQ_N, 1)
save -60 MQ_RESPONSE(MQ_N, 1)

help_form mq_popup
message 'Responda as perguntas'
read(' ') str1
if(str1= 'X' or str1 = ' ') then
dis 'Macro cancelada pelo usuario'
interrupt
endif

if(mq_n = 0) then
dis'Macro cancelada pelo usuario'
interrupt
endif

% ------------------- Obter Informa��es dos Multiquestions ---------------------

% Linha estudada a direcionalidade


save MQ_RESPONSE(lt_dir, 1) as g_fbus_e
save MQ_RESPONSE(lt_dir, 2) as g_tbus_e
save MQ_RESPONSE(lt_dir, 3) as g_ckt_e

% Linha onde ser� aplicada os curtos


save MQ_RESPONSE(lt_curto, 1) as g_fbus_c
save MQ_RESPONSE(lt_curto, 2) as g_tbus_c
save MQ_RESPONSE(lt_curto, 3) as g_ckt_c

% Step adotado para c�lculo do curto-ciruito em cada ponto da linha


save MQ_RESPONSE(flt_step, 1) as passo
save 0 flt_loc

% Resist�ncia utilizada
save MQ_RESPONSE(flt_res, 1) as Resistencia

% Tipo de falta
if(MQ_RESPONSE(flt_typ, 1)=1)then
DEFINE_SLGR(Resistencia)
save 'SLGR' as flt_type
elseif(MQ_RESPONSE(flt_typ, 1)=2)then
DEFINE_DLGR(Resistencia)
save 'DLGR' as flt_type
endif

% Tipo de polariza��o
if(MQ_RESPONSE(plr_typ, 1)=1)then
save 'Seq_Zero' as Polarizacao
elseif(MQ_RESPONSE(plr_typ, 1)=2)then
save 'Seq_Nega' as Polarizacao
endif

% Rela��o de TC e TP origem
save MQ_RESPONSE(RTC_O, 1) as Valor_RTC_O
save MQ_RESPONSE(RTP_O, 1) as Valor_RTP_O

% Limites m�nino de corrente e tens�o terminal origem


save MQ_RESPONSE(dir_In_O, 1) as I_Min_F
save MQ_RESPONSE(dir_V_O, 1) as V_Min_F

% Valor do fator de corrente reversa origem


save MQ_RESPONSE(ft_rev_O, 1) as Fator_Rev_F % valor fixo
save (I_Min_F*Fator_Rev_F) as I_Min_R_F

% Rela��o de TC e TP destino
save MQ_RESPONSE(RTC_D, 1) as Valor_RTC_D
save MQ_RESPONSE(RTP_D, 1) as Valor_RTP_D

% Limites m�nino de corrente e tens�o terminal destino


save MQ_RESPONSE(dir_In_D, 1) as I_Min_T
save MQ_RESPONSE(dir_V_D, 1) as V_Min_T

% Valor do fator de corrente reversa destino


save MQ_RESPONSE(ft_rev_D, 1) as Fator_Rev_T
save (I_Min_T*Fator_Rev_T) as I_Min_R_T

% M�ximo Angulo de torque origem ( MTA - M�ximo �ngulo de Torque)


save MQ_RESPONSE(MTA_O, 1) as Max_Ang_Torq_O

% M�ximo Angulo de torque destino ( MTA - M�ximo �ngulo de Torque)


save MQ_RESPONSE(MTA_D, 1) as Max_Ang_Torq_D

% ----------------------------------------------------------------------------

% Informa��es das barras da linha estudada


save bus_id g_fbus_e fbusid
save bus_id g_tbus_e tbusid

%Variavel para Impress�o do cabe�alho resultado


save 0 as Cont

% Fator de multiplica��o da tens�o 3V0 ou V2


save cmplx(-1, 0) as MenosUm

% Regi�o de opera��o Origem


save -90+Max_Ang_Torq_O as Ang_Inf_O
save 90+Max_Ang_Torq_O as Ang_Max_O

% Regi�o de opera��o Origem


save -90+Max_Ang_Torq_D as Ang_Inf_D
save 90+Max_Ang_Torq_D as Ang_Max_D

%------------------------------- Estudo Curto-Circuito ----------------------

% Corrente na barra de origem.


nc close_in g_fbus_c g_tbus_c g_ckt_c
af flt_type close_in_bus x

Resultado

save 1-passo as indx


save passo + flt_loc as flt_loc

cc

dowhile ((flt_loc < indx) or (flt_loc = indx),

recall_nc % Reestabelece a modifica��o original


nc mid g_fbus_c g_tbus_c g_ckt_c flt_loc % Aplica��o de barra em partes da linha
af flt_type lastnewbus x

Resultado

save passo + flt_loc as flt_loc

cc % Limpa todas altera��es


)

recall_nc % Reestabelece a modifica��o original


nc close_in g_tbus_c g_fbus_c g_ckt_c
af flt_type close_in_bus x

Resultado

cc
recall_nc
)

% Macro que imprime o resultado na tela


define_macro(Resultado,

% C�lculo do �ngulo para determinar a direcionalidade origem


if(Polarizacao='Seq_Zero')then
save 3*iz*baseamps g_fbus_e g_tbus_e g_ckt_e as i_fbus_z
save 3*vz*basekv/(sqrt(3)) g_fbus_e as v_fbus_z
save v_fbus_z as v_fbus
save i_fbus_z as i_fbus
save (arg(i_fbus_z)-arg(MenosUm*v_fbus_z)) as Angulo_f
elseif(Polarizacao='Seq_Nega')then
save in*baseamps g_fbus_e g_tbus_e g_ckt_e as i_fbus_n
save vn*basekv/(sqrt(3)) g_fbus_e as v_fbus_n
save (arg(i_fbus_n)-arg(MenosUm*v_fbus_n)) as Angulo_f
save v_fbus_n as v_fbus
save i_fbus_n as i_fbus
endif

if ((Ang_Inf_O < Angulo_f) and (Angulo_f < Ang_Max_O) and


(abs(v_fbus*1000)/Valor_RTP_O > V_Min_F) and (abs(i_fbus)/Valor_RTC_O > I_Min_F))
then
save 'Dir' as Direcao_f
elseif (not((Ang_Inf_O < Angulo_f) and (Angulo_f < Ang_Max_O)) and
(abs(v_fbus*1000)/Valor_RTP_O > V_Min_F) and (abs(i_fbus)/Valor_RTC_O > I_Min_R_F))
then
save 'Rev' as Direcao_f
else
save ' - ' as Direcao_f
endif

% C�lculo do �ngulo para determinar a direcionalidade destino


if(Polarizacao='Seq_Zero')then
save 3*iz*baseamps g_tbus_e g_fbus_e g_ckt_e as i_tbus_z
save 3*vz*basekv/(sqrt(3)) g_tbus_e as v_tbus_z
save (arg(i_tbus_z)-arg(MenosUm*v_tbus_z)) as Angulo_t
save v_tbus_z as v_tbus
save i_tbus_z as i_tbus
elseif(Polarizacao='Seq_Nega')then
save in*baseamps g_tbus_e g_fbus_e g_ckt_e as i_tbus_n
save vn*basekv/(sqrt(3)) g_tbus_e as v_tbus_n
save (arg(i_tbus_n)-arg(MenosUm*v_tbus_n)) as Angulo_t
save v_tbus_n as v_tbus
save i_tbus_n as i_tbus
endif

if ((Ang_Inf_D < Angulo_t) and (Angulo_t < Ang_Max_D) and


(abs(v_tbus*1000)/Valor_RTP_D > V_Min_T) and (abs(i_tbus)/Valor_RTC_D > I_Min_T))
then
save 'Dir' as Direcao_t
elseif (not((Ang_Inf_D < Angulo_t) and (Angulo_t < Ang_Max_D)) and
(abs(v_tbus*1000)/Valor_RTP_D > V_Min_T) and (abs(i_tbus)/Valor_RTC_D > I_Min_R_T))
then
save 'Rev' as Direcao_t
else
save ' - ' as Direcao_t
endif

if ((Direcao_f='Dir') and (Direcao_t='Dir')) then


save 'Trip' as Acao
else
save '-' as Acao
endif

% Apresenta��o dos resultados


save line_name g_fbus_c g_tbus_c g_ckt_c as nome_linha
if(flt_type='SLGR')then
save 'FASE TERRA' as tipo_falta
elseif(flt_type='DLGR')then
save 'FASE FASE TERRA' as tipo_falta
endif

if(Polarizacao='Seq_Zero')then
save 'SEQU�NCIA ZERO' as tipo_polarizacao
elseif(Polarizacao='Seq_Nega')then
save 'SEQU�NCIA NEGATIVA' as tipo_polarizacao
endif

if(Polarizacao='Seq_Zero')then

if (Cont=0) then

dis ' '


dis
'----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------'
dis 'Estudo de direcionalidade esquema 67N + 85 (Aided Def) rel� P442'
dis 'Linha onde os curtos s�o aplicados ', nome_linha,' de ' , g_fbus_c,'
para ', g_tbus_c, ' circuito ', g_ckt_c
dis 'Tipo de falta : ', tipo_falta
dis 'Resist�ncia de falta: ' , Resistencia, ' Ohm'
dis 'Tipo de polariza��o: ', tipo_polarizacao
dis ' '
dis'Ajuste Origem '
dis '--------------- ',fbusid,' ---------------'
dis 'V> :', V_Min_F, ' V IN> : ',I_Min_F,' A'
dis 'RTC: ', Valor_RTC_O,' RTP: ', Valor_RTP_O
dis 'Fator Rev: ', Fator_Rev_F
dis 'M�ximo �ngulo de torque: ', Max_Ang_Torq_O
dis ' '
dis'Ajuste Destino '
dis '--------------- ',tbusid,' ---------------'
dis 'V>:', V_Min_T, ' V IN>: ',I_Min_T,' A'
dis 'RTC:', Valor_RTC_D,' RTP:', Valor_RTP_D
dis 'Fator Rev: ', Fator_Rev_T
dis 'M�ximo �ngulo de torque: ', Max_Ang_Torq_D
dis ' '
dis'------------------------', fbusid,
'------------------------------------------ -------------------------',
tbusid, '-------------------------------------------'
dis 'Posi��o(pu) (3I0-A) (3V0-kV) Dire��o
Angulo (3I0-A) (3V0-kV) Dire��o
Angulo A��o'

dis'-------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------'
save Cont+1 as Cont

endif

dis ntoa(flt_loc, "(F6.2)"),' ',displr(i_fbus_z),'


',displr(v_fbus_z),' ',Direcao_f,' ',Angulo_f,'
',displr(i_tbus_z),' ',displr(v_tbus_z),' ',Direcao_t,'
',Angulo_t,' ',Acao

elseif(Polarizacao='Seq_Nega')then

if (Cont=0)then

dis ' '


dis
'----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------'
dis 'Estudo de direcionalidade esquema 67N + 85 (Aided Def) rel� P442'
dis 'Linha onde os curtos s�o aplicados ', nome_linha,' de ' , g_fbus_c,'
para ', g_tbus_c, ' circuito ', g_ckt_c
dis 'Tipo de falta : ', tipo_falta
dis 'Resist�ncia de falta: ' , Resistencia, ' Ohm'
dis 'Tipo de polariza��o: ', tipo_polarizacao
dis ' '
dis'Ajuste Origem '
dis '--------------- ',fbusid,' ---------------'
dis 'V> :', V_Min_F, ' V IN> : ',I_Min_F,' A'
dis 'RTC: ', Valor_RTC_O,' RTP: ', Valor_RTP_O
dis 'M�ximo �ngulo de torque: ', Max_Ang_Torq_O
dis ' '
dis'Ajuste Destino '
dis '--------------- ',tbusid,' ---------------'
dis 'V>:', V_Min_T, ' V IN>: ',I_Min_T,' A'
dis 'RTC:', Valor_RTC_D,' RTP:', Valor_RTP_D
dis 'M�ximo �ngulo de torque: ', Max_Ang_Torq_D
dis ' '
dis'------------------------', fbusid,
'------------------------------------------ -------------------------',
tbusid, '-------------------------------------------'
dis 'Posi��o(pu) (I2-A) (V2-kV) Dire��o
Angulo (I2-A) (V2-kV) Dire��o Angulo
A��o'

dis'-------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------'
save Cont+1 as Cont

endif

dis ntoa(flt_loc, "(F6.2)"),' ',displr(i_fbus_n),'


',displr(v_fbus_n),' ',Direcao_f,' ',Angulo_f,'
',displr(i_tbus_n),' ',displr(v_tbus_n),' ',Direcao_t,'
',Angulo_t,' ',Acao

endif

)
return

Você também pode gostar