Sei sulla pagina 1di 8

SNPTEE

SEMINRIO NACIONAL
DE PRODUO E GAT - 06
TRANSMISSO DE 14 a 17 Outubro de 2007
ENERGIA ELTRICA Rio de Janeiro - RJ

GRUPO IV
GRUPO DE ESTUDO DE ANLISE E TCNICAS DE SISTEMAS DE POTNCIA - GAT

INTEGRAO ENTRE OS PROGRAMAS ATP E MATLAB/SIMULINK EM TEMPO DE EXECUO


APLICVEL A ESTUDOS DE TRANSITRIOS ELETROMAGNTICOS DEVIDOS MANOBRA DE
EQUIPAMENTOS
Henildo Medeiros de Barros*
ONS Operador Nacional do Sistema Eltrico
Carlos F. Teodsio Soares
Programa de Engenharia Eltrica - COPPE/UFRJ
Fbio Domingues de Jesus
ENELTEC Engenharia Eltrica e Tecnologia

RESUMO

Este trabalho descreve o esforo empreendido e os resultados auferidos no desenvolvimento de um ambiente de


simulao integrado no qual esto presentes as funcionalidades de ferramentas padro empregadas por
engenheiros e especialistas em estudos de transitrios eletromagnticos resultantes de manobras em
equipamentos: Os programas ATP (Alternative Transients Program) e MATLAB/Simulink.

O principal motivador dessa integrao a viabilizao do uso seqencial ou simultneo do motor de


processamento/soluo de cada ferramenta no decorrer de uma mesma simulao. Tal faculdade possibilita,
numa primeira aplicao, o uso da moderna interface grfica do MATLAB/Simulink para apresentao e
processamento de resultados durante a simulao. Em modo mais sofisticado, a integrao visa tambm
utilizao conjunta das bibliotecas de modelos disponveis em ambas as ferramentas. Tais bibliotecas so
caracterizadas, no caso do ATP, pela robustez e versatilidade e so caracterizadas, no caso do MATLAB/Simulink,
pela especializao e facilidade de programao.

Inicialmente, a exemplo de trabalhos similares disponveis na literatura, foi empregado o mecanismo de integrao
padro disponvel no MATLAB/Simulink a biblioteca MATLAB Engine. Apesar de permitir o controle de execuo
do Matlab por meio de um programa externo, esse mecanismo mostrou-se mais adequado s tarefas de pr e
ps-processamento de resultados devido ao seu baixo desempenho computacional intrnseco.

Posteriormente, foram investigadas diversas alternativas de integrao de diferentes processos computacionais


em ambiente MS-Windows, visando identificao do mecanismo cujo requisito de desempenho computacional
fosse o mais adequado ao uso combinado das ferramentas ATP e MATLAB/Simulink para a realizao de estudos
de transitrios eletromagnticos.

A disponibilidade de uma interface para a integrao de dois ambientes de simulao distintos e complementares
o ATP e o MATLAB/Simulink , adequados ao uso nos estudos de transitrios eletromagnticos, possibilita ao
ONS (Operador Nacional do Sistema Eltrico) a utilizao de um ferramental de simulao, no qual esto
incorporadas as melhores funcionalidades de cada uma dessas duas ferramentas. A interface desenvolvida pelo
especialista em engenharia de sistemas computacionais, apesar da complexidade associada ao controle de
funes ao nvel de sistema operacional, foi realizada de forma a ser transparente ao usurio final, ou seja, o
especialista em estudos de transitrios eletromagnticos.

PALAVRAS-CHAVE

Estudos de Transitrios Eletromagnticos, ATP, MATLAB/Simulink, Ambiente de Simulao Integrado.

*Rua da Quitanda n 196 - Centro - CEP 20091-005 Rio de Janeiro - RJ - BRASIL


Tel.: (021) 22039804 Fax: (021) 22039411 e-mail:henildo@ons.org.br
2

1.0 - INTRODUO

O programa ATP uma ferramenta computacional largamente utilizada na simulao de transitrios


eletromagnticos em sistemas de potencia. Apresenta-se como ferramenta de uso livre que adotada, sem
restries, pelas empresas do setor eltrico brasileiro e pelo ONS devido a sua robustez e generalidade. O
ambiente MATLAB/Simulink uma ferramenta computacional concebida para modelagem e simulao de
sistemas dinmicos, a qual oferece maior potencial para representao de equipamentos com eletrnica de
potncia e dispositivos de controle e processamento de sinais. Apresenta-se como ferramenta comercial de largo
espectro de utilizao, devido facilidade de uso do seu ambiente de programao e existncia de inmeras
bibliotecas Toolboxes especializadas.

