• Nenhum resultado encontrado

CONTROLES INDUSTRIAIS ONLINE: UMA CONEXÃO ENTRE UNIVERSIDADE E. Carine V. Botinhão, João C. Basilio

N/A
N/A
Protected

Academic year: 2021

Share "CONTROLES INDUSTRIAIS ONLINE: UMA CONEXÃO ENTRE UNIVERSIDADE E. Carine V. Botinhão, João C. Basilio"

Copied!
6
0
0

Texto

(1)

CONTROLES INDUSTRIAIS ONLINE: UMA CONEX ˜AO ENTRE UNIVERSIDADE E IND ´USTRIA

Carine V. Botinh˜ao, Jo˜ao C. Basilio

Universidade Federal do Rio de Janeiro COPPE - Programa de Engenharia El´etrica

Cidade Universit´aria - Ilha do Fund˜ao 21.949-900 - Rio de Janeiro - R. J.

E-mails: carinevb@gmail.com, basilio@dee.ufrj.br

Resumo— Esse artigo prop˜oe um website, Controles Industriais Online, onde ´e necess´ario apenas fornecer os dados obtidos experimentalmente para que, no servidor do website, fun¸c˜oes Matlab sejam executadas para realizar os c´alculos necess´arios para a identifica¸c˜ao de fun¸c˜oes de transferˆencias de plantas e para o ajuste dos parˆametros de controladores PID industriais. Os alvos principais s˜ao os estudantes de controle, tanto no tradicional ensino presencial quanto no ensino `a distˆancia. Engenheiros que trabalhem na ind´ustria e que n˜ao possuem conhecimento te´orico aprofundado em controle para desenvolver programas computacionais em Matlab, Scilab ou outra linguagem poderiam tamb´em ser beneficiados. A id´eia b´asica ´e desenvolver uma interface entre o usu´ario e o Matlab de forma que o usu´ario tenha apenas que inserir os dados em janelas apropriadas e analisar os resultados e os gr´aficos resultantes da execu¸c˜ao de fun¸c˜oes Matlab.

Abstract— This paper proposes a website, “Controles Industriais Online”, that requires solely the data ob-tained experimentally in order that, in the website server, Matlab functions be executed to perform the necessary computation for the identification of plant transfer functions and for the tuning of industrial PID controllers. Control engineering students in both the traditional class attendance and the more recente distance learning systems are the primary targets. Practitioner engineers who do not have deep theoretical background in control to write computing programs in Matlab, Scilab or any other language could also benefit. The basic idea is to develop an interface between the user and Matlab in such a way that the user only has to insert the data and analyse the results and plots after the execution of Matlab functions.

Key Words— Intelligent systems, System identification, PID controller design, programming technologies

1 Introdu¸c˜ao

A massifica¸c˜ao da internet na ´ultima d´ecada do s´eculo tem provocado mudan¸cas dr´asticas em to-dos os setores da sociedade. O com´ercio virtual ´e hoje uma realidade. No ensino `a distˆancia, a inter-net tem tido papel crucial (Chetty e Dabke, 2000). A internet tem tamb´em provocado uma mu-dan¸ca dr´astica no ensino de gradua¸c˜ao e de p´os-gradua¸c˜ao de Sistemas de Controle (Poindexter e Heck, 1999). Laborat´orios remotos de Sis-temas de Controle s˜ao hoje uma realidade (Casini et al., 2004). Contudo, n˜ao ´e do conhecimento dos autores que ferramentas que permitam ao usu´ario realizar projetos de sistemas de controle sem ter o conhecimento de alguma linguagem de programa¸c˜ao esteja dispon´ıvel na internet. Esse artigo prop˜oe um website, Controles Industriais Online, onde ´e necess´ario apenas fornecer os da-dos obtida-dos experimentalmente para que, no servi-dor do website, fun¸c˜oes Matlab sejam executadas para realizar os c´alculos necess´arios para a iden-tifica¸c˜ao de fun¸c˜oes de transferˆencias de plantas e para o ajuste dos parˆametros de controladores PID industriais.

A id´eia b´asica ´e desenvolver uma interface en-tre o usu´ario e o Matlab de forma que o usu´ario tenha apenas que inserir os dados em janelas apro-priadas e analisar os resultados e os gr´aficos resul-tantes da execu¸c˜ao de fun¸c˜oes Matlab.

