·

Cursos Gerais ·

Sistemas de Controle

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Contexto Um processo industrial foi modelado para a construção de um simulador para o treinamento dos profissionais da área de controle e automação A malha de controle é a seguinte O processo foi modelado pela seguinte função de transferência Y X2 K1 τ1s1τ2s1τ3s1τ4s1 X5 K2 τ5s1τ6s1 G1 G3 e G4 podem ser considerados unitários Considerando o modelo obtido como uma representação real do processo obtenha a função de primeira ordem com tempo morto que melhor aproxima o comportamento modelado usando o método de SundaresanKrishnaswamy para a parte manipulada da função de transferência do processo Ajuste os controladores indicados para sua equipe conforme os métodos indicados Obtenha de forma analítica a funções de transferência para a malha feedback com a representação real da função de transferência do processo dos problemas servo e regulador Obtenha usando o GNU Octave a funções de transferência para a malha feedback com a representação real da função de transferência do processo dos problemas servo e regulador Apresente as funções de transferência nas formas ganhoconstante de tempo e zerospolos Determine a estabilidade através da matriz de Routh Discuta os resultados Equipe K τ 1 2 1 2 3 4 5 6 1 5 3 5 6 4 0 3 3 2 4 2 3 7 0 5 9 1 3 6 3 2 0 15 3 4 2 4 3 1 0 4 8 4 6 15 5 2 1 2 4 6 3 0 3 6 8 4 2 0 8 6 2 4 7 9 4 9 3 2 3 5 15 8 4 3 8 7 0 2 4 0 9 5 2 1 3 5 7 2 5 Equipe Controladores Métodos 1 PI PI CohenCoon ITAE 2 PI PID ZieglerNichols ZieglerNichols 3 PI PID ITAE ITAE 4 PID PI ITAE ZieglerNichols 5 PI PI ITAE ZieglerNichols 6 PI PID Cohencoon ZieglerNichols 7 PI PID ZieglerNichols Cohencoon 8 PI PI ZieglerNichols ITAE 9 PI PI Cohencoon ZieglerNichols CURSO DE XXXXXX EQUIPE 6 RELATÓRIO DE CONTROLE TÍTULO DA PRÁTICA CIDADE 2024 SUMÁRIO 1 INTRODUÇÃO 3 11 Objetivos 3 12 Objetivos específicos 3 2 DESENVOLVIMENTO 3 21 Multiplicação de Polinômios 4 22 Polos e Zeros da Função 5 23 Matriz de Routh 5 24 Sundaresan Krishnaswamy 6 25 Método de Ziegler Nichols 6 26 Método de CoheenCoon 7 3 CONCLUSÃO 8 4 REFERÊNCIAS BIBLIOGRÁFICAS 9 5 ANEXO 10 1 INTRODUÇÃO Este trabalho tem como objetivo analisar um sistema de controle em malha fechada simulando um processo industrial Através do modelo representativo será possível avaliar e ajustar os controladores ProporcionalIntegral PI e ProporcionalIntegralDerivativo PID 11 Objetivos Modelar o processo Analisar a estabilidade do sistema 12 Objetivos específicos Obter o modelo de primeira ordem de tempo morto Ajustar os controladores PI e PID de acordo com os métodos de Coheencoon e ZieglerNichols Determinar a estabilidade através da matriz de Routh 2 DESENVOLVIMENTO Para a execução do trabalho foram utilizados os parâmetros 𝐾 e 𝜏 fornecidos para a equipe 6 são estes Tabela 1 Parâmetros da Equipe 𝐾1 𝐾2 𝜏1 𝜏2 𝜏3 𝜏4 𝜏5 𝜏6 8 4 2 0 8 6 3 4 O diagrama da malha de controle pode ser observado na Figura 1 assim como a equação do sistema após a substituição dos valores dos parâmetros da equipe 𝑌 𝑋2 8 2𝑠 10𝑠 18𝑠 16𝑠 1 𝑋5 4 2𝑠 14𝑠 1 Figura 1 Diagrama de blocos da malha de controle Todo o desenvolvimento do trabalho foi realizado no software Octave e os códigos executados estão disponíveis no Anexo 21 Multiplicação de Polinômios Antes de obter a função de transferência é necessário multiplicar os polinômios de cada equação do bloco da malha Os blocos G1 G3 e G4 possuem ganho unitário já os blocos G2 e G5 possuem a sua equação representada na fórmula Y citada anteriormente Para isso foi utilizada a função polymult Para a função G2 𝐺2 8 2𝑠 10𝑠 18𝑠 16𝑠 1 Para a função G5 𝐺5 4 2𝑠 14𝑠 1 Reescrevendo a função temos as seguintes funções transferência 𝐺2 8 96𝑠3 76𝑠2 16𝑠 1 𝐺5 4 8𝑠2 6𝑠 1 Os gráficos de resposta ao impulso unitário estão presentes na Figura 2 e Figura 3 22 Polos e Zeros da Função Através das funções transferência obtidas anteriormente é possível determinar os polos e zeros São estes Para a função G2 os polos são 05 01667 01250 e não possui zeros Para a função G5 os polos são 05 025 e não possui zeros Através dos polos é possível analisar a estabilidade do sistema Pois se os polos estiverem localizados na metade esquerda do plano o sistema é estável OGATA 2010 23 Matriz de Routh Analisaremos agora a estabilidade pela matriz de Routh Figura 2 Resposta ao impulso unitário bloco G2 Figura 3 Resposta ao impulso unitário bloco G5 Pela matriz de Routh se todos os elementos da primeira coluna forem positivos o sistema é estável Logo podemos afirmar que o sistema analisado é estável pelo critério dos polos e pela matriz de Routh 24 Sundaresan Krishnaswamy Para determinar os parâmetros do modelo de primeira ordem de tempo morto foi utilizado o método de SundaresanKrishnaswamy Os parâmetros obtidos serão utilizados para para ajustar o controlador PI e PID São passados como argumentos da função os dados de tempo t e saída da função y para a resposta ao impulso 25 Método de Ziegler Nichols Utilizando os parâmetros obtidos anteriormente é possível utilizar o método de Ziegler Nichols para obter o controlador PID São eles KCzn o parâmetro proporcional tauIzn o paramêtro I e tauDzn o parâmetro D do controlador Figura 5 Resposta do PID a uma perturbação XSP Figura 4 Resposta do PID a uma perturbação em X5 No primeiro gráfico da Figura 4 podese observar um sobressinal inicial seguido por algumas oscilações já o segundo gráfico reflete o sinal de controle usado para contrabalancear a perturbação em X5 No primeiro gráfico da Figura 5 podese observar uma subida mais suave com sobressinal muito pequeno e o segundo gráfico a resposta inicial é mais acentuada e depois estabiliza 26 Método de CoheenCoon Para o método de CoheenCoon será calculado o controlador PI Aplicando a função obtevese os seguintes resultados Por se tratar de um controlador PI o parâmetro tauD é igual a zero KC referese ao parâmetro P e tauI ao I Os gráficos da Figura 6 possuem oscilações maiores se comparados com o controlador PID da Figura 4 Na Figura 7 também podese observar maiores oscilações Figura 6 Resposta do PI a uma perturbação em X5 Figura 7 Resposta do PI a uma perturbação em XSP 3 CONCLUSÃO Através dos dados obtidos é possível concluir que o sistema é estável e que os objetivos do trabalho foram atingidos com êxito O grupo foi capaz de utilizar as funções determinadas configurar e calcular os parâmetros dos controladores Além disso o trabalho amplificou o conhecimento de todos na disciplina de controle e utilizar de forma prática os tópicos aprendidos Comparando ambos os controladores podese concluir que o controlador PID lida com perturbações de forma mais agressiva com alguma instabilidade inicial porém atinge a estabilidade em um período menor Já o controlador PI apresenta respostas mais suaves o que pode ser melhor se o sistema a ser controlado for mais sensível a sobressinais e oscilações 4 REFERÊNCIAS BIBLIOGRÁFICAS OGATA K Engenharia de controle moderno 2010 Pearson Prentice Hall 5 ANEXO Função para cálculo da matriz de Routh pkg load control Carrega o pacote de controle se não estiver carregado Definição da função de transferência numerador 4 denominador 8 6 1 H tfnumerador denominador Função para calcular a matriz de Routh function routhArray routhHurwitzp n lengthp m ceiln2 routhArray zerosn m Preencher as duas primeiras linhas da matriz de Routh routhArray1 p12n zeros1 m length12n routhArray2 p22n zeros1 m length22n Calcular as linhas restantes da matriz de Routh for i 3n for j 1m1 routhArrayi j routhArrayi1 1 routhArrayi2 j1 routhArrayi2 1 routhArrayi1 j1 routhArrayi1 1 end Se a linha for zero usar o polinômio derivado if allrouthArrayi 0 order n i polyderiv n i11 routhArrayi 1m1 polyderiv routhArrayi2 1m 1 end end end Calcular a matriz de Routh routhArray routhHurwitzdenominador Exibir a matriz de Routh dispMatriz de Routh disprouthArray Função para obter os parâmetros do controlador com o método de ZieglerNichols Função para obter os parâmetros do controlador com o método de CoheenCoon function KCtauItauDzieglernicholscontroller K tau teta controllerPI controllerPID controlleruppercontroller if strcmpcontrollerPID KC12Ktauteta tauI2teta tauD05teta elseif strcmpcontrollerPI KC09Ktauteta tauI333teta tauD0 else KC1Ktauteta tauIinf tauD0 endif endfunction function KCtauItauDcohencooncontroller K tau teta controllerPI controllerPID controlleruppercontroller if strcmpcontrollerPID controller PID KC KC1Ktauteta16tau3teta12tau tauI tauIteta326tetatau138tetatau tauD tauD4teta112tetatau end else controller PI KC KC1Ktauteta09teta12tau tauI tauIteta303tetatau920tetatau tauD0 end endif endfunction Função para obter os parâmetros atráves do método de SundaressanKrishnaswamy function K tau teta t353t853sundaresankrishnaswamytymagdegstr if nargin2 magdeg1 endif if nargin3 isstrmagdeg magdeg1 strs endif yyy1 for j1lengthy if yj0353yend t353tj1tj2 break endif endfor for kjlengthy if yk0853yend t853tk1tk2 break endif endfor tau067t853t353 teta13t353029t853 Kyend2yend1yend3magdeg if nargin3 isstrmagdeg nargin4 showtfKtau 1teta endif endfunction function showtfnum denom td x if nargin2 xs elseif nargin3 isnumerictd xs endif numstr polyoutnumx numstr strrepnumstrsprintf 1sxsprintfsx numstr strrepnumstrsprintfs1 xsprintfs x denomstr polyoutdenomx denomstr strrepdenomstrsprintf 1sxsprintfsx denomstr strrepdenomstrsprintfs1 xsprintfs x len maxlengthnumstrlengthdenomstr if nargin2 y sprintfstrrepblankslen spcfixlenlengthnumstr2 dispsprintfblanksspc numstr blanksspc dispy dispdenomstr elseif nargin3 isnumerictd nargin4 y sprintfstrrepblankslen e spcfixlenlengthnumstr2 dispsprintfblanksspc numstr blanksspc gstdx dispy dispdenomstr endif endfunction Função de multiplicação de polinômios AuthorMarcos Marcelino Mazzucco Dr polynomial multiplication Useppolymultp1p2p3 ppolymultp1p2p3string where p1p2p3 are vector of polynomial ppolymultvpstring where vp is a matrix where each line correspond one polinomial The last parameter string is optional to present the result in text form function ppolymultvarargin pvarargin1 ppp if nargin1 ppp1 for i2rowspp argppi pconvparg endfor return elseif nargin2 strcmptypeinfovarargin2string ppp1 for i2rowspp argppi pconvparg endfor polyoutpvarargin2 return endif for i2nargin argvarargini if strcmptypeinfoargstring polyoutparg return endif pconvparg endfor endfunction CURSO DE XXXXXX EQUIPE 6 RELATÓRIO DE CONTROLE TÍTULO DA PRÁTICA CIDADE 2024 SUMÁRIO 1 INTRODUÇÃO Este trabalho tem como objetivo analisar um sistema de controle em malha fechada simulando um processo industrial Através do modelo representativo será possível avaliar e ajustar os controladores ProporcionalIntegral PI e ProporcionalIntegralDerivativo PID 11 Objetivos Modelar o processo Analisar a estabilidade do sistema 12 Objetivos específicos Obter o modelo de primeira ordem de tempo morto Ajustar os controladores PI e PID de acordo com os métodos de Coheencoon e ZieglerNichols Determinar a estabilidade através da matriz de Routh 2 DESENVOLVIMENTO Para a execução do trabalho foram utilizados os parâmetros K e τ fornecidos para a equipe 6 são estes Tabela 1 Parâmetros da Equipe K1 K2 τ1 τ 2 τ3 τ 4 τ5 τ 6 8 4 2 0 8 6 3 4 O diagrama da malha de controle pode ser observado na Figura 1 assim como a equação do sistema após a substituição dos valores dos parâmetros da equipe Y X 28 2s10 s18s1 6 s1 X54 2s14 s1 Figura 1 Diagrama de blocos da malha de controle Todo o desenvolvimento do trabalho foi realizado no software Octave e os códigos executados estão disponíveis no Anexo 21 Multiplicação de Polinômios Antes de obter a função de transferência é necessário multiplicar os polinômios de cada equação do bloco da malha Os blocos G1 G3 e G4 possuem ganho unitário já os blocos G2 e G5 possuem a sua equação representada na fórmula Y citada anteriormente Para isso foi utilizada a função polymult Para a função G2 G2 8 2s10s18 s1 6s1 Para a função G5 G5 4 2s14 s1 Reescrevendo a função temos as seguintes funções transferência G2 8 96 s 376 s 216 s1 G5 4 8 s 26 s1 Os gráficos de resposta ao impulso unitário estão presentes na Figura 2 e Figura 3 22 Polos e Zeros da Função Através das funções transferência obtidas anteriormente é possível determinar os polos e zeros São estes Para a função G2 os polos são 05 01667 01250 e não possui zeros Para a função G5 os polos são 05 025 e não possui zeros Através dos polos é possível analisar a estabilidade do sistema Pois se os polos estiverem localizados na metade esquerda do plano o sistema é estável OGATA 2010 23 Matriz de Routh Analisaremos agora a estabilidade pela matriz de Routh Figura 2 Resposta ao impulso unitário bloco G2 Figura 3 Resposta ao impulso unitário bloco G5 Pela matriz de Routh se todos os elementos da primeira coluna forem positivos o sistema é estável Logo podemos afirmar que o sistema analisado é estável pelo critério dos polos e pela matriz de Routh 24 Sundaresan Krishnaswamy Para determinar os parâmetros do modelo de primeira ordem de tempo morto foi utilizado o método de SundaresanKrishnaswamy Os parâmetros obtidos serão utilizados para para ajustar o controlador PI e PID São passados como argumentos da função os dados de tempo t e saída da função y para a resposta ao impulso 25 Método de Ziegler Nichols Utilizando os parâmetros obtidos anteriormente é possível utilizar o método de Ziegler Nichols para obter o controlador PID São eles KCzn o parâmetro proporcional tauIzn o paramêtro I e tauDzn o parâmetro D do controlador Figura 5 Resposta do PID a uma perturbação XSP Figura 4 Resposta do PID a uma perturbação em X5 No primeiro gráfico da Figura 4 podese observar um sobressinal inicial seguido por algumas oscilações já o segundo gráfico reflete o sinal de controle usado para contrabalancear a perturbação em X5 No primeiro gráfico da Figura 5 podese observar uma subida mais suave com sobressinal muito pequeno e o segundo gráfico a resposta inicial é mais acentuada e depois estabiliza 26 Método de CoheenCoon Para o método de CoheenCoon será calculado o controlador PI Aplicando a função obtevese os seguintes resultados Por se tratar de um controlador PI o parâmetro tauD é igual a zero KC referese ao parâmetro P e tauI ao I Os gráficos da Figura 6 possuem oscilações maiores se comparados com o controlador PID da Figura 4 Na Figura 7 também podese observar maiores oscilações Figura 6 Resposta do PI a uma perturbação em X5 Figura 7 Resposta do PI a uma perturbação em XSP 3 CONCLUSÃO Através dos dados obtidos é possível concluir que o sistema é estável e que os objetivos do trabalho foram atingidos com êxito O grupo foi capaz de utilizar as funções determinadas configurar e calcular os parâmetros dos controladores Além disso o trabalho amplificou o conhecimento de todos na disciplina de controle e utilizar de forma prática os tópicos aprendidos Comparando ambos os controladores podese concluir que o controlador PID lida com perturbações de forma mais agressiva com alguma instabilidade inicial porém atinge a estabilidade em um período menor Já o controlador PI apresenta respostas mais suaves o que pode ser melhor se o sistema a ser controlado for mais sensível a sobressinais e oscilações 4 REFERÊNCIAS BIBLIOGRÁFICAS OGATA K Engenharia de controle moderno 2010 Pearson Prentice Hall 5 ANEXO Função para cálculo da matriz de Routh Função para obter os parâmetros do controlador com o método de ZieglerNichols Função para obter os parâmetros do controlador com o método de CoheenCoon pkg load control Carrega o pacote de controle se não estiver carregado Definição da função de transferência numerador 4 denominador 8 6 1 H tfnumerador denominador Função para calcular a matriz de Routh function routhArray routhHurwitzp n lengthp m ceiln2 routhArray zerosn m Preencher as duas primeiras linhas da matriz de Routh routhArray1 p12n zeros1 m length12n routhArray2 p22n zeros1 m length22n Calcular as linhas restantes da matriz de Routh for i 3n for j 1m1 routhArrayi j routhArrayi1 1 routhArrayi2 j1 routhArrayi2 1 routhArrayi1 j1 routhArrayi1 1 end Se a linha for zero usar o polinômio derivado if allrouthArrayi 0 order n i polyderiv n i11 routhArrayi 1m1 polyderiv routhArrayi2 1m 1 end end end Calcular a matriz de Routh routhArray routhHurwitzdenominador Exibir a matriz de Routh dispMatriz de Routh disprouthArray function KCtauItauDzieglernicholscontroller K tau teta controllerPI controllerPID controlleruppercontroller if strcmpcontrollerPID KC12Ktauteta tauI2teta tauD05teta elseif strcmpcontrollerPI KC09Ktauteta tauI333teta tauD0 else KC1Ktauteta tauIinf tauD0 endif endfunction function KCtauItauDcohencooncontroller K tau teta controllerPI controllerPID controlleruppercontroller if strcmpcontrollerPID controller PID KC KC1Ktauteta16tau3teta12tau tauI tauIteta326tetatau138tetatau Função para obter os parâmetros atráves do método de SundaressanKrishnaswamy function KCtauItauDcohencooncontroller K tau teta controllerPI controllerPID controlleruppercontroller if strcmpcontrollerPID controller PID KC KC1Ktauteta16tau3teta12tau tauI tauIteta326tetatau138tetatau function K tau teta t353t853sundaresankrishnaswamytymagdegstr if nargin2 magdeg1 endif if nargin3 isstrmagdeg magdeg1 strs endif yyy1 for j1lengthy if yj0353yend t353tj1tj2 break endif endfor for kjlengthy if yk0853yend t853tk1tk2 break endif endfor tau067t853t353 teta13t353029t853 Kyend2yend1yend3magdeg if nargin3 isstrmagdeg nargin4 showtfKtau 1teta endif endfunction function showtfnum denom td x if nargin2 xs elseif nargin3 isnumerictd xs endif numstr polyoutnumx numstr strrepnumstrsprintf 1sxsprintfsx numstr strrepnumstrsprintfs1 xsprintfs x denomstr polyoutdenomx denomstr strrepdenomstrsprintf 1sxsprintfsx denomstr strrepdenomstrsprintfs1 xsprintfs x len maxlengthnumstrlengthdenomstr if nargin2 y sprintfstrrepblankslen spcfixlenlengthnumstr2 dispsprintfblanksspc numstr blanksspc dispy dispdenomstr elseif nargin3 isnumerictd nargin4 y sprintfstrrepblankslen e spcfixlenlengthnumstr2 dispsprintfblanksspc numstr blanksspc gstdx dispy Função de multiplicação de polinômios function K tau teta t353t853sundaresankrishnaswamytymagdegstr if nargin2 magdeg1 endif if nargin3 isstrmagdeg magdeg1 strs endif yyy1 for j1lengthy if yj0353yend t353tj1tj2 break endif endfor for kjlengthy if yk0853yend t853tk1tk2 break endif endfor tau067t853t353 teta13t353029t853 Kyend2yend1yend3magdeg if nargin3 isstrmagdeg nargin4 showtfKtau 1teta endif endfunction function showtfnum denom td x if nargin2 xs elseif nargin3 isnumerictd xs endif numstr polyoutnumx numstr strrepnumstrsprintf 1sxsprintfsx numstr strrepnumstrsprintfs1 xsprintfs x denomstr polyoutdenomx denomstr strrepdenomstrsprintf 1sxsprintfsx denomstr strrepdenomstrsprintfs1 xsprintfs x len maxlengthnumstrlengthdenomstr if nargin2 y sprintfstrrepblankslen spcfixlenlengthnumstr2 dispsprintfblanksspc numstr blanksspc dispy dispdenomstr elseif nargin3 isnumerictd nargin4 y sprintfstrrepblankslen e spcfixlenlengthnumstr2 dispsprintfblanksspc numstr blanksspc gstdx dispy AuthorMarcos Marcelino Mazzucco Dr polynomial multiplication Useppolymultp1p2p3 ppolymultp1p2p3string where p1p2p3 are vector of polynomial ppolymultvpstring where vp is a matrix where each line correspond one polinomial The last parameter string is optional to present the result in text form function ppolymultvarargin pvarargin1 ppp if nargin1 ppp1 for i2rowspp argppi pconvparg endfor return elseif nargin2 strcmptypeinfovarargin2string ppp1 for i2rowspp argppi pconvparg endfor polyoutpvarargin2 return endif for i2nargin argvarargini if strcmptypeinfoargstring polyoutparg return endif pconvparg endfor endfunction