Modernamente, em vista da consolidao de algumas ferramentas de simulao como padro aplicvel a estudos
de transitrios eletromagnticos no domnio do tempo ATP, PSCAD/EMTDC e o EMTP-RV e de ferramentas
matemticas de simulao de sistemas dinmicos e discretos no tempo MATLAB/Simulink , h uma tendncia
natural integrao do primeiro grupo de programas com o segundo grupo, visando, principalmente, a fazer uso
das melhores caractersticas de cada uma das ferramentas numa mesma simulao. Nessa vertente, o suporte a
mecanismos de comunicao entre processos (Interprocess Communication IPC) nos diversos sistemas
operacionais, bem como a disponibilidade de arquiteturas computacionais de baixo custo, dotadas de mltiplos
processadores, prov os subsdios necessrios integrao de processos computacionais identificados com cada
uma dessas ferramentas no somente de forma seqencial, mas tambm em modo simultneo durante o tempo
de execuo da simulao. Nesse ltimo caso, alm de as ferramentas de simulao atenderem a determinados
protocolos de interface, necessrio tambm que seja garantida a sincronizao entre os processos identificados
com cada uma das mesmas.

De fato, tanto o PSCAD/EMTDC quanto o EMTP-RV j contam, em maior ou menor grau, com tal funcionalidade
em seu ambiente de simulao. No PSCAD/EMTDC, o usurio invoca uma interface FORTRAN, especialmente
desenvolvida para comunicao on-line como ambiente MATLAB/Simulink, atravs de cone disponvel em sua
interface grfica PSCAD. Nesse caso, a integrao realizada de forma transparente ao usurio e requer um
mnimo de esforo do mesmo. No EMTP-RV, a interface realizada por meio de chamadas diretas a bibliotecas
do tipo DLL (Dynamic Link Library) geradas por Toolboxes especializadas do ambiente MATLAB/Simulink. Nesse
ltimo caso, a interao entre as ferramentas d-se apenas no instante de gerao do cdigo executvel, no
havendo interao durante o tempo de execuo da simulao, como no primeiro caso.

O ATP, pela filosofia adotada em sua distribuio, demanda, entretanto, que o prprio usurio seja o provedor das
rotinas especficas para a comunicao do processo computacional a ele associado com os processos associados
s ferramentas complementares. Obviamente, essa uma tarefa que extrapola a rea de conhecimento de um
especialista em estudos de transitrios eletromagnticos, o que representa um primeiro obstculo a ser superado,
visando integrao do ATP a outras ferramentas. A despeito dessa desvantagem, o ATP preenche um requisito
bsico, o qual permite a sua interao com outras ferramentas em tempo de execuo, que justamente a
existncia de interface prpria para a incluso de modelos externos definidos pelo usurio.

2.0 - HISTRICO DE INTEGRAO COM O ATP

O programa ATP dispe de duas linguagens especializadas denominadas TACS e MODELS, com funes pr-
definidas que facultam o desenvolvimento de modelos complexos de equipamentos e/ou sistemas de controle.
Contudo, a ausncia de uma interface homem-mquina moderna, a inexistncia de bibliotecas de modelos
especficas e a necessidade de conhecimento especializado fazem do uso dessas linguagens uma tarefa
desestimulante para uma representao mais completa e aprimorada da rede sob estudo. Por conta dessa
dificuldade e da necessidade de atualizao do cdigo frente s demais ferramentas comercias, o desenvolvedor
do ATP dotou o programa de algumas funcionalidades que permitem a incorporao de modelos externos ao ATP,
descritos em linguagem de alto nvel (FORTRAN, C e C++), e viabilizam, com maior grau de tcnica e criatividade,
o controle de processos computacionais externos ao ambiente de simulao do prprio ATP.

As primeiras iniciativas de integrao entre os programas ATP e MATLAB/Simulink exploraram a automao de


modificaes da base de dados do ATP, atravs de scripts de comandos em ambiente MATLAB adequados
programao dos casos correspondentes a uma seqncia de simulaes. Nesse caso especfico, a interao
ocorre apenas no instante de execuo do ATP, atravs de uma chamada ao DOS shell comandos DOS ou !
(shell scape) , via janela de comandos do MATLAB. A referncia [1] apresenta um exemplo de interao dessa
natureza, correspondente avaliao de desempenho de rels de proteo. Entretanto, a literatura tcnica
internacional contempla poucos artigos que detalham a utilizao direta de modelos externos descritos em
linguagem padro do ambiente MATLAB/Simulink, em programas de simulao de transitrios eletromagnticos.
No caso do programa ATP, existe um registro de aplicao razoavelmente bem sucedida com uso simultneo dos
motores de processamento/soluo dessa ferramenta integrada com o MATLAB/Simulink [2]. Nesse trabalho, o
motivador maior de tal aplicao foi a representao da rede eltrica e seus sistemas de proteo digital em malha
fechada, para a anlise do desempenho dos respectivos rels.
3

