Análise Transitória de Sistemas de Controle e Modelagem de
Sistemas não Convencionais no Programa ATP
(Informe técnico apresentado no XIII SNPTEE, Camboriú, Brasil, 1995)
Marco Polo Pereira FURNAS Centrais Elétricas S.A. - Brasil
Claudio S. Fonseca MARTE Engenharia Ltda - Brasil
Dourival S. Carvalho Consultor Independente - Brasil
Laurent Dubé Consultor Independente - USA
RESUMO
O programa digital ATP (Alternative Transients Program), geralmente utilizado para a simulação de transitórios eletromagnéticos em sistemas elétricos, apresenta duas alternativas básicas para a simulação de sistemas de controle e/ou modelagem de elementos não-convencionais, representadas pelas rotinas TACS (Transient Analysis of Control Systems) e MODELS (General Purpose Simulation Tool).
O objetivo principal do artigo consiste em mostrar a potencialidade da MODELS, traçando-se um paralelo com a utilização da TACS, onde a experiência nas empresas brasileiras é considerada satisfatória. Serão apresentados uma descrição sumária dos componentes da MODELS e um exemplo de modelagem de sistemas de controle.
Palavras-chave: ATP, MODELS, TACS, Transitórios, Sistemas de Controle
1. INTRODUÇÃO
A rotina TACS foi desenvolvida para a simulação das interações dinâmicas entre sistemas de controle e os componentes das redes elétricas, sendo os controles descritos na forma usual de diagrama de blocos com configurações arbitrárias dos componentes básicos, funções e/ou dispositivos. As equações dos sistemas de controle são resolvidas pela TACS no domínio do tempo por integração implícita, através da regra de integração trapezoidal.
A TACS tem sido amplamente utilizada na modelagem de sistemas de corrente contínua, de compensadores estáticos, relés de proteção, sistemas de excitação e regulação de máquinas síncronas, etc.... A possibilidade de inclusão de expressões lógicas e algébricas em FORTRAN permite a formulação de algoritmos diversos, seja para a modelagem de componentes ou mesmo para a realização de cálculos.
A rotina MODELS foi desenvolvida por Laurent Dubé, que também é o autor da TACS, e é considerada uma ferramenta de simulação de algoritmos genéricos. Tendo em vista o espaço de tempo entre um desenvolvimento e outro, bem como a própria experiência do autor com a TACS, não há nenhuma dúvida de que MODELS é uma ferramenta moderna que incorpora os últimos conceitos em simulação de sistemas de controle e algoritmos genéricos.
Apesar de toda a sua potencialidade, a experiência de utilização da MODELS ainda é muito pouca. Este fato tem sido observado em várias outras facilidades que o programa ATP apresenta, não sendo, portanto, específico da MODELS, mas os usuários do ATP tem que reverter este quadro antes que a defasagem atual se torne ainda maior.
2. OBJETIVOS BÁSICOS DA MODELS
Os objetivos básicos que nortearam a elaboração da rotina MODELS foram os seguintes:
• possibilitar ao usuário do ATP o desenvolvimento de modelos dos componentes da rede elétrica e de algoritmos de controle não disponíveis no programa ou com a rotina TACS;
• facilitar ao usuário a flexibilidade de utilização de uma linguagem de programação de alto nível sem haver necessidade de interação a nível de programação do código fonte;
• permitir que o usuário não só desenvolva o modelo de determinado componente, mas também determine as suas condições iniciais;
• possibilitar a utilização de uma interface com o ATP, ao nível de modelagem, permitindo ao usuário a conexão de rotinas externas ao programa.
Com a finalidade de prover grande potencialidade sem perder a flexibilidade na construção dos modelos, foi considerado necessário manter as vantagens oferecidas pelas linguagens usuais de programação, incluindo-se as seguintes facilidades:
• separar a descrição de um componente de seu uso efetivo na simulação;
• permitir o uso do mesmo componente em várias instâncias, possivelmente com novos parâmetros ou condições de simulação;
• possibilitar formalmente que um grande modelo seja desenvolvido por partes, reduzindo sua complexidade, explicitando a identificação das interfaces e facilitando o teste e uso de protótipos;
• possibilitar o uso de nomenclatura em separado para cada procedimento, de forma que o usuário possa nomear as variáveis de forma apropriada;
• suportar o uso de comentários internos à descrição, como um auxílio na produção de modelos e procedimentos auto-documentados.
3. IMPLEMENTAÇÃO DOS OBJETIVOS DE PROJETO
A linguagem de simulação MODELS foi construída de forma similar à linguagem Pascal, com a inclusão de funções e sintaxes específicas de aplicação para a representação da operação contínua de sistemas dinâmicos.
Além do procedimento usual por diagramas de blocos, tal como disponível na TACS, MODELS aceita a modelagem de componentes através de procedimentos, funções e algoritmos. O usuário não é limitado a um conjunto pré-definido de componentes, podendo criar bibliotecas de modelos e sub-modelos em função de cada uma das aplicações.
A utilização de formatos livres para a descrição e a possibilidade de usar nomes arbitrariamente longos facilita a auto-documentação, especialmente quando modelos complexos e trabalho em conjunto são necessários.
adicionais podem ser definidas pelo usuário, sob a forma de expressões parametrizadas, listas de pontos e funções externas programadas.
Alterações dinâmicas na operação de um modelo são realizadas através da utilização dos comandos específicos aplicados a grupos de instruções e ao uso de sub-modelos.
A possibilidade da utilização de auto-diagnóstico é importante quando modelos de grande porte tem que ser construídos, corrigidos e ajustados. A detecção de possíveis problemas de operação pode ser construída pelo usuário diretamente dentro do modelo.
A linguagem proporciona um mecanismo para a estruturação do modelo em componentes independentes, através da possibilidade de seu uso dentro de outros sub-modelos ou de um modelo mais complexo, com alteração ou não de parâmetros, "inputs" e "outputs".
A simulação do modelo é basicamente executada em duas fases: uma fase de inicialização e outra de atualização. Procedimentos detalhados podem ser definidos tanto para a fase de inicialização quanto para a fase de operação do modelo.
Programas externos podem ser utilizados através de uma "interface" padronizada, que realiza a conexão do com o ATP, sem necessidade de acesso ao código fonte do programa. A "interface" é definida pelo usuário em termos de tensões, correntes e variáveis de controle da simulação, sem necessidade de conhecimento do ATP a nível de programação. O único requisito consiste em "linkar" o programa externo ao ATP antes de se realizar a simulação.
4. PRINCIPAIS GRUPOS DE INSTRUÇÕES DA MODELS
A utilização da rotina MODELS no ATP necessita de pelo menos três grupos principais de códigos, iniciados pelas palavras-chave MODELS, MODEL e USE e terminados respectivamente por ENDMODELS, ENDMODEL e ENDUSE.
As instruções da MODELS são inseridas no ATP exatamente da mesma forma que as instruções da TACS, logo após as instruções miscelâneas e a instrução ENDMODELS serve para sinalizar o fim da sua utilização. A estrutura básica da MODELS pode ser visualizada na Figura 1.
BEGIN NEW DATA CASE Instruções Iniciais do ATP Instruções Opcionais
Instruções Miscelâneas Etc...
MODELS
Instruções Iniciais da MODELS MODEL
Instruções do Grupo MODEL ENDMODEL
USE
Instruções do Grupo USE ENDUSE
RECORD
Instruções do Grupo RECORD ENDMODELS
Os dois principais grupos de instruções na MODELS são MODEL e USE. O primeiro grupo tem por finalidade a definição da modelagem do componente e o segundo serve para especificar a sua utilização propriamente dita. Os dois grupos são divididos em seções, as quais são iniciadas por códigos que definem os parâmetros do componente e as condições de sua utilização. Enquanto a MODELS estiver ativada podem haver vários grupos de instruções do tipo MODEL-ENDMODEL-USE-ENDUSE.
A Figura 2 apresenta exemplos de instruções normalmente utilizadas no grupo MODEL.
FIGURA 2 - Instruções do Grupo MODEL
Os códigos DATA, CONST, INIT, etc... são os comandos, declarações e procedimentos, seguidos dasinformações apropriadas. Algumas das seções são terminadas com o palavra-chave END e outras não. Nem todas as seções tem que ser usadas num modelo específico nem a seqüência é importante. A exceção é a seção EXEX, a qual deve vir por último.
A palavra-chave MODELS, após as instruções iniciais do ATP, transfere a execução do programa para a rotina MODELS, da mesma forma que para qualquer outra rotina (TACS, por exemplo).
A seção entre MODELS e MODEL é utilizada para a especificação dos canais de "input" e de "output", normalmente para fontes externas da rede do ATP e/ou sinais entre modelos.
A representação esquemática da estrutura da MODELS pode ser visualizada na Figura 3, onde são indicadas as conexões entre ATP e MODELS, bem como as conexões entre os vários sub-modelos.
MODEL (nome do modelo) -- comentários
DATA
-- definição de variáveis -- entrada de valores CONST
-- definição de variáveis -- entrada de valores HISTORY
-- definição de variáveis -- entrada de valores DELAY CELLS
-- definição de variáveis -- entrada de valores VAR
-- definição de variáveis -- entrada de valores INIT
-- definição de variáveis -- entrada de valores ENDINIT
-- comentários EXEX
-- definição do algoritmo do componente ENDEXEX
FIGURA 3 - Representação Esquemática da Estrutura da MODELS
5. EXEMPLO DE UTILIZAÇÃO DA MODELS
O arquivo mostrado na Figura 4 corresponde à simulação de uma função de transferência do tipo Kgain / (1 + k t s), onde o sinal de "input" é um trem de pulsos "Vin". A saída do bloco é retardada de 10 ms em outro bloco para a obtenção do sinal final "Vdel".
O nome do modelo é "model_1", sendo este o nome pelo qual este modelo poderá ser referenciado através de outro grupo ou modelo.
As seções utilizadas no modelo em questão serão apresentadas a seguir.
A palavra-chave DATA assinala a primeira seção do modelo. Os dados definidos nesta seção permitem que valores sejam atribuídos aos elementos do modelo, os quais podem ser redefinidos na seção USE, sem que o modelo necessite de alterações. No exemplo, os dados de entrada são:
DATA
tperiod { dflt : 0.0 } ton { dflt : 0.0 }
onde tperiod e ton são os parâmetros do trem de pulsos "vin", entrada do primeiro bloco do modelo. Notar que estes valores serão redefinidos na seção USE.
A segunda seção é iniciada pela palavra-chave CONST, onde são definidas as constantes a serem utilizadas nas funções de transferência. Os valores atribuídos não podem ser alterados na seção USE. As seguintes constantes foram definidas:
CONST kt {val: 0.05} kgain {val: 2.0}
Codificação Básica
MODELS Input / Output Interface
MODEL A ENDMODEL USE A
ENDUSE
MODEL B ENDMODEL USE B
ENDUSE
MODEL C ENDMODEL USE C
ENDUSE
A próxima seção é iniciada por VAR, para especificar as variáveis a serem utilizadas no modelo, com exceção das declaradas nas seções INPUT, DATA e CONST. De forma diferente da TACS, MODELS não reconhece automaticamente as variáveis usadas no modelo. A omissão de alguma variável na seção VAR resulta em interrupção da execução. No exemplo as seguintes variáveis foram declaradas:
VAR vin, vout, vdel, tcount, dela vin - sinal de "input"
vout - sinal de "output"
vdel - sinal de "output" com retardo dela - retardo no sinal de "output" tcount - contador para o trem de pulsos
A próxima seção utilizada tem por finalidade introduzir a história passada das variáveis. A palavra-chave é HISTORY e os seguintes valores foram especificados para vin, vout e vdel:
HISTORY vin {dflt: 0} vout {dflt: 0} vdel {dflt: 0}
A seção iniciada pela palavra-chave DELAY CELLS tem a finalidade de reservar vetores para a gravação dos valores da história passada das variáveis. Isto pode ser realizado através de uma declaração para todas as variáveis na seção HISTORY ou para algumas variáveis, tal como indicado no exemplo em questão:
DELAY CELLS DFLT: 10 CELLS (vout) : 100
CELLS (VDEL) : 100
A palavra-chave INIT, terminada por ENDINIT, define a seção onde são estabelecidos os valores das variáveis que necessitam de inicialização para a execução do modelo. Todas as variáveis usadas na seção EXEC, com exceção de valores de parâmetros, de história passada, de constantes e de "inputs", tem que ser inicializadas. Em adição à inicialização de variáveis esta seção também permite ao usuário a definição das constantes das seções DATA e CONST. No exemplo em questão foram definidos os seguintes elementos:
INIT
tcount :=0.0 dela : =0.010 ENDINIT
EXEC e ENDEXEC são as palavras-chave para início e término da seção onde o algoritmo do modelo é implementado. No modelo, que é constituído de dois blocos em série para a função kgain / (1 + kts) e retardo igual 10 ms, a amplitude do sinal Vin é 100.0, com duração 30 ms, começando em 20 ms e com período igual a 50 ms. Os dois blocos de controle são descritos por:
laplace (vout/vin) := kgain|s0/(1|s0 + kt|s1) vdel := delay(vout, dela)
A utilização do modelo é realizada através da instrução USE-ENDUSE, com os valores atualizados indicados na seção DATA deste grupo, os quais substituem os valores "default" inicialmente atribuídos no grupo MODEL, e observar que o nome do modelo é alterado para "test". O grupo RECORD serve para especificar que variáveis são reservadas para "output" do modelo.
6.
FORMATOS E SINTAXE DA MODELS
A rotina MODELS utiliza formato livre em todos os níveis. Não é necessário manter alinhamento por colunas ou mesmo utilizar somente letras maiúsculas, mas se recomenda padronizar as instruções para facilitar a identificação e a descrição do modelo. Linhas em branco não são permitidas, mas é possível incluir comentários com "C" na coluna 1, seguido de branco na coluna 2, ou "--" em qualquer posição da linha. Uma outra opção é utilizar o grupo COMMENT - ENDCOMMENT.
Os valores podem ser especificados em decimais ou em notação científica, não sendo permitido começar um número por ".", por exemplo ".4" deve ser digitado "0.4" e os nomes, apesar de não haver limitação no tamanho (com exceção dos transferidos para o ATP), não podem começar por dígitos.
Vetores podem ser utilizados para a especificação de variáveis. Delimitadores podem ser especificados por espaços em branco, vírgulas, ponto e vírgula, etc.... O sinal de igualdade é utilizado para definir o valor de uma variável e o sinal " : " para atribuir valor. Os sinais "( ) " são usados em expressões matemáticas, os sinais "{ }" são usados em declarações e os sinais "[ ]" são usados em vetores.
7. EXPRESSÕES LÓGICAS E NUMÉRICAS
MODELS permite a utilização de uma grande quantidade de expressões matemáticas e lógicas, as quais podem ser combinadas para ser obter o efeito desejado. Os seguintes recursos estão disponíveis: expressões numéricas, expressões lógicas, funções numéricas (residentes ou definidas pelo usuário), funções associativas, expressões derivativas, expressões integrativas, somatórios, expressões para a obtenção de valores inerentes à simulação e funções de transferência de Laplace.
O algoritmo do modelo é controlado com o auxílio de funções do tipo , WHILE-ENDWHILE, FOR-ENDFOR, DO-REDO-ENDDO, SEQUENCE-ENDSEQUENCE, IF-ENDIF, COMBINE-ENDCOMBINE e TIMESTEP, sendo esta última a que permite a utilização de um "time step" na MODELS diferente do usado no ATP.
8. ELABORAÇÃO DE MODELOS COMPLEXOS
Apesar de seu desenvolvimento recente a MODELS tem sido utilizada para o desenvolvimento de modelos complexos, como no caso de simulação de sistemas de controle para estações conversoras de corrente contínua (1), modelagem de arco elétrico para estudos de reignições em disjuntores (2) e simulação do efeito Corona para propagação de surtos em linhas de transmissão (2), demonstrando a sua potencialidade.
O modelo de Corona foi baseado no desenvolvimento de um conjunto de rotinas em FORTRAN, o qual foi transformado em modelo através da "interface" da MODELS que permite a incorporação de programas externos ao ATP.
aquelas relacionadas com a descrição e a documentação do modelo e com a verificação do funcionamento do modelo completo através da elaboração de sub-modelos.
9. BIBLIOGRAFIA
[1] G.SARCINELLI, S.E.SANTO, J.CÁCERES, N.F. SILVA, C.CARDOZO, Modelagem de um Elo de Transmissão em CCAT no Programa ATP Utilizando MODELS, VI ERLAC, Foz do Iguaçu, Maio 1995.
[2] L.DUBÉ, I.BONFANTI, V.VANDERSTOCKT, M. T. CORREIA DE BARROS; Using the Simulation Language "MODELS" with the EMTP
[3] L.DUBÉ, I.BONFANTI, G.BORTONI; MODELS : A New Simulation Tool in the EMTP, European Transactions on Electrical Power Engineering, Vol. 2, 1992, No. 1, pp 45-50.
[4] L.DUBÉ, H.W.DOMMEL; Simulation of Control Systems in an Electromagnetic Transients Program with TACS, IEEE Power Engng. Soc. (PES) Power Ind. Comp. Appl. (PICA) 1977.
[5] LEUVEN EMTP CENTER; ATP Rule Book, 1990.
BEGIN NEW DATA CASE
C deltat tmax xopt copt epsiln tolmat tstart .0001 .150
C print points connec s-s minmax vary again plot 1 1 0 1 1 1 MODELS
C no enty in this group
MODEL model_1 -- the name of this model DATA
tperiod { dflt: 0.0}, ton { dflt : 0.0}, tstart { dflt: 0.0} CONST
kt {val: 0.05}, kgain { val: 2.0} VAR vin, vout, vdel, tcount, dela HISTORY
vin {dflt: 0}, vout { dflt: 0 }, vdel {dflt: 0} DELAY CELLS DFLT: 10
CELLS (vout): 100 CELLS (vdel): 100 INIT
tcount := 0 dela := 0.010 ENDINIT
EXEC
IF t> tstart THEN
-- generate a train of pulses starting at t= tstart tcount := tcount + timestep
-- reset counter at end of on/off period
IF tcount > tperiod THEN tcount := 0 ENDIF -- vin 100 or 0 depending time within period IF tcount < ton THEN
vin := 100.0 ELSE vin := 0.0 ENDIF
-- calculate output from k /(a+bs) block
laplace (vout/vin) := kgain|s0/(1|s0 + kt|s1) -- delay output
vdel := delay(vout, dela) ENDIF
ENDEXEC ENDMODEL
USE model_1 AS test DATA tperiod := 0.05 ton := 0.03 tstart := 0.02 ENDUSE
C RECORD
test.vin AS vin test.vout AS vout test.vdel AS vdel ENDMODELS
C Continuação do Arquivo com os dados do ATP C BRANCH CARDS EMTP data section
SRCE 10. BLANK CARD ENDING BRANCHES
C no switches
BLANK CARD ENDING SWITCHES 14SRCE 1.0 50. BLANK CARD ENDING SOURCES SRCE
BLANK CARD ENDING NODE VOLTAGE REQUEST BLANK CARD ENDING PLOT
BEGIN NEW DATA CASE BLANK