Esse artigo est´a estruturado da seguinte

forma: na se¸c˜ao 2 apresenta-se uma breve in-trodu¸c˜ao de como ´e feita a comunica¸c˜ao entre usu´arios e servidores de p´aginas Web; na se¸c˜ao 3 apresenta-se a estrutura de funcionamento do website Controles Industriais Online, os m´etodos de identifica¸c˜ao e de projeto de controladores PID a que o usu´ario tem acesso e, na se¸c˜ao 4, ´e descrito como se d´a a passagem de dados do usu´ario para o Matlab e deste para o usu´ario; na se¸c˜ao 5 descreve-se a tecnologia CGI e sua utiliza¸c˜ao na constru¸c˜ao do site descrito nesse artigo; na se¸c˜ao 6 descreve-se como descreve-se deve configurar o descreve-servidor Apache para se poder desenvolver um site como o Controles In-dustriais Online; na se¸c˜ao 7 descrevem-se os pas-sos para a utiliza¸c˜ao da toolbox Matlab Engine no Linux e na se¸c˜ao 8 apresentam-se as carac-ter´ısticas da m´aquina servidora utilizada; final-mente, na se¸c˜ao 9 s˜ao revistas as principais con-tribui¸c˜oes desse artigo.

2 Comunica¸c˜ao entre usu´arios e servidores via Web

Com o avan¸co da internet ´e natural que a maneira de exibir conte´udos em p´aginas Web se torne mais complexa. A estrutura b´asica para comunica¸c˜ao entre usu´arios e servidores de p´aginas Web ´e a seguinte: um usu´ario, utilizando um programa navegador (e.g. Internet Explorer ou Mozilla Firefox), digita o endere¸co URL (Uniform Re-source Locator) de uma p´agina Web. O navegador

(2)

(browser), por sua vez, entra em contato com um servidor de endere¸cos DNS (Domain Name Server) que traduz o endere¸co digitado pelo usu´ario em um endere¸co IP, o endere¸co da m´aquina servidora da p´agina solicitada. Nesta m´aquina, o programa servidor de p´aginas (Web Server) recebe a req-uisi¸c˜ao, busca o arquivo solicitado e o envia para o cliente, o browser do usu´ario.

Um servidor de p´aginas ´e um software que disponibiliza p´aginas Web para clientes (em geral navegadores como o Internet Explorer ou o Mozilla Firefox), ou seja, ´e um programa que aguarda que um cliente fa¸ca a requisi¸c˜ao de um arquivo e, em seguida, lhe envia esse arquivo. Em princ´ıpio, os dados passados pelo servidor s˜ao est´aticos, isto ´e, arquivos (em sua maioria tex-tos) existentes na m´aquina servidora. Quando ´e necess´ario passar dados dinˆamicos (dados que s˜ao fornecidos pelo usu´ario ou que s˜ao resultados de c´alculos realizados na m´aquina servidora) torna-se necess´ario utilizar, al´em do HTML, outras lingua-gens (tecnologias).

No website proposto nesse artigo, os dados para a constru¸c˜ao das p´aginas Web s˜ao dinˆamicos, sendo os dados de entrada resultados de experi-mentos e os de sa´ıda parˆametros de modelos de sistemas e resultados (gr´aficos) de simula¸c˜oes. A tecnologia utilizada para tornar isso poss´ıvel ´e a CGI (Common Gateway Interface), cujo funciona-mento ser´a detalhado na se¸c˜ao 5.

3 Estrutura do website Controles Industriais Online

Atrav´es da p´agina Controles Industriais Online, podem-se obter modelos de primeira ou segunda ordem, com ou sem atraso (Astrom e Haglund, 1988; Astrom e Haglund, 1995). Para tanto, o usu´ario deve fornecer os vetores com os instantes de tempo e os correspondentes valores da entrada (degrau) e da resposta. ´E poss´ıvel, ent˜ao:

1. Modelar sistemas com resposta ao de-grau monotonicamente crescente por um modelo de primeira ordem, utilizando os m´etodos do log-aritmo neperiano e da ´area ;

2. Modelar sistemas com resposta ao degrau monotonicamente crescente por um modelo de primeira ordem com atraso, utilizando o m´etodo das ´areas;