Em [3], os autores apresentam uma simulao na qual o sistema de potncia e os rels de proteo do tipo digital
foram representados, respectivamente, no ATP e no ambiente grfico do MATLAB/Simulink. Nessa simulao, a
soluo realizada pelos dois motores de processamento simultaneamente, atravs de uma estratgia
denominada buffer de interao de processos. Em outras palavras, os autores sugerem a utilizao de um bloco
de memria, reservada para o armazenamento temporrio dos dados intercambiados entre as duas ferramentas
durante o intervalo de simulao. Na seqncia de soluo, isto , a cada passo de integrao, os sinais de
entrada dos rels tenses e correntes no secundrio dos transformadores de instrumento so computados
pelo ATP e disponibilizados na rea de intercmbio. No mesmo passo de integrao ou em um mltiplo desse, o
MATLAB/Simulink avalia a resposta do rel de proteo, a partir dos dados disponibilizados na rea de
intercmbio, e atualiza o sinal de disparo do mesmo, disponibilizando-o tambm nessa rea. No passo de
integrao seguinte, o ATP atualiza o estado das chaves de acordo com o sinal de disparo gerado no passo
anterior e calcula a nova soluo da rede. De fato, os autores utilizam, nessa aplicao, o mecanismo IPC
conhecido como Shared Memory.

Posteriormente, em trabalho desse mesmo grupo [2], feita uma reavaliao da metodologia utilizada no trabalho
anterior, tendo em vista o baixo desempenho computacional da soluo integrada. Nessa oportunidade, os
autores indicam como melhor opo modelagem dos rels via linguagem grfica do Simulink, a sua
representao por modelo externo ao ATP, descrito em linguagem de alto nvel (C++). Obviamente, essa soluo
representa um retrocesso, pois se trata da renncia s facilidades computacionais de representao e modelagem
oferecidas pelo ambiente MATLAB/Simulink.

3.0 - INCORPORAO DE MODELOS EXTERNOS AO ATP

3.1 Interface de modelos descritos em linguagem de alto nvel

No uso tradicional do programa ATP, o especialista descreve a lgica representativa de sistemas de


monitoramento/controle no domnio contnuo ou discreto do tempo atravs das instrues existentes nas
linguagens proprietrias TACS e MODELS. Tal procedimento o obriga a converter o diagrama funcional do
controle ou o cdigo fonte de rotina executvel em um microprocessador para uma dessas linguagens,
fazendo as devidas adaptaes e simplificaes em funo dos blocos e instrues disponveis nas mesmas.Por
essa razo, o uso de tais linguagens mais apropriado representao de sistemas de monitoramento/controle
relativamente simples a serem utilizados no processamento matemtico dos valores instantneos das grandezas
eltricas da rede e na operao de chaves ou fontes controladas.

3.2 Interface MODELS

A utilizao da interface externa via linguagem MODELS evita que o usurio tenha de converter um cdigo j
existente em linguagem de alto nvel (FORTRAN, C ou C++) para uma das linguagens proprietrias do ATP, o que
poderia tornar-se invivel a depender da complexidade do que se quer representar. A interface externa disponvel
na MODELS possibilita a programao da rotina necessria a compatibilizao das grandezas que sero
intercambiveis entre o ATP e o cdigo externo. Por outro lado, exigido como requisito bsico que o cdigo fonte
externo foreign function possa ser tratado pelo mesmo compilador da verso disponvel do ATP.

Essa interface especialmente til quando se necessita realizar a interao do ATP com controladores e sistemas
de proteo desenvolvidos pelo prprio usurio, alm do que possibilita um melhor desempenho computacional da
simulao visto que o cdigo externo passa a ser embarcado (embeeded). Numa aplicao mais avanada,
permite, inclusive, o controle da execuo de um outro programa ou ambiente de simulao que seja apto a
realizar operaes to complexas quanto s realizadas pelo ATP. Tal tipo de aplicao ser explorado nos itens
seguintes deste artigo.

3.3 Elemento Tipo 94 (TYPE-94)

