·

Cursos Gerais ·

Automação Industrial

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Automação em Tempo Real Trabalho Final UNIVERSIDADE FEDERAL DE MINAS GERAIS Júlia de Backer Pacífico 2019021476 Junho de 2022 I INTRODUÇÃO O presente trabalho propõe uma situação de controle clássica ilustrada pela Figura 1 em que um tanque cuja área de secção transversal varia com a altura é preenchido por um líquido Figura 1 Processo industrial simulado Nesse processo o nível do tanque ht é fornecido por um transmissor de nível LT Por outro lado a entrada de líquido no tanque qint é governada por meio de um atuador que por sua vez é regulado por um controlador de nível LC Em contrapartida a saída do tanque é expressa por qoutt Cvh 1 em que Cv coeficiente de descarga da saída do tanque Portanto a dinâmica não linear do tanque segue a equação 2 mostrada abaixo ht CvhtπR0 αht2 utπR0 αht2 2 onde ut qint e α R1R0 H Dessa forma foi projetado um sistema de tempo real que simula a situação exposta acima em um programa em Python Para isso foi estabelecido uma comunicação por protocolo tcpip entre dois programas seguindo a arquitetura clienteservidor um deles simula a planta de controle o cliente e o outro representa um painel sinóptico o servidor O programa cliente plantpy possui três threads uma para simulação da dinâmica do tanque outra para a simulação de um controlador PID e ainda uma última para a coordenação do período de simulação de cada uma das demais threads 50ms para a thread da dinâmica tanque e 25ms para a thread de controle Já o programa servidor synopticpy ao se conectar com o cliente requisita um valor de entrada como referência à altura que se deseja manter no tanque cônico pelo método de controle Aferido um valor desejado para a altura h o sistema de controle é iniciado no programa cliente Durante a simulação de tempo limitado neste trabalho imposta para 15 segundos de duração o programa cliente envia os valores das vazões de entrada e saída para o processo sinóptico junto da altura h atual II SIMULAÇÃO DA PLANTA DE CONTROLE II1 Modelagem do tanque cônico Com base na representação de diagrama de blocos podese representar a dinâmica do tanque por um subsistema em malha aberta cuja entrada e saída sejam dadas respectivamente pelas vazões qin e qout Dessa forma a função de transferência para o bloco da Figura 2 se torna a própria função ht exposta na Equação 2 Figura 2 Dinâmica do tanque Assim o processo em malha aberta pode ser representado pelo diagrama de blocos da Figura 3 Automação em Tempo Real Trabalho Final Turma TN Figura 3 Processo sem o sistema de controle Dessa forma notase que o processo aborda um sistema dinâmico nãolinear de 4ª ordem Por essa razão para simular a dinâmica do tanque neste trabalho utilizouse do método RungeKutta de 4ª ordem para solução da equação diferencial da dinâmica do tanque Equação 2 Os parâmetros do tanque modelado se encontram na tabela abaixo Parâmetro Valor Cv 075 H 10 m R0 1 m R1 2 m Assim a processthread criada no programa cliente é encarregada por simular a dinâmica do tanque conforme as equações descritas Dessa forma ao acessar sua seção crítca ela retorna novos valores para a altura relativa h do tanque e para a vazão de saída qout ambos em função da vazão de entrada qin manipulada pela softPLCthread II2 Sistema de controle e comunicação via socket Para controle da planta representada pelo tanque cônico o controlador projetato consiste em um simples PID Sua implementação se deu pela biblioteca simplePIDe seus parâmetros foram definidos por aproximação segundo o método de Tustin Figura 4 Simulação do controlador com referência h 3m Portanto ao entrar em sua seção críticaa softPLCthread retorna um novo valor para a vazão de entrada qin a partir da altura relativa h do tanque regida pela processthread Além disso logo que iniciada a execução do programa cliente a softPLCthread também é responsável por so licitar comunicação via socket com o programa servidor Estabelecida a comunicação entre processos ela então re cebe um valor de referência desejado para a altura h e o processo de controle é iniciado II3 Implementação da planta de controle em tempo real No programa cliente que representa a planta de controle do processo em questão apenas uma thread por vez pode alterar as variáveis globais h qin e qout Por essa razão o acesso simultâneo a qualquer uma delas é protegido por um mutex Dessa forma ilustrando um problema de ca racterística consumidor x produtor a softPLCthread só executa sua seção crítica quando a processthread não tiver a posse do mutex e viceversa Além disso para definir o tempo de execução de ambas as threads foi implementado um sistema de eventos no programa cliente Dessa forma um evento foi configurado para ser habilitado conforme o período de simulação de cada thread portanto o evento responsável por habilitar a softPLCthread é ativado a cada 25ms já o evento que habilita a processthread a cada 50ms A alternância entre os eventos é executada por uma ter ceira thread a timersthread cujo efeito prático é apenas garantir o período de execução das demais III Simulação do sistema supervisório O programa servidor deve ser o primeiro iniciado na simu lação proposta neste trabalho Logo que em execução ele abre um socket para um servidor de endereço e porta fixos conhecidos pelo cliente instanciado na planta de controle e se comunica por protocolo IPv4 Reconhecida a conexão do programa cliente o synopticprocess também responsável por instanciar o servidor requisita do operador do sinóptico um valor href desejado para a altura de controle Após verificar que o valor de referência não ultrapassa a altura máxima H 10m do tanque o sinóptico envia href à planta de con trole pelo socket e aguarda o recebimento das informações esperadas da planta de controle Enquanto a simulação deste sistema em tempo real esti ver em curso o socket é mantido aberto e o processo sinóp 2 Automação em Tempo Real Trabalho Final Turma TN tico imprime os valores recebidos Paralelamente ele tam bém verifica a existência de um arquivo historiadortxtno diretório de execução do programa Caso não exista o processo cria um novo arquivo de mesmo nome do contrá rio ele apenas abre o arquivo preexistente e concatena as informações advindas da planta de controle O processo mantém sua execução até que a comunica ção seja encerrada pelo programa cliente o que acontece decorridos os 15 segundos predefinidos como tempo total desta simulação O valor para este tempo pode ser alterado em código e em nada influência quaisquer dos processos executados IV Resultados e Conclusões Os resultados obtidos em testes para diversos valores de entrada foram satisfatórios Conforme ilustrado na Figura 4 o controlador implementado segue corretamente a refe rência imposta e portanto o valor final da altura relativa condiz com o desejado Adiante a Figura 5 mostra a interface dos programas cliente e servidor que simulam respectivamente a planta de controle e o sistema supervisório Figura 5 Saída no prompt de comando Concluise portanto que a linguagem Python é eficaz na simulação de sistemas em tempo real uma vez que dispõe de diversas ferramentas que viabilizam o uso de diretivas do sistema operacional no controle de variáveis compartilhadas O valor final para a altura relativa ainda que não seja exatamente igual ao fornecido como referência também é considerado satisfatório uma vez que o erro de aproximação se dá na ordem de casas decimais V Fontes V1 RungeKutta methods for ODE integra tion in Python githubcomNaereennotebooks V2 Implementing PID Controllers in Python pubdevpackagessimplepid 3