PATROL - SISTEMA NA INTERNET PARA APOIO AO ENSINO DE CONTROLE Fabio Lattario Fonseca 1, Sergio Barbosa Villas-Boas 2 UFRJ - DEL (Departamento de Engehiaria Eletrônica e Computação) 1 fabiolf@coppe.ufrj.br UFRJ - DEL (Departamento de Engehiaria Eletrônica e Computação) 2 Ilha do Fundão, Centro de Tecnologia, Sala H-219 Rio de Janeiro - RJ Cx. Postal 68.564 CEP 21.945-970 villas@del.ufrj.br www.del.ufrj.br/~villas Resumo. O PATROL é um sistema na Internet para apoio ao ensino de disciplinas relacionadas a controle linear de sistemas dinâmicos. A idéia é levar o ensino de disciplinas dessa área a ser feito com o complemento do sistema que se está propondo. O PATROL consiste de um conjunto de páginas web, sendo parte delas estáticas e outra parte interativa. A parte estática serve como uma referência rápida para os tópicos abordados. A parte interativa permite ao usuário final executar diversos tipos de simulações, obtendo resultados numéricos e gráficos pelo browser. Um assunto de especial interesse na área de controle é o ensino da sintonia de controladores, especificamente o controlador do tipo PID. Esse assunto é tratado com especial atenção pelo PATROL, sendo que o professor pode observar e medir o nível de conhecimento de um aluno na tarefa de obter a sintonia adequada para o controlador numa situação específica, a partir do número de interações que o aluno requer para obter um resultado satisfatório. Referência: http://del.ufrj.br/~villas/patrol.html Palavras-chave: Ensino a Distância, Sistema na Internet, Controle, Sistemas Dinâmicos, Controlador PID NTM - 215
1. INTRODUÇÃO Uma das áreas do ensino de engenharia é a área de controle linear de sistemas dinâmicos, também conhecida simplesmente como controle. Trata-se de uma área multidiciplinar, com fundamentos e aplicações em eletricidade, eletrônica, mecânica, química, aeronáutica, etc. A aplicação de sistemas de controle tem o potencial de trazer grande eficiência a unidades industriais. Mas a realidade em muitos países do mundo, em particular o Brasil, é que boa parte dos conhecimentos acadêmicos da área de controle estão distanciados da realidade da maioria das aplicações práticas. A importância na aproximação entre universidade e indústrias pode ser verificado por vários artigos publicados e workshops enfatizando essa aproximação, dentre os quais cita-se como exemplo o workshop de Denis et al. na American Control Conference [4]. Esse distanciamento não é benéfico nem para o setor acadêmico (que se isola dos problemas reais), nem para o setor industrial (que deixa de aplicar técnicas já conhecidas, portanto operando potencialmente em eficiência menor que a possível). O uso de técnicas de ensino a distância, particularmente de técnicas baseadas em Internet, pode ser a chave para uma integração maior entre a setor acadêmico e o setor industrial. O DEL [1] é um departamento que tem tradição de ensino tanto no setor de controle linear de sistemas dinâmicos quanto no ensino de técnicas de desenvolvimento de sistemas de software, inclusive para Internet. Considerando-se a motivação já exposta, iniciou-se o projeto PATROL [2], que é uma experiência concreta de um sistema na Internet para ser utilizado como apoio ao ensino de controle linear de sistemas dinâmicos. Sendo um sistema na Internet, o PATROL poderá ser usado em estruturas acadêmicas de ensino a distância. Utilizando-se o PATROL, o aluno (usuário final) pode verificar uma coletânea de referências rápidas sobre diversos assuntos relacionados a área de controle. Essas referências são consideradas como conteúdo estático (no sentido que não há interatividade nessa parte). Além disso, existe a parte interativa do sistema, em que o aluno pode executar simulações numéricas, sendo que o resultado gráfico dessa simulação é obtido diretamente no browser. Dessa forma, pode-se oferecer um ambiente de estudo sofisticado sem que se exija que o aluno (usuário final) precise fazer qualquer instalação complexa de software. Um simples computador conectado a web é a ferramenta básica de acesso ao PATROL. Um recurso em destaque no PATROL é a opção de controladores PID. Trata-se de um recurso interativo específico para treinamento simulado de sintonia de controladores tipo PID. Ressalte-se que o controlador PID é o tipo de controlador dos mais usados em diversos tipos de aplicações, e o conhecimento de sua sintonia é de importância estratégica para o profissional de controle [5]. 2. UTILIZAÇÃO DO PATROL 2.1 Interface A versão atual do PATROL está disponível sem senha a partir da URL [2]. Nessa versão, o usuário final pode acessar tanto a sua parte estática quanto a sua parte interativa. No menu principal ainda consta referência aos fundamentos tecnológicos que foram usados para o desenvolvimento do sistema, bem como crédito aos autores e um link para uma introdução ao uso do sistema. O menu principal está sempre disponível. O menu de módulos estáticos dá acesso a diversos links com referências rápidas, estáticas, de assuntos relacionados ao tema do PATROL, que é controle linear de sistemas dinâmicos. A partir desses módulos estáticos, o usuário final (aluno) pode rever conceitos relacionados ao assunto que se está estudando. Esses módulos estáticos são uma coletânea de assuntos dentro da área de controle, selecionados a partir de boas referências bibliográficas. A lista dos módulos estáticos disponíveis no PATROL é acessível diretamente a partir do menu módulos estáticos no menu principal. Os módulos dinâmicos são os módulos que oferecem interatividade ao usuário final. A interatividade nesse caso é a capacidade de executar simulações numéricas, inclusive com a visualização gráfica dos resultados no browser do usuário final. Para o ensino de controle, é de particular importância que se consolide os conhecimentos em estudo a partir da execução de simulações numéricas. A partir do PATROL, as simulações de problemas elucidativos selecionados especialmente para finalidade didática são possíveis a partir dos dados que o aluno preenche em formulários no próprio browser. A lista dos módulos interativos disponíveis no PATROL é acessível diretamente a partir do menu módulos interativos no menu principal. A figura Figura 1 mostra a tela inicial do PATROL, com o menu principal (a esquerda), sendo que a seta enfatiza os dois itens principais do menu - módulos estáticos e módulos interativos. O trabalho completo, incluindo figuras e tabelas, deve ser limitado a 10 (dez) páginas em tamanho A4 (21 cm x 29,7 cm). Por favor, atenda a esta limitação escrevendo de forma concisa e não reduzindo figuras e tabelas a tamanhos que sacrifiquem o entendimento dos símbolos e legendas nelas incluídos. NTM - 216
Figura 1: Tela inicial do PATROL, vista pelo browser 2.2 Módulos estáticos A parte de módulos estáticos contém um conjunto de referências rápidas para itens de interesse da área de controle. Atualmente, os módulos estáticos abordam os itens mostrados abaixo. Mas a estrutura do sistema PATROL permite facilmente que mais módulos estáticos possam ser acrescentados, ou ter o seu conteúdo modificado. Estabilidade de Sistemas Dinâmicos Pólos e Zeros Função de transferência Espaço de estados Simplificação de sistemas dinâmicos Interconecção de sistemas lineares Sistemas multivariáveis Cálculo de controladores Resposta no tempo Resposta em freqüência Observabilidade e controlabilidade 2.3 Módulos interativos A parte de módulos interativos é aquela que permite ao usuário final executar simulações numéricas. Esses módulos são uma parte essencial do PATROL, pois faz o sistema tornar-se uma versão bastante melhorada de um livro. Enquanto um livro é basicamente um conteúdo estático, o sistema na Internet se diferencia pela possibilidade de interatividade. A partir de exemplos didáticos do próprio sistema, o aluno pode livremente alterar os parâmetros da simulação e repeti-la com os novos parâmetros. Além disso, as simulações podem ser feitas de qualquer computador conectado a web, sem a necessidade de instalação de softwares especiais no computador do usuário final, o que facilita bastante o uso. Na versão atual do PATROL, os módulos interativos implementados são aqueles listados abaixo. Novamente ressaltamos que novos módulos podem ser adicionados ao sistema com facilidade devido a forma pela qual foi estruturado o sistema. Resposta ao degrau de 1a. ordem Resposta ao degrau de 2a. ordem Resposta ao degrau de ordem qualquer Resposta em freqüência Root-Locus (lugar das raízes) Controladores PID 3. IMPACTO NO ENSINO A versão atual do PATROL está no estágio utilização direta. Neste estágio, qualquer usuário final pode entrar na página sem senha e utilizá-la, seja para os módulos estáticos, seja para os módulos interativos. A idéia de tornar a página de livre acesso é adequada para a fase inicial de implantação do projeto. Utilizar um sistema na Internet para NTM - 217
apoio ao ensino de controle é ainda um conceito por se estabelecer. Proteger com senha as funcionalidades da página seria um procedimento cerceador para o projeto nesse momento inicial. Contudo, a tendência do sistema é que tenha as suas funcionalidades protegidas por senha, para que se possa saber quem o está utilizando. Cada aluno, identificado previamente, poderia ter um arquivo onde todas as suas atividades no site ficariam registradas em uma espécie de log. Com isso, o professor poderia analisar esse arquivo e assim obteria informações importantes sobre o nível de aprendizado de cada aluno individualmente. O log de utilização de uma ferramenta didática por um aluno é informação de grande relevância para um tutor. Supondo que cada aluno possui uma senha própria e que não a revela aos demais, a informação de log dá uma medida de quanto tempo o aluno ficou trabalhando com a ferramenta. No caso de estudos empíricos, como é o caso do estudo de sintonia de controladores PID, o log é uma ferramenta de particular valor, como é mostrado na seção abaixo. 3.1 Ensino de sintonia de controladores PID Dentro da área de controle, há um item em especial de grande importância, que é o estudo de sintonia de controladores PID. O controlador PID (Proporcional Integral Derivativo) é a opção de controlador adotada pela grande maioria dos problemas industriais de controle linear. A indústria petro-química é um segmento que faz uso particularmente intenso desse tipo de controlador. Trata-se de um controlador cuja lei de controle é de certa forma empírica. Contudo, sua robustez e desempenho são consagrados pelo uso prático. O controlador PID possui 3 parâmetros de ajuste, e quando ajustados adequadamente o controlador adquire grande versatilidade. Para um profissional da área de controle, uma competência importante é ser capaz de sintonizar (ajustar parâmetros) de um controlador PID. Ou seja, a partir de um dado sistema de controle baseado em controlador PID, o profissional deve ser capaz de propor ajustes para o controlador de modo a obter um sistema de controle com bom desempenho. Caso o sistema já esteja ajustado, mas com desempenho insatisfatório, o profissional deve ser capaz de analisar os sinais de controle e re-sintonizar o controlador no sentido de obter melhores respostas do sistema. Uma das funcionalidades do PATROL é exatamente exercitar o treinamento e educação associados a competência descrita no parágrafo anterior. Selecionando a opção módulos interativos - controladores PID, o PATROL mostra uma tela em que o usuário final entra com um modelo do objeto a ser controlado (também conhecido como planta ). A partir desse modelo, o PATROL inicialmente mostra as curvas de reação do modelo (planta em malha aberta). Em seguida, oferece a opção de simular o comportamento dessa planta em malha fechada (planta conectada ao controlador), sendo que a sintonia do controlador é aquela que o usuário final entrou por formulário de página web. O resultado é mostrado graficamente no browser do usuário final. Caso a resposta da simulação não seja satisfatória, o ciclo de propor nova sintonia para o controlador e obter nova simulação pode ser repetido indefinidamente. A cada nova interação, o usuário final observa todas as tentativas anteriores de obter sintonias para o controlador. Dessa forma, por observar e analisar a influência dos parâmetros de ajuste na evolução das curvas de reação simuladas, a verdadeira essência da competência de sintonizar o controlador está sendo exercitada. Além disso, um tutor pode ter uma medida de quanto conhecimento um aluno possui na tarefa de sintonizar um controlador por verificar o número de interações que são necessárias para o aluno obter um resultado satisfatório. Na Figura 2, é mostrado o modelo da visualização no browser pelo usuário final, de como o PATROL funciona na opção controlador PID. Nesse modelo, a partir de uma planta em particular, o usuário final pode verificar a curva de resposta em malha aberta (sem controlador), e também duas respostas com controlador. Como pode-se ver pela simulação, a planta é instável (a resposta cresce indefinidamente a partir de entrada degrau). Na interação 1, o controlador foi ajustado com sintonia (Kc=1, Ti=15, Td=0.1); a resposta é estável, mas muito oscilatória e portanto não é boa. Numa segunda interação, o controlador foi ajustado aumentando-se o tempo integral (essa é uma das técnicas para reduzir a oscilação [5]), e a nova sintonia do controlador é (Kc=1, Ti=1500, Td=0.1). A resposta melhorou, pois a oscilação é amortecida mais rapidamente, mas ainda ocorre considerável oscilação e sintonia melhor poderia ser obtida prosseguindo a procura pelos parâmetros adequados de sintonia do controlador. O usuário final inicialmente observa apenas a resposta da planta em malha aberta. O PATROL oferece a possibilidade de acrescentar o controlador PID com uma sintonia obtida pelo usuário final, que requisita tantas interações quanto queira. A medida em que novas interações são solicitadas, o histórico do que foi requerido aparece no browser. A boa habilidade de sintonizar o controlador é relacionada a obtenção de um ajuste adequado do controlador com poucas interações. NTM - 218
Malha Aberta Interação 1 Kc=1,Ti=15,Td=0.1 Interação 2 Kc = 1, Ti = 1500, Td = 0.1 4. TECNOLOGIA Figura 2: Modelo da visualização do PATROL, na opção de controlador PID, após o usuário final ter feito 2 interações para sintonizar o controlador PID 4.1 Estratégia para uso de tecnologia A tecnologia utilizada para o desenvolvimento do PATROL foi totalmente desenvolvida no âmbito da universidade. Optou-se por desenvolver toda a tecnologia, ao invés de escolher uma tecnologia pronta, por motivação estratégica. O objetivo de se desenvolver o sistema PATROL desde o início é não somente o de se obter um sistema para apoio ao ensino de controle, mas também o de fazer aumentar a competência no desenvolvimento de sistemas de Internet para aplicação geral. Em outras palavras, o PATROL serve também como um laboratório para tecnologias de desenvolvimento de software para Internet. Caso fosse usada uma tecnologia pronta, algo como um produto de prateleira, para o desenvolvimento do sistema, seria bem provável que o fornecedor da tecnologia se tornaria cada vez mais competente no desenvolvimento de sistemas de software para Internet. Enquanto isso a equipe que desenvolvesse o PATROL tornar-se-ia a ser capaz de desenvolver sistemas para Internet apenas utilizando a tecnologia escolhida. Além disso, caso alguma limitação tecnológica surgisse no decorrer do desenvolvimento, a resolução dessa limitação estaria atrelada a tecnologia escolhida. Mas a opção de desenvolver toda a tecnologia de programação interativa, fez aumentar a competência em detalhes intrincados de tecnologia de informação, particularmente de programação interativa para Internet. A partir dessa competência, foi possível, por exemplo resolver o problema de execução de simulação numérica com saída gráfica no browser, como descrito abaixo. Além disso, surgiu um importante sub-produto do desenvolvimento do PATROL, que é uma biblioteca para programação interativa na Internet, também descrita abaixo. 4.2 Programação interativa na Internet O PATROL é um sistema na Internet formado basicamente por páginas HTML e programas CGI. Para a programação CGI, optou-se por se desenvolver todos os programas na linguagem C++. A opção pela linguagem C++ deve-se basicamente por: ser gratuita ser multiplataforma NTM - 219
ser orientada a objetos (portanto manter a programação simples) ser versátil haver interesse em aumentar o conhecimento no uso dessa linguagem Como C++ é uma linguagem bastante sofisticada, o desenvolvimento de programas CGI com essa linguagem é muito facilitado pelo uso de uma biblioteca de apoio. Paralelamente ao desenvolvimento do PATROL, obteve-se um subproduto que é uma biblioteca em C++, muitiplataforma, para programação CGI. Essa biblioteca, chamada de VBMcgi, está atualmente sendo oferecida como alternativa para programação CGI para aplicação geral. Os detalhes sobre a biblioteca VBMcgi podem ser vistos na URL [3]. O uso da linguagem C++ para programação CGI mostrou-se bastante adequado para os objetivos do PATROL. Em primeiro lugar, pela versatilidade que essa linguagem possui. Mas apesar de sua sofisticação e versatilidade, o uso da linguagem C++ não tornou-se um fator de complicação no desenvolvimento do sistema, ao contrário. Com as complexidades específicas da programação CGI isoladas na biblioteca VBMcgi, o desenvolvimento do sistema foi bastante simples. Uma das características importantes da desta biblioteca é o fato de que toda a programação visual do sistema na Internet, feita em HTML, é totalmente isolada da programação CGI em si. Em outras palavras, o uso de programas externos para design HTML (e.g. DreamWeaver) é não só possível, mas também recomendável. Em resumo, o desenvolvimento do PATROL fez aumentar os conhecimentos sobre o desenvolvimento de sistemas de software na Internet baseado em CGI. A opção estratégica de utilizar C++ e VBMcgi mostrou-se adequada para o desenvolvimento do PATROL. 4.3 Execução de simulação numérica com saída gráfica no browser Durante o desenvolvimento do sistema, deparou-se com um problema técnico interessante. Seria de grande valor para o PATROL que uma simulação numérica pudesse ser feita por um programa externo, executado no servidor, sendo a saída gráfica fosse direcionada para o browser do usuário final. Dessa forma, qualquer computador que estiver apenas conectado a web pode utilizar integralmente o PATROL, inclusive realizando simulações complexas, e sem que se exija a instalação de software no computador do cliente. O programa simulador, executado no servidor, deve receber parâmetros do usuário final vindos de formulário html, processar esses dados, gerar saída gráfica e direcionar a página de saída do usuário final para que exiba a saída gráfica gerada. Além disso, parte das saídas gráficas devem ficar armazenadas para visualização múltipla, como no caso da funcionalidade em que se trabalha a sintonia de controladores PID. Nesse caso, o usuário final precisa ver ao mesmo tempo todas as saída gráficas das interações que já fez, para com isso obter conclusões sobre novas sintonias para o controlador. Esse problema foi resolvido utilizando-se uma série de artifícios, descritos a seguir. 1. Passar parâmetros do formulário html do usuário final para o programa simulador. O programa simulador numérico geralmente trabalha baseado numa linguagem de programação própria. Portanto, para uma dada simulação, pode-se escrever um programa na linguagem do programa simulador. Mas os parâmetros de entrada da simulação devem ser, pelo menos em parte, oriundos de formulário html (pelo usuário final). A solução desse problema foi fazer um template (molde) de programa simulador para cada situação implementada pelo PATROL. Utilizando-se funcionalidades de procura e troca de strings (seqüência de letras) implementadas pela biblioteca VBMcgi, o programa template é alterado para o programa real de simulação utilizando os dados que vêm do formulário html. O simulador recebe apenas o programa real, já com os dados que vieram do formulário. 2. Obter a saída gráfica no browser. Obter essa funcionalidade parece ser um problema simples, mas alguns detalhes são necessários. O primeiro detalhe é conseguir que o programa simulador seja capaz de salvar o arquivo gráfico no formato desejado (no caso JPG). Essa é uma opção do programa simulador, mas que deve ser configurada para funcionar sem o carregamento do cliente X Windows. Além disso, o nome dos arquivos gráficos gerados deve sempre ser diferente (no caso, o nome é baseado em data-hora), para forçar o browser do usuário final a mostrar sempre a última versão do arquivo gráfico gerado (do contrário, o cache do browser faria mostrar a versão anterior deste arquivo). A página html que mostra o resultado da simulação deve, obviamente, fazer referência aos nomes dos arquivos gráficos gerados pelo programa simulador. 5. CONCLUSÃO O PATROL é um projeto de desenvolvimento de uma ferramenta de apoio ao ensino de controle linear de sistemas dinâmicos, utilizando tecnologia de Internet. A versão atual do PATROL foi desenvolvida com finalidade de servir como fonte de referência (módulos estáticos), e também como laboratório virtual (módulos interativos). Em especial, o PATROL desenvolveu um módulo específico para uma necessidade particular da área de controle, que é o treinamento para sintonia de controladores PID. Com o desenvolvimento do PATROL, indiretamente obteve-se aumento do conhecimento no desenvolvimento de sistemas interativos com tecnologia de Internet. Em particular, obteve-se como importante sub-produto a biblioteca VBMcgi, de uso geral para programação CGI com a linguagem C++. Atualmente, o projeto PATROL encontra-se em fase de utilização direta, ou seja, acessível sem proteção por senha. Esta fase é essencial para se realizar diversos testes nas suas funcionalidades já implementadas e receber sugestões e críticas dos seus usuários para melhorar o sistema. NTM - 220
Dentre as facilidades planejadas para serem implementadas no futuro cita-se novos módulos estáticos e dinâmicos para enriquecer a experiência de aprendizagem do aluno; além disso, o sistema poderia ser melhor aproveitado caso existisse no sistema uma área específica para o professor. Com esse recurso, o professor poderá acompanhar com detalhes o andamento do aprendizado do aluno, por meio de logs. 6. REFERÊNCIAS [1] DEL - Departamento de Engenharia Eletrônica e Computação da UFRJ. http://www.del.ufrj.br [2] PATROL - http://del.ufrj.br/~villas/patrol.html [3] VBMcgi - Biblioteca Villas-Boas e Martins para programação CGI muitiplataforma, em C++, com código gratuito. http://www.vbmcgi.org [4] Dennis S. Bernstein, R. Scott Erwin, Carl Knospe, Tobin Van Pelt, Ravinder Venugopal. Practical techniques for control engineering: Bridging the gap between theory and pratice, workshop on the 2000 American Control Conference, June 28-30, 2000. [5] Karl J. Åström, Tore Hägglund, PID controllers: Theory, Design and Tuning -2nd ed, ISBN 1556175167, 1995. NTM - 221