A utilizao adequada desse componente, contemplando as suas trs variantes, abre uma possibilidade de uso
integrado do ATP com o MATLAB/Simulink, que faculta ao usurio a escolha da parcela de soluo a ser
executada por cada processo associado. Mais especificamente, o uso elemento Tipo 94 em conjunto com rotinas
externas desenvolvidas pelo usurio, possibilita que outro processo correspondente a programa ou ambiente de
simulao distinto se integre ao processo correspondente ao ATP no intervalo de tempo de simulao, de forma
executar uma parcela do clculo das tenses nodais empregando seus prprios modelos matemticos e
algoritmos de soluo. Tais rotinas externas, acessveis a partir da interface MODELS, so especializadas para o
controle e gerenciamento da comunicao entre os referidos processos.

Esse elemento corresponde chave para a utilizao integral das funcionalidades existentes nas ferramentas ATP
e MATLAB/Simulink, ampliando a perspectiva de uso da interface externa via linguagem MODELS no
aprimoramento de aspectos de pr-processamento de dados e ps-processamento de resultados para uma
evoluo na quantidade de opes disponveis para a modelagem de equipamentos individuais ou pores da
rede eltrica, bem como uso efetivo de arquiteturas multiprocessadas e ambiente de processamento distribudo.
4

Em ltima anlise pode-se lanar mo da subdiviso implcita ao algoritmo de soluo do ATP, adotada toda a vez
que o processo associado a essa ferramenta trata de rede na qual est presente um ou mais componentes Tipo
94, para distribuir parte da soluo entre o prprio ATP e o MATLAB/Simulink. Pode-se at mesmo utilizar o
processo correspondente ao MATLAB/Simulink como um escalonador de diversos processos correspondentes a
simulaes de subsistemas em ATP integrantes de uma mesma rede.

4.0 - REPRESENTAO DE MODELOS EM LINGUAGEM DE ALTO NVEL VIA TOOLBOXES


MATLAB/SIMULINK

A principal vantagem das ferramentas de modelagem disponibilizadas pelo pacote Matlab/Simulink a grande
facilidade com que o usurio final pode construir modelos de equipamentos, atravs da simples construo de
diagramas de blocos em uma interface grfica amigvel. Uma vez que o modelo esteja pronto, emprega-se a
ferramenta Real-Time Workshop (RTW), do prprio MATLAB/Simulink, para produzir um conjunto de funes,
escritas em linguagem C, que descrevem o comportamento dinmico do modelo em questo. Tais funes podem
ser chamadas por uma foreign function, associada interface MODELS de uma simulao ATP. Dessa forma, o
modelo construdo com o MATLAB/Simulink pode ser utilizado em uma simulao ATP.

4.1 Bibliotecas do Ambiente Simulink

O MATLAB/Simulink disponibiliza uma variedade de bibliotecas conhecidas como Toolboxes , contendo blocos
que desempenham determinadas operaes, que podem ser utilizados na construo dos modelos de
equipamentos. Por exemplo, a biblioteca Math Operands contm blocos que realizam operaes matemticas
fundamentais com sinais, como adio, multiplicao e a aplicao de funes matemticas como exponenciais
e trigonomtricas.

Para que o RTW possa produzir um cdigo em linguagem C referente a um determinado modelo, necessrio
que cada bloco tenha, associado a ele, um arquivo com o cdigo referente a apenas o modelo do prprio bloco
separadamente. Assim, o que efetivamente o RTW realiza combinar os trechos de cdigo associados a cada um
dos blocos do modelo, de acordo com as interconexes dos blocos fornecida pelo usurio.

Infelizmente, nem todos os blocos disponibilizados pelas bibliotecas do MATLAB/Simulink possuem, associado a
eles, um trecho de cdigo em linguagem C. Um exemplo justamente a biblioteca SimPower Systems, que
contm modelos de componentes e equipamentos empregados na simulao de sistemas de potncia. Devido a
essa limitao, o RTW no pode produzir um cdigo em linguagem C que descreva um modelo que contenha
blocos da biblioteca SimPower Systems, o que uma grande desvantagem para os usurios interessados na
simulao de sistemas eltricos de potncia.

Portanto, caso o usurio deseje utilizar um modelo desenvolvido com o MATLAB\Simulink em uma simulao
ATP, mas esse modelo contenha blocos sem compatibilidade com o RTW, ser necessrio realizar uma simulao
integrada, onde ambos os softwares ATP e MATLAB/Simulink executam o processamento numrico
concorrentemente durante o tempo de execuo da simulao, ou seja, o ATP fica responsvel pelo
processamento dos transitrios eletromagnticos e o MATLAB/Simulink fica responsvel pela simulao do
modelo auxiliar. A desvantagem desse mtodo a perda de velocidade de processamento devido ao emprego de
processos concorrentes para a execuo de uma tarefa.

4.2 O Modelo do Rel Digital e a Ferramenta Grfica para Automao da Codificao