3. Modelar sistemas com resposta ao degrau monotonicamente crescente por um modelo de se-gunda ordem criticamente amortecido sem zeros, utilizando o m´etodo da ´area;

4. Modelar sistemas com resposta ao degrau monotonicamente crescente por um modelo de se-gunda ordem criticamente amortecido com atraso e sem zeros, utilizando o m´etodo das ´areas.

´

E poss´ıvel, ainda,

5. Obter a decomposi¸c˜ao de sinais peri´odicos, geralmente corrompidos por ru´ıdos, em s´erie de

Figura 1. P´agina inicial do website Controles Industriais.

Fourier, permitindo determinar, principalmente, a amplitude e a fase da componente fundamental (Basilio, 1998).

No que se refere ao projeto de controladores, est˜ao atualmente dispon´ıveis na p´agina, rotinas para ajuste de controladores PID industriais, uti-lizando:

6. O m´etodo de Ziegler & Nichols (Ziegler e Nichols, 1942);

7. O m´etodo de Basilio & Matos (Basilio e Matos, 2002).

Um aspecto importante a ser ressaltado com rela¸c˜ao `as fun¸c˜oes desenvolvidas para identifica¸c˜ao de fun¸c˜oes de transferˆencias neste trabalho ´e que elas s˜ao capazes de realizar a valida¸c˜ao da iden-tifica¸c˜ao. Isso ´e poss´ıvel porque as fun¸c˜oes est˜ao conectadas a um modelo Simulink (Mathworks, 1999) capaz de fazer a simula¸c˜ao da resposta ao degrau do modelo obtido utilizando-se o mesmo sinal de entrada aplicado ao sistema real, retor-nando um gr´afico para fins de compara¸c˜ao. Essas fun¸c˜oes comp˜oem a biblioteca contind (Basilio e Botinh˜ao, 2003), que desempenha um papel cru-cial no website aqui descrito.

A p´agina inicial do website pode ser vista na figura 1. O acesso `as p´aginas dos m´etodos de iden-tifica¸c˜ao de sistemas e de projeto de controladores PID ´e feito atrav´es dos bot˜oes localizados `a es-querda. Na p´agina de cada m´etodo, h´a uma breve descri¸c˜ao e trˆes links que permitem ao usu´ario acessar p´aginas contendo os fundamentos te´oricos dos m´etodos de identifica¸c˜ao e das t´ecnicas de ajuste dos controladores PID utilizadas, acessar uma p´agina com dados para demonstra¸c˜ao da uti-liza¸c˜ao e funcionamento dos m´etodos e acessar uma p´agina para utiliza¸c˜ao do m´etodo desejado. Um exemplo das p´aginas de utiliza¸c˜ao do m´etodo ´e exibido na figura 2. Deve ser ressaltado que a quantidade de dados a serem inseridos e seu tipo dependem do m´etodo escolhido. Ap´os inserir os dados, o usu´ario deve selecionar se deseja apenas obter um gr´afico constru´ıdo com os dados inseri-dos ou se deseja efetivamente executar o m´etodo

(3)

Figura 2. Exemplo de uma das p´aginas de inser¸c˜ao de dados.

Figura 3. Exemplo de uma das p´aginas de sa´ıda dos m´etodos.

e em seguida clicar no bot˜ao Enviar. Ap´os al-guns momentos, durante os quais um programa em CGI estar´a sendo executado, o usu´ario rece-ber´a em seu browser, uma p´agina como a da figura 3, gerada dinamicamente a partir do resultado da execu¸c˜ao do m´etodo com os dados inseridos pelo usu´ario. Nos m´etodos de identifica¸c˜ao ´e exibido um gr´afico resultante de uma simula¸c˜ao com os modelos obtidos, que permitem ao usu´ario com-parar os comportamentos do sistema real e do modelo em rela¸c˜ao `a entrada usada para a identi-fica¸c˜ao.

4 Acesso ao Matlab

A id´eia central da t´ecnica aqui apresentada est´a esquematizada na figura 4. Na m´aquina servidora das p´aginas, al´em do programa Web Server, ex-iste mais uma camada, a tecnologia CGI, que ser´a estudada em detalhes na se¸c˜ao 5. O programa CGI funciona como uma ponte entre o usu´ario e seus dados e o Matlab. A linguagem escolhida para o desenvolvimento do programa CGI foi o C++. A biblioteca de fun¸c˜oes VBMcgi (Villas-Boas e Martins, n.d.) foi utilizada para tornar mais f´acil, r´apida e eficiente a obten¸c˜ao dos dados do usu´ario e a exibi¸c˜ao dos dados de sa´ıda em seu