Um rel de proteo do tipo sobretenso, por exemplo, pode ser modelado no MATLAB/Simulink empregando
apenas blocos compatveis com o RTW, de forma que seja possvel produzir um cdigo em linguagem C que
descreva o comportamento dinmico do equipamento. Um modelo desse tipo apresentado na Figura 1.

As funes escritas em linguagem C, produzidas pelo RTW, no podem ser diretamente empregadas pelo ATP
como uma foreign function. Antes, necessrio escrever uma nica funo que realize a chamada, na ordem
correta, das funes produzidas pelo RTW. Esta ltima funo que ser, finalmente, empregada pelo ATP como
uma foreign function. Entretanto, esse procedimento requer que o usurio conhea o tipo de cdigo gerado pelo
RTW e saiba como as funes geradas por essa ferramenta devem ser chamadas. Com o objetivo de tornar todo
esse processo transparente para o usurio, foi desenvolvida uma ferramenta de software, com uma interface
grfica amigvel, responsvel por automatizar todo o processo de adequao do cdigo produzido pelo RTW para
ser utilizado em uma simulao ATP. Alm disso, a ferramenta desenvolvida tambm produz automaticamente o
cdigo, em linguagem MODELS, a ser adicionado simulao ATP, contendo a chamada foreign function. Um
arquivo MAKE tambm criado automaticamente, contendo as instrues para a compilao de todos os arquivos
de cdigo produzidos.
5

(a) Modelo MATLAB/Simulink para um rel de sobretenso simples.

(b) Modelo do subsistema Detector de Amplitude, responsvel pelo clculo da amplitude das tenses medidas.

(c) Modelo do subsistema Comparador, responsvel por comparar as amplitudes das


tenses medidas com o limiar de sobretenso do rel nesse caso o limiar de 13800 V.

Figura 1 Modelo do rel de sobretenso construdo a partir de blocos do MATLAB/Simulink.

No caso, a partir do modelo MATLAB/Simulink do rel, produziu-se um cdigo escrito em linguagem C que foi
incorporado simulao ATP via interface externa MODELS, o qual demonstrou correto funcionamento da lgica
de deteco de defeitos para as simulaes realizadas. No entanto, nem sempre esse tipo de incorporao
possvel. Nas prximas sees, abordaremos o problema de estabelecer um canal de comunicao entre o ATP e
o MATLAB/Simulink para realizar o intercmbio de dados e permitir a execuo conjunta de uma simulao.

5.0 - OS MECANISMOS DE IPC E A INTEGRAO ATP MATLAB/SIMULINK

5.1 O MATLAB Engine

O software MATLAB disponibiliza uma biblioteca denominada MATLAB Engine a qual permite que um
programa externo execute o MATLAB, envie dados numricos, execute comandos e resgate os resultados. Dessa
forma, pode-se desenvolver um programa que faa uso do MATLAB como um motor de processamento numrico
de dados. Essa flexibilidade do MATLAB representa uma enorme vantagem, tendo-se em vista que esse software
possui uma grande variedade de ferramentas de clculo j implementadas. Alm disso, a biblioteca MATLAB
Engine representa uma porta de comunicao por onde um software externo o ATP, por exemplo pode utilizar
todas as vantagens do MATLAB para a execuo de uma simulao conjunta.

Um exemplo da aplicao dessa tcnica encontrado na referncia [5]. No referido trabalho, a biblioteca MATLAB
Engine utilizada para permitir que o EMTP-EPRI/DCG faa uso de modelos de sistemas criados com o
MATLAB/Simulink. Nesse trabalho, foi possvel realizar uma simulao conjunta com ambos os softwares de
simulao, onde o EMTP-EPRI/DCG responde pelo processamento numrico do sistema eltrico e o
MATLAB/Simulink responde pelos clculos relativos ao modelo de um rel de proteo. Apesar de a soluo ser
funcional, h uma significativa perda de desempenho quando a simulao realizada com ambos os softwares
operando concorrentemente.

Em simulao com rede representada por trs ns e quatro elementos de circuito o teste de desempenho do rel
de sobretenso apresentada na seo 4.2, empregando-se a estratgia de integrao apresentada naquela seo
leva a um tempo total de execuo de aproximadamente um segundo. Por outro lado, usando a estratgia de
integrao similar descrita em [5] via funes da biblioteca MATLAB Engine , a mesma simulao demorou
6

cerca de um minuto para ser completamente executada. Essa enorme perda de desempenho motivou a
investigao de um mecanismo de comunicao entre os processos do ATP e do MATLAB/Simulink, em tempo de
execuo, que fosse mais eficiente que a biblioteca MATLAB Engine.