Web browser Computador remoto http Web server 6 ? - Programa

execut´avel VBMcgi 6 ? *.html 6 ? Matlab CGI Matlab Engine - M´aquina servidora

Figura 4. Estrutura existente no servidor do website Con-troles Industriais Online.

browser.

O acesso ao Matlab de dentro do programa CGI e a execu¸c˜ao das fun¸c˜oes da biblioteca contind pode ser feito das seguintes formas: (i) utilizando-se uma fun¸c˜ao do pr´oprio sistema operacional que permita executar, de dentro de um programa, co-mandos como se estivessem sendo digitados em um terminal; (ii) usando-se a biblioteca Matlab Engine, fornecida pela Mathworks na instala¸c˜ao do Matlab. A biblioteca Matlab Engine ´e um con-junto de fun¸c˜oes que permitem que o Matlab seja utilizado a partir de programas externos, escritos em C ou Fortran. A sua principal vantagem re-side no fato de que, com ela, o acesso ao Matlab ocorre tal como o de um usu´ario digitando coman-dos na janela de comancoman-dos do Matlab, ou seja, ´e poss´ıvel, de dentro do programa, passar coman-dos diretamente para o Matlab. Por essa raz˜ao, a biblioteca Matlab Engine foi a adotada para o acesso ao Matlab de dentro do program CGI. O uso dessa biblioteca ser´a detalhado na se¸c˜ao 7.

O programa CGI aqui desenvolvido tem como principal objetivo ser de execu¸c˜ao eficiente, o m´aximo poss´ıvel. Para tanto, ao executar uma rotina no Matlab, altera-se inicialmente o seu pr´oprio arquivo de c´odigos para que nele mesmo sejam inseridos os dados passados pelo usu´ario. Isso ´e feito da seguinte forma: ap´os obter os da-dos do usu´ario, um arquivo modelo da rotina em quest˜ao ´e aberto, alterando-se as suas primeiras linhas para definir os vetores e demais dados e ent˜ao salvo com um nome tempor´ario, sendo v´alido apenas para aquela sess˜ao do usu´ario. Em seguida, atrav´es da Matlab Engine, o programa abre uma sess˜ao do Matlab e passa como comando o nome deste arquivo tempor´ario. As linhas desse arquivo s˜ao, ent˜ao, executadas uma a uma pelo Matlab, e, ao final, o programa fecha a sess˜ao do Matlab. Os dados de sa´ıda (valores e/ou figuras) s˜ao salvos por comandos contidos nas ´ultimas lin-has do arquivo modelo e s˜ao lidos pelo programa CGI ap´os a execu¸c˜ao do Matlab.

5 Uso da tecnologia CGI na constru¸c˜ao do website Controles Industriais Online O CGI (Common Gateway Interface) ´e uma ferra-menta que permite que um servidor Web obtenha

(4)

ou envie dados de um banco de dados, docu-mento ou outro programa, presentes no servi-dor, disponibilizando-os para os usu´arios via In-ternet. Qualquer linguagem de programa¸c˜ao pode ser utilizada para escrever um programa em CGI. Neste trabalho a linguagem utilizada ´e o C++ que, com a tecnologia CGI, torna poss´ıvel a ex-ibi¸c˜ao no browser do usu´ario dos resultados com os parˆametros calculados, no caso das fun¸c˜oes de sintonia de controladores PID, e dos modelos obti-dos nas fun¸c˜oes de identifica¸c˜ao.

O mais simples que um programa em CGI pode fazer ´e exibir um texto (que pode ou n˜ao variar) na janela do browser. Toda linguagem de programa¸c˜ao tem ao menos uma fun¸c˜ao que exibe um texto na janela de execu¸c˜ao do programa (em C, por exemplo, ´e o comando printf, em C++ usa-se cout). Para que o programa CGI disponibilize esse texto para a janela do browser, ´e necess´ario imprimir na tela um cabe¸calho HTTP seguido de duas marca¸c˜oes de par´agrafo. Ap´os isso ser feito, todo e qualquer texto que for exibido pelo pro-grama ser´a enviado para o browser. Isso traz uma flexibilidade muito grande quanto ao que pode ser gerado para exibi¸c˜ao no browser, como, por exem-plo, tabelas, figuras, applets Java etc.

A biblioteca CGI aqui utilizada ´e o VBMcgi (Villas-Boas e Martins, n.d.), que possui m´etodos necess´arios para aquisi¸c˜ao dos dados postados pelo usu´ario e para constru¸c˜ao de uma p´agina de sa´ıda do programa. A biblioteca VBMcgi, desenvolvida em C++, ´e gratuita e de c´odigo aberto e sua ´ultima vers˜ao, instru¸c˜oes para com-pila¸c˜ao e utiliza¸c˜ao e documenta¸c˜ao se encontram dispon´ıveis para download. Para se fazer o down-load do pacote que possui os arquivos necess´arios `a compila¸c˜ao e utiliza¸c˜ao da biblioteca, deve-se es-colher o sistema operacional utilizado (Windows ou Unix/Linux), descompactar o arquivo de ex-tens˜ao .zip que cont´em os arquivos fonte da bib-lioteca. A compila¸c˜ao da biblioteca em Linux deve ser feita utilizando-se o arquivo make.sh, dispon´ıvel no pacote de instala¸c˜ao, que cont´em os comandos necess´arios para a compila¸c˜ao da biblioteca. A extens˜ao “.sh” identifica o arquivo como um arquivo do tipo script shell. Isto sig-nifica que, ao ser executado a partir de um ter-minal Linux, os comandos nele contidos ser˜ao ex-ecutados linha a linha pelo sistema operacional. Os passos para a compila¸c˜ao da VBMcgi est˜ao listados na figura 5. Ap´os a compila¸c˜ao, um arquivo bin´ario da biblioteca, chamado libvbm-cgi.a, ´e gerado. Neste ponto duas observa¸c˜oes s˜ao necess´arias:

1) Para incluir a biblioteca VBMcgi na compila¸c˜ao de um programa escrito em C++, ´e necess´ario acrescentar, junto com as demais inclus˜oes de bib-liotecas, a seguinte linha no c´odigo fonte do pro-grama:

#include “vbmcgi.h” ;

1. Fazer o download do arquivo da instala¸c˜ao: http://www.vbmcgi.org/index.chtml?p=1 2. Extrair o arquivo:

gzip -d VBMcgi unix NN.zip sendo NN a vers˜ao da VBMcgi. 3. Compilar a biblioteca:

./make

Figura 5. Passos para a compila¸c˜ao da biblioteca VBMcgi em Linux.

Essa linha faz a inclus˜ao do arquivo vbmcgi.h no c´odigo do programa. O arquivo vbmcgi.h ´e o ar-quivo header da biblioteca VBMcgi.

2) Para compilar o c´odigo fonte de um programa escrito em C++ que utilize a biblioteca VBMcgi deve-se dar como parˆametro para o compilador o arquivo libvbmcgi.a e os demais arquivos a serem compilados e anexados. Por exemplo, para com-pilar o arquivo ufrj.cpp que utiliza a biblioteca VBMcgi deve-se digitar o seguinte comando em um terminal Linux:

g++ ufrj.cpp libvbmcgi.a -o ufrj

sendo que a op¸c˜ao -o ufrj indica ao compilador G++ que o nome desejado para o arquivo exe-cut´avel (output) ´e ufrj.

O programa deste trabalho ´e constitu´ıdo por um arquivo fonte chamado simul.cpp. Este pro-grama ´e composto de uma grande classe chamada htmlGenerator, que possui os m´etodos e os atribu-tos necess´arios para a leitura dos dados do usu´ario, execu¸c˜ao do Matlab e cria¸c˜ao da p´agina HTML de sa´ıda do programa. O programa possui ainda uma fun¸c˜ao chamada randomName, respons´avel por criar um nome dinˆamico para os arquivos tem-por´arios utilizados pelo programa, e pela fun¸c˜ao main. A fun¸c˜ao main faz a chamada dos m´etodos da classe htmlGenerator na ordem necess´aria `a ex-ecu¸c˜ao.