5.2 Os Mecanismos IPC do sistema operacional MS-Windows

De acordo com a documentao do MATLAB, a biblioteca MATLAB Engine realiza a comunicao no sistema
operacional Windows - atravs de um mecanismo conhecido como COM (Component Object Model). De acordo
com a documentao disponibilizada pela prpria Microsoft [6], existem nove diferentes meios para realizar a
comunicao entre processos concorrentes: Clipboard, COM (Component Object Model), Data Copy, DDE
(Dynamic Data Exchange), File Mapping, Mailslot, Pipes, RPC (Remote Procedure Call) e Windows Sockets.

De acordo com [6], a principal vantagem da ferramenta COM a capacidade de realizar a troca de dados entre
uma enorme variedade de aplicaes, devido a sua generalidade. Devido a essa generalidade, esse mecanismo
de comunicao bastante adequado para a biblioteca MATLAB Engine, j que o seu objetivo exatamente o de
fornecer ao programador uma interface de comunicao com o MATLAB que possa ser includa em qualquer
aplicao que esteja sendo desenvolvida. Por outro lado, por ser um mecanismo bastante geral, esse meio de
comunicao deve incluir dados adicionais s mensagens trocadas pelos processos e ainda deve executar
operaes de manipulao desses dados que sobrecarregam o andamento da simulao. Tal mecanismo no
adequado para integrao de aplicaes que necessitem de bom desempenho computacional.

Inicialmente, a semelhana da implementao realizada em [2] optou-se por explorar o uso do mecanismo de
comunicao File Mapping. O sistema de File Mapping nada mais do que a comunicao entre processos
realizada atravs de arquivos mapeados em reas de memria compartilhada. Em testes realizados com o
exemplo do rel de sobretenso da seo anterior, o desempenho desse tipo de comunicao foi
significativamente pior que o obtido com a biblioteca MATLAB Engine.

Dentre os demais mecanismos disponveis o Pipes foi considerado a melhor alternativa para a viabilizao da
integrao, tendo em vista ser simples o suficiente para que o processo de comunicao entre as duas
ferramentas no representasse nus em demasia ao desempenho computacional final. Um pipe uma espcie de
canal de comunicao entre dois processos, por onde ambos podem transferir dados entre si. De acordo com [6],
h dois tipos de pipes disponveis: os Named Pipes e os Anonymous Pipes. Os Anonymous Pipes so
empregados exclusivamente para estabelecer a comunicao entre dois processos relacionados entre si, por
exemplo, uma comunicao entre um processo pai e o seu processo filho, ou ento entre processos filhos de um
mesmo pai. J os Named Pipes podem ser empregados na comunicao entre dois processos que no
apresentam nenhuma relao entre si. Nesse caso, o pipe deve receber um nome que o identifique, para que
ambos os processos envolvidos possam acess-lo. Como os Named Pipes apresentam maior flexibilidade, optou-
se por utiliz-los no presente projeto.

Alm disso, os pipes podem realizar a transferncia de dados entre processos atravs de dois mecanismos
diferentes: mensagens ou uma corrente (stream) de bytes. A comunicao via mensagens possui o mesmo
inconveniente das informaes adicionais que devem ser encapsuladas na mensagem juntamente com os dados.
J na comunicao via corrente de bytes, os dados so transmitidos atravs do pipe em sua forma bruta (bytes),
sem nenhuma informao adicional. Nesse ltimo tipo de transferncia de dados, ambos os processos devem
saber como os dados esto dispostos na corrente de bytes e quantos bytes devem ser lidos ou escritos. Por outro
lado, como esse tipo de comunicao bastante simples, isso o torna mais rpido que os demais.

Para realizar a comunicao entre dois processos via pipes, deveremos ter um processo realizando o papel de
servidor e o outro o papel de cliente. Essa distino feita porque o processo responsvel por criar o pipe
necessariamente o servidor. Ao cliente resta apenas a funo de se conectar a um pipe j existente. Quanto ao
sentido do fluxo de dados, podemos ter trs tipos diferentes de pipe: aquele em que o servidor apenas envia
dados para o cliente, aquele em que o servidor apenas l os dados enviados pelo cliente e aquele em que
permitida a comunicao bidirecional, onde ambos servidor e cliente podem escrever e ler dados. Em uma
simulao conjunta entre o ATP e o MATLAB/Simulink, podemos definir o processo MATLAB/Simulink como
sendo o servidor que disponibiliza modelos de dispositivos e equipamentos. J o processo ATP seria encarado
como um cliente que solicita ao servidor MATLAB a resposta de um determinado modelo com respeito a um
conjunto de entradas definidas ao longo do tempo de simulao.