6 Configura¸c˜ao do servidor Apache para o website Controles Industriais Online De acordo com a estrutura discutida anterior-mente, uma m´aquina a ser usada como dora de p´aginas deve ter um programa servi-dor Web executado, de preferˆencia, ininterrupta-mente. O servidor Web utilizado neste projeto ´e o Apache Server 2.0 para Linux, um programa gratuito e de c´odigo aberto. Na instala¸c˜ao do Apache Server 2.0 ´e necess´ario adicionar o m´odulo mod env para possibilitar a passagem de vari´aveis de ambiente para os programas CGI a serem ex-ecutados pelo Apache. Os passos da instala¸c˜ao do servidor Apache est˜ao disponibilizados no site http://www.apache.org, assim como a sua vers˜ao mais atual para download. Para utiliza¸c˜ao como

(5)

1. Fazer o download do arquivo da instala¸c˜ao: http://httpd.apache.org/download.cgi 2. Extrair o arquivo:

gzip -d httpd-2 0 NN.tar.gz tar xvf httpd-2 0 NN.tar sendo NN a vers˜ao do Apache.

3. Configurar a instala¸c˜ao, no caso desse tra-balho habilitar o m´odulo mod env:

./configure –enable-env 4. Compilar:

make 5. Instalar:

make install

Figura 6. Passos para a instala¸c˜ao do Apache Server.

servidor de p´aginas do website Controles Indus-triais Online a seq¨uˆencia de instala¸c˜ao necess´aria ´e aquela mostrada na figura 6 em que, no passo de configura¸c˜ao da instala¸c˜ao, foi acrescentado o comando para a instala¸c˜ao do m´odulo mod env.

O Apache Server possui um arquivo de con-figura¸c˜ao principal, referˆencia indispens´avel para sua execu¸c˜ao, chamado httpd.conf, localizado no subdiret´orio \conf de sua instala¸c˜ao. Neste ar-quivo, o administrador da m´aquina servidora deve fazer as altera¸c˜oes que considerar necess´arias para o correto funcionamento do seu sistema. Uma in-forma¸c˜ao importante a ser colocada neste arquivo ´e o mapeamento dos diret´orios, indicando, por exemplo, onde se encontram os arquivos HTML est´aticos e quais s˜ao os diret´orios onde a ex-ecu¸c˜ao de programas CGI ´e permitida. No caso do website aqui desenvolvido, os diret´orios utilizados para os arquivos HTML est´aticos e para o pro-grama CGI s˜ao \htdocs\projeto e \cgi-bin, respec-tivamente. Assim, n˜ao ´e necess´aria a altera¸c˜ao dos diret´orios mapeados no httpd.conf pois os sub-diret´orios \htdocs e \cgi-bin j´a s˜ao os sub-diret´orios padr˜oes para esses tipos de arquivos. Por´em, outro tipo de modifica¸c˜ao no arquivo httpd.conf ´e necess´aria para garantir que as vari´aveis de am-biente HOME e LD LIBRARY PATH possam ser passadas para os programas CGI que forem ex-ecutados pelo Apache Server. Isto ´e necess´ario tendo em vista que o Matlab precisa da vari´avel de ambiente HOME e a biblioteca Matlab Engine necessita da vari´avel LD LIBRARY PATH para seu correto funcionamento. Para tanto, deve-se incluir as seguintes linhas no arquivo httpd.conf:

PassEnv HOME

PassEnv LD LIBRARY PATH

Feito isso, o Apache est´a habilitado para exe-cutar o programa CGI a ser utilizado no website

Controles Industriais Online. Para tanto, o supe-rusu´ario ROOT deve digitar o comando:

./usr/local/apache2/bin/apachectl -k start em um terminal Linux, iniciando, assim, o processo do Apache respons´avel por disponibilizar as p´aginas Web. Contudo, conforme mencionado anteriormente, ´e desej´avel que o programa servi-dor Web seja executado ininterruptamente pela m´aquina, ou seja, caso a m´aquina seja desligada por algum motivo, o Apache deve ser reiniciado assim que ela for religada. Uma das maneiras de se obter tal condi¸c˜ao ´e alterando o arquivo rc.local do diret´orio \etc\rc.d, uma vez que esse arquivo ´e executado ap´os todas as inicializa¸c˜oes do sistema. Assim, a seguinte linha de comando deve ser in-serida no arquivo rc.locala:

./usr/local/apache2/bin/apachectl -k start que possui o comando padr˜ao para a inicializa¸c˜ao do Apache Server.

Nesse ponto o Apache ´e executado automati-camente, por´em apenas p´aginas est´aticas podem ser visualizadas. Para a perfeita execu¸c˜ao de programas CGI pelo Apache ´e necess´aria a ex-istˆencia da vari´avel de ambiente PATH, que s´o ´e criada quando algum usu´ario inicia uma sess˜ao na m´aquina, que n˜ao ´e o caso quando h´a inicial-iza¸c˜ao autom´atica. Especificamente para o pro-grama CGI aqui utilizado, ´e necess´ario tamb´em a vari´avel LD LIBRARY PATH. Assim, as seguintes linhas devem ser inclu´ıdas no arquivo envvars (onde s˜ao definidas as vari´aveis para inicializa¸c˜ao do Apache) localizado no subdiret´orio \bin do Apache: PATH=“/usr/local/sbin:/usr/local/bin:/sbin:/bin: /usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin” export PATH LD LIBRARY PATH=“/usr/local/apache2/lib: /usr/local/matlab/extern/lib/glnx86: $LD LIBRARY PATH” export LD LIBRARY PATH

Note que, nas defini¸c˜oes das vari´aveis PATH e LD LIBRARY PATH, a primeira linha cria a vari´avel e a segunda, que se inicia com o comando export, coloca as vari´aveis como vari´aveis de am-biente, isto ´e, vari´aveis v´alidas e dispon´ıveis para acesso de todo o sistema operacional.

7 A biblioteca Matlab Engine e sua utiliza¸c˜ao na constru¸c˜ao do website

Controles Industriais Online O programa utilizado neste projeto para execu¸c˜ao de c´alculos e simula¸c˜oes ´e o Matlab, vers˜ao 6.1 aNote que essa linha de comando ´e a mesma que deve ser digitada pelo superusu´ario ROOT para inicializar o Apache em um terminal Linux.

(6)

1. Escrever a aplica¸c˜ao em C e incluir a seguinte linha junto com as demais inclus˜oes de bib-liotecas:

# include “engine.h”

2. Checar a existˆencia e a localiza¸c˜ao das bib-liotecas necess´arias `a compila¸c˜ao de progra-mas com a biblioteca Matlab Engine. Os ar-quivos dessas bibliotecas devem estar no di-ret´orio:

<matlab>/bin/glnx86/

sendo <matlab> o diret´orio onde o Matlab est´a instalado.

3. Compilar a aplica¸c˜ao

4. Indicar o diret´orio da biblioteca para o sistema em tempo de execu¸c˜ao, isto ´e:

<matlab>/extern/lib/glnx86/

Figura 7. Passos para a utiliza¸c˜ao da Matlab Engine no Linux.

para Linux, Release 12.1. O Matlab ´e aces-sado atrav´es do uso da biblioteca Matlab Engine, fornecida em sua instala¸c˜ao. A biblioteca Matlab Engine ´e um conjunto de rotinas que permitem que o Matlab seja utilizado a partir de programas externos. Os programas podem ser escritos em C ou Fortran e se comunicam com um processo Matlab exclusivo, atrav´es de pipes em Unix e via Component Object Model (COM), no Windows. As fun¸c˜oes presentes na biblioteca permitem que o programa inicie e termine uma sess˜ao Matlab, envie e receba dados/vari´aveis e execute coman-dos, o que lhe d´a condi¸c˜oes de utiliz´a-la como uma poderosa ferramenta para c´alculos. Alguns passos s˜ao sugeridos na documenta¸c˜ao do Matlab para a cria¸c˜ao e compila¸c˜ao de programas em C que uti-lizem a biblioteca Matlab Engine. Os passos para utiliza¸c˜ao em Linux se encontram resumidos na figura 7.

8 M´aquina servidora do website Controles Industriais Online

O servidor de p´aginas do website Controles In-dustriais Online ´e uma m´aquina AMD Athlon XP 2000+, com 40 GB de Hard Disk e 512 MB de mem´oria RAM, com o sistema operacional Linux, distribui¸c˜ao Red Hat 8.0. Para o desenvolvimento do programa CGI do projeto foi necess´ario, du-rante a instala¸c˜ao do Red Hat, acrescentar o pa-cote de desenvolvimento (Development Tools) que possui, dentre outros, o compilador gcc.

9 Conclus˜ao

Nesse artigo foi apresentado o website Controles Industriais Online, uma aplica¸c˜ao na internet que permite a utiliza¸c˜ao remota do Matlab para a real-iza¸c˜ao dos c´alculos necess´arios para a identifica¸c˜ao de fun¸c˜oes de transferˆencias de plantas e para o ajuste dos parˆametros de controladores PID in-dustriais. Os alvos principais s˜ao os estudantes de controle, tanto no tradicional ensino presencial quanto no ensino `a distˆancia. Engenheiros que trabalhem na ind´ustria e que n˜ao possuem con-hecimento te´orico aprofundado em controle para desenvolver programas computacionais em Mat-lab, Scilab ou outra linguagem poderiam tamb´em ser beneficiados.