6.0 - MELHORIA DE DESEMPENHO COM O EMPREGO DE PIPES

A comunicao atravs de pipes realizada atravs da chamada de funes escritas em linguagem C, disponveis
em bibliotecas fornecidas pela Microsoft [6]. Dessa forma, tanto o ATP quanto o modelo MATLAB/Simulink
devero ser capazes de executar rotinas escritas nessa linguagem, que realizam chamadas s funes
responsveis pelas operaes sobre os pipes (criar, escrever, ler e remover).
7

No caso do ATP, essas chamadas podem ser realizadas pela prpria foreign function, chamada pela interface
externa MODELS exatamente como foi feito na Seo 4. No caso do modelo MATLAB/Simulink, ser necessrio
incluir blocos denominados S-Function ao diagrama de blocos do modelo. Um bloco S-Function realiza uma
operao sobre os seus sinais de entrada para produzir suas sadas de acordo com um conjunto de rotinas
escritas em linguagem de alto nvel como C. Dessa forma, possvel incluir em um modelo MATLAB/Simulink as
chamadas de funes que realizam as operaes relativas manipulao de pipes. Dessa forma, o modelo do
rel apresentado na Figura 1 deve ser modificado de forma a incluir uma S-Function para receber os dados do
ATP e entreg-los ao modelo na forma de sinais de entrada, e uma outra S-Function ficar responsvel por
receber a resposta do modelo e devolv-la ao ATP atravs de um pipe. Na Figura 4, temos o diagrama de blocos
do modelo do mesmo rel incluindo as duas S-Functions.

Figura 4 Modelo MATLAB/Simulink do rel de sobretenso incluindo S-Functions.

Portanto, com base nas consideraes feitas acima, o esquema de comunicao entre o ATP e o MATLAB
ilustrado atravs do diagrama apresentado na Figura 5. De acordo com esse diagrama, h dois pipes: um para
que o cliente (ATP) envie dados para o servidor (a S-Function de entrada do modelo Simulink) e um outro para
que o servidor (a S-Function de sada do modelo Simulink) envie dados para o cliente (ATP). Ambos os pipes so
unidirecionais e devem ser do tipo blocking, isto , toda vez que um processo for realizar a leitura dos dados do
pipe e tais dados ainda no foram disponibilizados pelo outro processo concorrente, a execuo do processo que
deseja fazer a leitura imediatamente suspensa pelo sistema operacional. Dessa forma, o processador ficar livre
para executar o outro processo concorrente e, assim, produzir os dados aguardados pelo primeiro. Assim que os
dados estiverem disponveis no pipe, o sistema operacional imediatamente escala o processo em estado de
espera para entrar em execuo. Portanto, o mecanismo de comunicao atravs de pipes apresenta uma
vantagem adicional em relao a outros mtodos IPC: o tempo desperdiado pela espera eliminado e o
processo em estado de espera apenas ir aguardar o tempo necessrio para que o outro processo realize a sua
tarefa e disponibilize os dados no pipe.

Figura 5 Esquema de comunicao entre o ATP e um modelo MATLAB/Simulink atravs de pipes.

Baseado na Figura 5, a comunicao entre os processos ATP e Matlab/Simulink ocorre da seguinte forma:

1. O processo ATP realiza suas tarefas numricas enquanto o processo da S-Function input_matlab est
em estado de espera, aguardando que seus dados de entrada estejam disponveis no pipe de entrada.
2. O processo ATP finalmente produz os dados a serem enviados ao modelo Simulink e os disponibiliza no
pipe de entrada. Depois disso, o processo ATP entra em estado de espera, aguardando que a resposta
do modelo Simulink seja disponibilizada no pipe de sada.
3. Com o processo ATP em estado de espera, o processo Matlab/Simulink entra em execuo e a S-
Function input_matlab realiza a leitura dos dados no pipe de entrada.
8

4. A nova entrada , ento, processada pelo modelo Simulink e a resposta disponibilizada no pipe de
sada pela S-Function output_matlab.
5. Novamente a S-Function input_matlab entra em estado de espera, aguardando uma nova amostra do
sinal de entrada no seu respectivo pipe.
6. O processo ATP entra novamente em execuo, realiza a leitura dos dados no pipe de sada e continua o
seu processamento at o fim dos clculos necessrios ao atual passo de integrao.
7. Ao iniciar um novo passo de integrao, o processo ATP volta a repetir todo o processo deste o item 1.

Executando a mesma simulao do item 5.1 (rede representada por trs ns e quatro elementos de circuito), os
resultados obtidos foram idnticos aos anteriores. Entretanto, diferentemente da simulao onde a integrao
entre ATP e MATLAB/Simulink fora realizada atravs da biblioteca MATLAB Engine a qual durou cerca de um
minuto , o tempo de simulao usando a interface com pipes durou apenas trs segundos. Apesar de ser um
tempo de execuo maior que aquele verificado quando o modelo do rel foi convertido em um conjunto de rotinas
codificadas em linguagem C, o desempenho foi significativamente melhor que o verificado em outras tentativas de
ser realizar uma simulao integrada entre o ATP e o MATLAB/Simulink, operando simultaneamente durante o
tempo de execuo [2] e [5].

7.0 - CONCLUSES E PERSPECTIVAS

Atravs de projetos realizados em parceria, contemplados nos planos de ao bienais, o ONS vem viabilizando a
incorporao de melhorias ao ferramental computacional empregado em seus estudos de transitrios
eletromagnticos, com o objetivo de aprimorar as respectivas anlises e agilizar execuo dos mesmos. Esse
ferramental, o qual compreende: pr-processadores, ps-processadores e integrador de processos, vem sendo
utilizado em carter preliminar nos estudos pr-operacionais e de recomposio do Sistema Integrado Nacional
(SIN) realizados pelo prprio operador.

No que diz respeito interface de integrao do ambiente de clculo e simulao associado ao programa ATP
sua contrapartida associada ao software MATLAB/Simulink, mostrou-se como possvel auferir ganhos
expressivos em qualidade e flexibilidade de representao de equipamentos e controladores, atravs do uso
simultneo e/ou compartilhado das bibliotecas de ambas as ferramentas de simulao. Somando-se a isso foi
demonstrada, tambm, a possibilidade de visualizao e ps-processamento dos grficos das formas de onda do
ATP simultaneamente s simulaes, empregando as facilidades e recursos do ambiente grfico
MATLAB/Simulink numa forma bastante eficiente.

Atravs do suporte necessrio ao desenvolvimento dessa interface para integrao de processos associados a
ambientes de simulao distintos, o ONS passou a contar com um ferramental de simulao de transitrios
eletromagnticos no qual estaro incorporadas as melhores funcionalidades do ATP e do MATLAB/Simulink.
Funcionalidades essas caracterizadas no caso do ATP, pela robustez do algoritmo de soluo e versatilidade de
representao e no caso do MATLAB/Simulink pela oferta de bibliotecas especializadas, facilidade de
programao e modernidade da interface homem-mquina.

O desdobramento futuro deste trabalho o desenvolvimento de uma ferramenta grfica amigvel que possibilite
aos especialistas em transitrios eletromagnticos do ONS realizar uma simulao integrada entre os softwares de
simulao sem a necessidade de se ater aos detalhes de implementao da interface de comunicao entre os
programas. Pretende-se, atravs da metodologia desenvolvida, poder viabilizar a integrao do ATP com outras
ferramentas de simulao como, por exemplo, o PSCAD/EMTDC. Isso dever tornar desnecessria a converso
ao ATP de modelos utilizados pelos fabricantes de equipamentos nos estudos com aquela ferramenta, bastando
apenas que os mesmos atendam a um protocolo especfico a ser definido oportunamente.

8.0 - REFERNCIAS BIBLIOGRFICAS

[1] N. Zhang, M. Kezunovic. Implementing an advanced simulation tool for comprehensive fault analysis.
IEEE/PES Proc. on Transmission and Distribution Conference and Exhibition: Asia and Pacific, pp. 1-6, 2005.
[2] M. Kezunovic, A novel approach for interactive protection system simulation. IEEE Transactions on Power
Delivery, Vol. 12, No. 2, pp. 668-674, April 1997.
[3] X. Luo, M. Kezunovic. Interactive protection system simulation using ATP MODELS and C++, PES TD
2005/2006, pp. 874-879, May 21-24 2006.
[4] H. M. Barros, R. M. Fernandes. Implementao de biblioteca de modelos genricos para simulao de rels
de proteo digital no programa de transitrios eletromagnticos ATP Alternative Transients Program, VIII
STPC (Seminrio Tcnico de Proteo e Controle), Rio de Janeiro, junho/julho 2005.
[5] J. Mahseredjian, G. Benmouyal, X. Lombard, M. Zouiti, B. Bressac, L. Grin-Lajoie. A link between EMTP and
MATLAB for user-defined modeling. IEEE Transactions on Power Delivery. pp. 667-674, vol. 13, n. 2, April,
1998.
[6] http://msdn2.microsoft.com/en-us/library/aa365574.aspx

Potrebbero piacerti anche