Agradecimentos

Este trabalho foi parcialmente financiado pelo CNPq e pela FAPERJ.

Referˆencias

Astrom, K. J. e Haglund, T. (1988). Automatic Tun-ing of PID controllers, Instrument Society of America, Research Triangle Park, NC.

Astrom, K. J. e Haglund, T. (1995). PID controllers: theory, design and tuning, Instrument Society of America, Research Triangle Park, NC.

Basilio, J. C. (1998). Notas de aula de

Controles Industriais, UFRJ Departamento de Eletrot´ecnica, Rio de Janeiro:Brasil.

Basilio, J. C. e Botinh˜ao, C. V. (2003). Uma bib-lioteca em Matlab para o ensino de Controles Industriais, Anais do XXVI Congresso Brasileiro de Engenharia .

Basilio, J. C. e Matos, S. R. (2002). Design of PI and PID controllers with transient performance specification, IEEE Transacations on Education 45: 364–370.

Casini, M., Domenico, P. e Vicino, A. (2004). The au-tomatic control Telelab, IEEE Control Systems Magazine 24(3): 36–44.

Chetty, M. e Dabke, K. P. (2000). Towards a Web-based central engineering laboratory, Interna-tional Journal of Electrical Engineering Educa-tion 37(1): 38–47.

Mathworks (1999). Using Matlab, The MathWorks, Inc., Natick, Massachusetts.

Poindexter, S. E. e Heck, B. S. (1999). Using the Web in your courses: what can you do? What should you do?, IEEE Control Systems Magazine 19(1): 83–92.

Villas-Boas, S. B. e Martins, A. (n.d.). Villas-Boas and Martins library for CGI. Dispon´ıvel para download em http://www.vbmcgi.org ou http://www.sbvb.com.br.

Ziegler, J. G. e Nichols, N. B. (1942). Optimal set-tings for automatic controllers, Transactions of the ASME 64: 759–768.

Referências

Documentos relacionados

rgeom(n, p) distribui¸ c˜ ao Geom´ etrica(p) runif(n, a, b) distribui¸ c˜ ao Uniforme(a,b) rexp(n, lambda) distribui¸ c˜ ao Exponencial(lambda) rnorm(n, mean, sd) distribui¸ c˜

Entregar em pdf (Fazer as listas em LaTeX ´ e recomendado) Listas entregues fora do prazo (no m´ aximo 24 horas ap´ os o prazo dado) valer˜ ao somente 50% dos pontos.!. Listas

• Uma trilha de metal pode cruzar uma trilha de polisil´ıcio ou de difus˜ ao sem produzir efeito significativo.... Sobreposi¸ c˜ ao de camadas pode produzir

O transistor de cima (chamado transistor pull-up pu) foi fabricado para sempre permitir a passagem de corrente. O seu papel ´e funcionar

O coeficiente de correla¸c˜ ao linear varia entre −1 e +1: r = −1 corresponde ao caso de correla¸ c˜ ao linear negativa perfeita e r = +1 corresponde ao de correla¸c˜ ao

Ora, j´ a vimos que as ´ unicas solu¸c˜ oes da equa¸c˜ ao de Legendre usual que permanecem limitadas nos extremos ±1 (assim como suas derivadas) s˜ao os polinˆ omios de Legendre P

Para evitar isso, vocˆ e pode mover os dois comandos do preˆ ambulo para algum lugar ap´ os o comando \tableofcontents ou definitivamente n˜ ao us´ a-los, porque vocˆ e ver´ a que

Pacote do R que permite f´ acil integra¸ c˜ ao de c´ odigos escritos em C++.. N˜ ao seria mais f´ acil integrar com C ou