Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ENGENHARIA DA COMPUTAÇÃO ARTUR SILVA SOARES JOAO PAULO APARECIDO PAPAIT LEONARDO GOMES DA SILVA MATHEUS HENRIQUE FOLSTER DE OLIVEIRA ESPAÇO DE ESTADOS PROJETO 3 APUCARANA 2022 ARTUR SILVA SOARES JOAO PAULO APARECIDO PAPAIT LEONARDO GOMES DA SILVA MATHEUS HENRIQUE FOLSTER DE OLIVEIRA ESPAÇO DE ESTADOS Relatório apresentado à disciplina Controle Digital, do curso de Engenharia da Computação da Universidade Tecnológica Federal do Paraná – UTFPR, como composição parcial da nota semestral da disciplina. APUCARANA 2022 1 INTRODUÇÃO Desde os primórdios da criação dos sistemas de controle, diversos tipos de técnicas e maneiras de se controlar sistemas foram desenvolvidos, a cada qual para sua necessidade e conceitos a serem atendidos para um melhor funcionamento de um sistema ou mesmo melhor controle referente as ações para aquele sistema. Em situações convencionais quando se vai trabalhar com tipos de sistemas de controle, para uma melhor projeção e até evitar erros, muitas vezes se trabalha com o auxílio de softwares computacionais, as quais auxiliam nas métricas e maneiras que esses sistemas irão trabalhar, entretanto para certas situações, tais softwares não conseguem trabalhar com certos tipos de sistemas, visto que esses sistemas tem um número muito grande de variáveis, tanto na entrada quanto na saída. Vendo essa necessidade e com os avanços nas tecnologias aplicadas a área, foi desenvolvido o sistema de variáveis de estado, essa técnica foi de grande ajuda quando tratado de sistemas de controle robusto, já pode-se utilizar o menor número possível de variáveis que podem representar todo o estado do sistema, relacionando todas as componentes diferenciais de um determinado circuito. Essa técnica pode ser obtida por meio da função de transferência da entrada para a saída, onde a variável de maior ordem gerada pela função de transferência se torna o denominador e com essas variáveis do estado do sistema, pode-se determinar o estado juntamente com as derivadas apresentadas tem-se um sistema linear capaz de representar qualquer ponto do circuito em qualquer ponto. Após isso, pode-se representar o sistema de variáveis por meio de matrizes, as quais facilitam muito sua aplicação, visto que esses sistemas matriciais possibilitam a representação por matrizes de primeira ordem e se N, elementos de um vetor são um conjunto de variáveis de estado, então essa equação matricial diferencial pode ser chamada de equação de estado. Essa técnica pode ser aplicada em diversos tipos de projetos diferentes, que vão desde aplicações em controle de motores, para melhor desempenho no que se diz torque, rotação ou ciclos de trabalho, indo até áreas de aplicações militares, como rastreio de alvos ou controle de veículos blindados, possibilitando melhor desempenho desses tipos de carros de combate. Para um melhor entendimento dos sistemas de controle por meio de variáveis de estado, o presente relatório vem por meio de uma visão analítica e pratica, apresentar sua utilização aplicado ao controle de um motor de corrente continua, na qual por meio do software computacional, Matlab, será possível entender as perspectivas de equacionamentos matemáticos e matriciais, juntamente com sua extensão o simulink, a qual poderá proporcionar uma melhor perspectiva de como o sistema se comporta, visto que a extensão apresentará as formas de onda e dados necessários, as quais podemos citar; Matriz de controlabilidade do sistema, resposta impulsiva e entrada degrau do sistema de malha aberta, os ganhos 𝐾1𝑒 𝐾2 para alocar os polos do sistema regulando em -10 e -12, a resposta do sistema regulado a partir das condições iniciais [1000 0] (todos os estados), a resposta do sistema regulado para uma entrada degrau de valor 105 rad/s (aprox. 1000 rpm), ganhos 𝐾1, 𝐾2 𝑒 ℎ para alocação de polos do sistema de rastreio em −15, −17 e −20, resposta do sistema de rastreio de referência para uma entrada degrau de valor 105 rad/s (aprox. 1000 rpm), resposta do sistema de rastreio de referência para uma entrada arbitrária definida pelo grupo. Também, será possível entender como e quando e como é possível aplicar esse tipo de técnica de controle, podendo verificar e comparar por preceitos técnicos diversos tipos de técnicas de controle e verificar se a utilização de espaço de estados seria uma melhor alternativa dos que as demais técnicas. . 2 MATERIAIS E MÉTODOS O presente capítulo possui o intuito de realizar a apresentação, dados, equacionamentos e análises referentes a proposta do relatório realizado, assim como o estudo acima da regulação e rastreio de um sistema de um motor de corrente contínua modelado em espaço de estados. 2.1 Motor de corrente contínua A modelagem matemática de determinado sistema dinâmico parte do pressuposto de que há a possibilidade de representar através de um conjunto de equações as características dinâmicas do sistema. Ademais, para cada sistema existente há a possibilidade de determinar o seu devido modelo matemático, sobre a perspectiva que o observador deseja analisar e modelar. Conforme Dorf e Bishop (2018, p. 52) o motor CC realiza a conversão da energia elétrica para a energia mecânica rotacional, de forma que o torque presente no rotor do motor estará disponível para a utilização em determinada carga a qual se deseja utilizar. Ainda apresentam a importância da utilização dos motores CC em inúmeras aplicações pelo fato das suas características principais, como torque elevado, controle da velocidade e facilidade de implementação em vários métodos de controle. Segue abaixo a representação elétrica e estrutural de um motor CC: Figura 1 – Diagrama elétrico e esboço estrutural de um motor CC Fonte: Dorf e Bishop (2018, p. 53) Percebe-se através da Figura 1 que ao aplicar uma tensão de entrada Vc ao enrolamento do estator atuando no controle da intensidade do campo magnético gerado pelo estator, a qual induz o movimento do rotor. Realizando a análise utilizando a tensão Vc(t) como a entrada e a posição do rotor θ(t) como a saída a serem consideradas para a função transferência, tem-se que ao aplicar a tensão de entrada uma corrente ic(t) é gerada e começa a circular pelo encolamento de campo. Como o fluxo de campo no entreferro ϕ(t) é proporcional a esta corrente de campo, podemos equacionar da seguinte maneira: ϕ(t) = Kc ∙ ic(t) (1) Quando há uma corrente de armadura ia(t) circulando nos enrolamentos do rotor há a interação entre ela e o campo magnético gerado no estator, e com isso há o aparecimento do torque, proporcional ao fluxo e a corrente de armadura, sendo expresso por: 𝑇𝑚(t) = K1 ∙ ϕ(t) ∙ ia(t) = K1 ∙ Kf ∙ if(t) ∙ ia(t) (2) Logo, segue abaixo a conversão da Equação 2 para o domínio da frequência considerando o motor controlado pela corrente de campo: 𝑇𝑚(s) = (K1 ∙ Kf ∙ Ia) ∙ If(s) = Km ∙ If(s) (3) Onde Ia é a corrente de armadura constante e Km é a constante referente aos aspectos construtivos do motor. Como o torque do motor é composto pelo torque da carga Tc somado ao torque de perturbação Tp ao qual é frequentemente desprezível, ou seja, Tp é nulo, pode-se equacionar o torque do motor da seguinte maneira: 𝑇𝑚(s) = 𝑇𝑐(s) + 𝑇𝑝(s) = 𝑇𝑐(s) (4) Como o torque do motor é referente apenas ao torque da carga a equação 3 pode ser alterada da seguinte maneira: 𝑇𝑚(s) = 𝑇𝑐(s) = Km ∙ Ic(s) (5) Sendo o torque da carga expresso por: 𝑇𝑐(s) = J ∙ 𝑠 2 ∙ 𝜃(𝑠) + 𝑏 ∙ 𝑠 ∙ 𝜃(𝑠) (6) Equacionandoa relação entre a corrente de campo com a tensão de campo, a qual foi a entrada escolhida para o sistema, há no domínio da frequência o seguinte resultado: 𝑉𝑐(s) = (Rc + Lcs) ∙ Ic(s) (7) Isolando a corrente de campo na equação 5: 𝐼𝑐(s) = Vc(s) (Rc+Lcs) (8) Igualando as equações 5 e 6, referentes as duas expressões encontradas para o torque da carga, e substituindo a expressão da corrente de campo deduzida na equação 8 há a seguinte igualdade: J ∙ 𝑠2 ∙ 𝜃(𝑠) + 𝑏 ∙ 𝑠 ∙ 𝜃(𝑠) = Km Vc(s) (Rc+Lcs) (9) Como as variáveis de interesse são a tensão Vc(s) como entrada e a posição 𝜃(𝑠) como saída, isolando ambas e arranjando os termos há a possibilidade de encontrar a função transferência do sistema em malha aberta. 𝐹. 𝑇. 𝑀. 𝐴. = 𝜃(𝑠) Vc(s) = Km s∙(Rc+Lcs)∙(J∙s+𝑏) (10) Gerando assim o seguinte diagrama de blocos em malha aberta: Figura 2 – Diagrama de blocos em malha aberta Fonte: Dorf e Bishop (2018, p. 54) Nota-se a presença de um bloco integrador (1/s) a qual multiplica a função transferência em malha aberta, sabemos da física que a velocidade de dada massa pode ser encontrada através da derivada da posição, de forma análoga que para encontrar a posição integra-se a velocidade. Portanto, analisando o bloco integrador da Figura 2 nota-se que ao retirá- lo a saída deixa de ser a posição θ(s) e se torna a velocidade ω(s), a qual é um parâmetro de melhor análise, pois o seu valor é estabilizado em determinado tempo, enquanto para a posição os valores tendem ao infinito. Com isso, o diagrama de blocos com a saída sendo a velocidade fica da seguinte maneira: Figura 3 – Diagrama de blocos em malha aberta com velocidade na saída Fonte: Adaptado de Dorf e Bishop (2018) Gerando assim a seguinte função de transferência em malha aberta: 𝐹. 𝑇. 𝑀. 𝐴 = 𝜔(𝑠) Vc(s) = Km (Rc+Lcs)∙(J∙s+𝑏) (11) Logo, com a análise realizada em cima da função de transferência em malha aberta, pode-se equacionar em malha fechada utilizando a força contra eletromotriz na realimentação do sistema. Tratando de um motor CC controlado pela armadura, a variável de controle é a corrente de armadura ia, uma vez que, quando ela é constante o torque do rotor pode ser representado pela seguinte expressão: 𝑇𝑚(s) = (K1 ∙ Kc ∙ Ic) ∙ Ia(s) = Km ∙ Ia(s) (12) De forma que a tensão de armadura Va pode ser obtida pelo seguinte equacionamento: 𝑉𝑎(s) = (Ra + Las) ∙ Ia(s) + 𝑉𝑐𝑒(s) (13) Onde Vce(s) é a tensão que relaciona a força contra eletromotriz de maneira proporcional à velocidade do motor, ou seja, obedecendo a seguinte proporcionalidade: 𝑉𝑐𝑒(s) = 𝐾𝑐𝑒 ∙ ω(s) (14) Isolando a corrente de armadura da equação 13 com a equação 14: Ia(s) = 𝑉𝑎(s)−𝐾𝑐𝑒∙ω(s) Ra+Las (15) De forma análoga ao desenvolvimento em malha fechada, o torque de perturbação Tc é nulo, desta forma o torque do motor e da carga sendo expresso como equivalentes. 𝑇𝑚(s) = 𝑇𝑐(s) = J ∙ 𝑠 2 ∙ 𝜃(𝑠) + 𝑏 ∙ 𝑠 ∙ 𝜃(𝑠) (16) Igualando as equações 12 e 16 e assumindo ω(s)=sθ(s) obtém-se a seguinte relação: J ∙ 𝑠2 ∙ 𝜃(𝑠) + 𝑏 ∙ 𝑠 ∙ 𝜃(𝑠) = Km Va(s)−𝐾𝑐𝑒∙θ(s)∙s (Ra+Las) (17) Como as variáveis de interesse são a tensão Va(s) como entrada e a posição 𝜃(𝑠) como saída, isolando ambas e arranjando os termos há a possibilidade de encontrar a função transferência do sistema em malha fechada. 𝐹. 𝑇. 𝑀. 𝐹. = 𝜃(𝑠) Va(s) = Km s∙[(Rc+Lcs)∙(J∙s+𝑏)+(𝐾𝑚∙𝐾𝑐𝑒)] (18) De forma análoga a realizada na função de transferência de malha aberta, para encontrar a de malha fechada para que saída seja a velocidade ω(s) é necessário tirar o bloco integrador do sistema (1/s), pois a integral da velocidade é a posição, obtendo assim o seguinte diagrama de blocos: Figura 4 – Diagrama de blocos em malha fechada com velocidade na saída Fonte: Adaptado de Dorf e Bishop (2018) Gerando assim a seguinte função de transferência em malha fechada: 𝐹. 𝑇. 𝑀. 𝐹. = 𝜔(𝑠) Vc(s) = Km (Rc+Lcs)∙(J∙s+𝑏)+(𝐾𝑚∙𝐾𝑐𝑒) (19) A modelagem matemática de determinado sistema dinâmico parte do pressuposto de que há a possibilidade de representar através de um conjunto de equações as características dinâmicas do sistema. Ademais, para cada sistema existente há a possibilidade de determinar o seu devido modelo matemático, sobre a perspectiva que o observador deseja analisar e modelar. Sobre esse contexto, segue abaixo o esquema de um motor de corrente contínua: Dando continuidade, os parâmetros físicos utilizados no presente trabalho podem ser constatados através da Quadro 1. Quadro 1 – Parâmetros propostos pela atividade Fonte: Elaborado pelos autores Para adequar os equacionamentos desenvolvidos anteriormente para o modelo de espaço de estados, pode ser escolhido como variáveis de estado a velocidade de rotação e a corrente elétrica, sendo também para entrada, que até o momento era a tensão, sendo substituída por um degrau, ademais foram substituídas as nomenclaturas das variáveis para as que foram propostas pelo trabalho, seguindo o Quadro 1. Segue abaixo o modelo de espaço de estados: �̇�(𝑡) = 𝐴 [ − 𝑏 𝐽 𝐾𝑡 𝐽 − 𝐾𝑔 𝐿𝑎 − 𝑅𝑎 𝐿𝑎 ] [ 𝜔(𝑡) 𝑖𝑎(𝑡)_ ] + [ 0 1 𝐿𝑎 ] 𝑢(𝑡) (20) Realizando a análise do espaço de estados através da Equação 20, obteve-se o seguinte script: Figura 5 – Script de espaço de estados do motor CC Fonte: Elaborado pelos autores Uma vez que, seu desenvolvimento gerou os seguintes resultados para as matrizes pertencentes ao espaço de estados: Figura 6 – Resultado das matrizes de espaço de estados desenvolvido Fonte: Elaborado pelos autores 2.2 Matriz de controlabilidade do sistema Para verificar se o sistema é controlável ou não, foi modelada a matriz de controlabilidade (matriz Control) através do Matlab. Sendo que 𝐶𝑜𝑛𝑡𝑟𝑜𝑙 = [B A ∗ B], assim foi obtido os valores: C𝑜𝑛𝑡𝑟𝑜𝑙 = [ 0 2 2 −4 ] (20) Para o sistema ser controlável o determinante da matriz citada acima teria que ser diferente de zero ou, utilizando o comando rank do Matlab (Figura 7), teria que dar o valor da ordem da matriz Control. Figura 7: Comandos para verificar controlabilidade Fonte: Autoria própria Nesse caso o determinante foi diferente de zero e o comando rank retornou o valor 2, que representa a ordem da matriz, ou seja, o sistema é controlável e pode dar continuidade a modelagem do compensador (Figura 8). Figura 8: Valores obtidos para a matriz Control Fonte: Autoria própria 2.3 Resposta impulsiva e ao degrau do sistema A análise da resposta do sistema foi realizada de duas maneiras, primeiramente para a entrada degrau em relação a função transferência de malha aberta e fechada, e em seguida para a entrada impulsiva. Segue abaixo o roteiro implementado no MATLAB: Figura 9: Script resposta ao degrau e ao impulso clc clear all close all %-------------------------------------------------------------------------% % DADOS INICIAIS % %-------------------------------------------------------------------------% Ra=1; % Resistência de armadura [Ohm] La=0.5; % Indutância da armadura [H] Kt=0.01; % Constante de torque [N.m/A] Kg=0.01; % Constante de FCE [V/rad/s] b=0.1; % Coeficiente de atrito viscoso [N.m.s] J=0.01; % Momento de inércia do motor [kg.m^2] %-------------------------------------------------------------------------% % FUNÇÃO DE TRANSFERÊNCIA % %-------------------------------------------------------------------------%t=[0:0.05:30]; num1=[1]; den1=[J b]; sys1=tf(num1,den1); num2=[Kt]; den2=[1]; sys2=tf(num2,den2); num3=[1]; den3=[La Ra]; sys3=tf(num3,den3); %Malha aberta sysa=series(sys1,sys2); sys_ma=series(sysa,sys3) %Malha fechada sys_mf=feedback(sys_ma,Kg) %-------------------------------------------------------------------------% % RESPOSTA AO DEGRAU % %-------------------------------------------------------------------------% figure (1) subplot(2,2,[1,2]); [y,t]=step(sys_ma,t) plot(t,y,'r','LineWidth',2), grid title('Resposta ao degrau - Malha aberta') xlabel('Tempo [s]') ylabel('Tensão [v]') subplot(2,2,[3,4]); [y1,t1]=step(sys_mf,t) plot(t1,y1,'b','LineWidth',2), grid title('Resposta ao degrau - Malha fechada') xlabel('Tempo [s]') ylabel('Tensão [v]') %-------------------------------------------------------------------------% % RESPOSTA AO IMPULSO % %-------------------------------------------------------------------------% figure (2) subplot(2,2,[1,2]); [y2,t2]=impulse(sys_ma,t) plot(t2,y2,'r','LineWidth',2), grid title('Resposta ao impulso - Malha aberta') xlabel('Tempo [s]') ylabel('Tensão [v]') subplot(2,2,[3,4]); [y3,t3]=impulse(sys_mf,t) plot(t3,y3,'b','LineWidth',2), grid title('Resposta ao impulso - Malha fechada') xlabel('Tempo [s]') ylabel('Tensão [v]') Fonte: Autoria própria Levando em consideração a função de transferência em malha aberta apresentada pela Equação 11, foram obtidas as seguintes simulações: Figura 10: Resposta ao degrau Fonte: Autoria própria Em seguida, conforme a função de transferência em malha fechada apresentada pela Equação 18, foram obtidas as seguintes simulações: Figura 11: Resposta impulsiva Fonte: Autoria própria 2.4 Regulação do sistema Um sistema regulador de estados pode ser entendido como o desenvolvimento de uma malha fechada na qual as referências para as saídas são todas iguais a zero, ou seja, a entrada do sistema fica sujeita o seu cálculo em função dos estados do sistema multiplicados por uma matriz de ganhos constantes, ressaltando que, a realimentação dos estados é negativa. De modo geral o regulador de estados possui a finalidade de manter o sistema em uma determinada condição de regime permanente, ou seja, manter os estados em uma dada condição estacionária. Desta forma foi desenvolvido o seguindo script através do MATLAB: Figura 12: Script do sistema regulado Fonte: Autoria própria Primeiramente, realizando uma análise prévia da matriz A do espaço de estados apresentado anteriormente, buscando através dos autovalores da mesma, foi encontrado que para a alocação de polos em -9.9975 e -2.0025 o sistema é estável. Por conseguinte, foi realizado o cálculo dos ganhos do regulador de estados através da função “kreg”, na qual foi inserido o lugar dos polos a serem inseridos, propostos pelo roteiro da atividade, em -10 e -12. Desta maneira, foram obtidos os seguintes valores dos ganhos do sistema regulador: Figura 13: Resultados do kreg para os polos em -10 e -12 Fonte: Autoria própria Dando prosseguimento, no SIMULINK foi desenvolvido o diagrama de blocos, inserindo a referência nula de entrada, os valores dos ganhos da realimentação de estados negativa e do diagrama de blocos do espaço de estados, aos quais foram inseridos os valores das matrizes e vetores pertencentes a formulação do sistema; Figura 14: Diagrama de blocos do sistema regulado Fonte: Autoria própria De forma a atender a proposta, foi colocado condições iniciais diretamente no bloco do espaço de estados, ou seja, colocando o sistema em uma posição inicial de [1000 0] para realizar a simulação do sistema regulador. Os parâmetros dos blocos podem ser visualizados a seguir: Figura 15: Parâmetros do espaço de estados Fonte: Autoria própria Por fim, foi implementado o diagrama de blocos do sistema regulado, porém com uma entrada degrau. Figura 16: Diagrama de blocos do sistema regulado com entrada degrau Fonte: Autoria própria 2.5 Rastreio do sistema O artificio da realização do rastreamento de determinado sistema de controle pode ser entendido como o ato de um processo a rastrear o sinal de referência dado como entrada. Quando se trata do acionamento de um motor C.C., a qual é submetido a um sinal referencial de entrada, é possível fazer com que a sua saída (velocidade angular) siga a referência de modo perfeito em regime permanente. Este processo é muito usual, pois uma vez projetado o sistema de rastreamento é possível utilizá-lo para quaisquer sinais de entrada a ser considerada como referência. Primeiramente, dado o modelo de espaço de estados de um motor C.C. apresentado anteriormente, foi desenvolvido o seguinte script através do MATLAB: Figura 17: Script resposta ao degrau e ao impulso %-------------------------------------------------------------------------% % RASTREIO % %-------------------------------------------------------------------------% k1ras=sym('k1ras'); k2ras=sym('k2ras'); h=sym('h'); kras=[k1ras k2ras]; Aras=[A-B*kras B*h; -C 0] % Para alocar os polos deve se buscar os autovalores da mariz Aras autoval=eig(Aras) %Autovalores da matriz Aras autoval=[autoval(1)==-15;autoval(2)==-17;autoval(3)==-20] % Alocação de polos do sistema de rastreio em −15, −17 e −20; Kras=solve(autoval(1),autoval(2),autoval(3)) Kras.h % Primeiro valor é o ganho que procura, o segundo é resíduo --> 32 Kras.k1ras %--> 23749/100 Kras.k2ras %--> 20 % k1 --> 23749/100 % k2 --> 20 % h --> 2550 Kras=[Kras.k1ras(1) Kras.k2ras(1) Kras.h(1)] Fonte: Autoria própria Desta forma, primeiramente foi utilizado a biblioteca “sym” para conseguir atribuir valores aos ganhos K1, K2 e h para a alocação de polos do sistema de rastreio. Em seguida foi desenvolvido o vetor “kras” a fim de se armazenar os valores dos ganhos, e a matriz “Aras” de forma a representar a matriz do espaço de estados, porém para os valores a serem atribuídos da posição dos polos. Logo, para alocar os polos deve-se encontrar os autovalores da matriz “Aras”, e em seguida atribuir os valores da alocação dos polos do sistema para o conjunto [-15; -17; -20]. Através deste desenvolvimento é realizado a resolução do sistema criado para os valores pré estabelecidos, podendo assim encontrar os valores dos ganhos K1, K2 e h necessários para o sistema, nos quais respectivamente possuem o valor de 247.49, 20 e 2550. Com esses valores encontrados é possível realizar a simulação através do SIMULINK, substituindo os ganhos nos blocos necessários para a aplicação. Segue abaixo os modelos desenvolvidos: Figura 18: Simulação do sistema de rastreio para diversos tipos de entrada Fonte: Autoria própria 3 RESULTADOS E DISCUSSÕES O presente capítulo possui o intuito de realizar a apresentação, dados, simulações e análises referentes a proposta do relatório realizado, de forma a enfatizar a utilização da alocação dos polos para um sistema regulado e um sistema de rastreio. 3.1 Regulação do sistema Conforme os conceitos inerentes a regulação do sistema apresentados anteriormente, assim como a utilização do script no MATLAB, juntamente a construção do diagrama de blocos no simulink foi possível realizar as simulações requeridas pela proposta da atividade. Primeiramente, foi realizado a simulação do sistema regulado, de forma que, mesmo sem haver uma entrada definida para o sistema, ao inicia-lo é possível verificar que a saída alcança o valor do setpoint pré-estabelecido, e depois começa a diminuir em regime permanente até voltar ao estado original. Segue abaixo a simulação: Figura19: Simulação sistema regulado Fonte: Autoria própria Com a simulação é possível verificar que, para um sistema mesmo sem uma entrada em sua composição, é possível realizar a sua simulação apenas com sua realimentação e suas condições iniciais, das quais foram apresentadas anteriormente. De forma análoga, porém inserindo um degrau no sistema para fins de visualização do comportamento so saída, foi obtida a seguinte simulação: Figura 20: Simulação sistema regulado com um degrau Fonte: Autoria própria 3.2 Rastreio do sistema A utilização da alocação de polos do sistema de rastreio é muito usual quando deseja-se aproximar a saída tendo em vista o sinal de entrada, independentemente de seu valor ou formato. Desta forma, a presente seção busca apresentar os resultados obtidos através das simulações realizadas no SIMULINK para três sinais diferentes de referência, sendo um degrau, um senoide e uma combinação entre um sinal dente de serra e uma senoide. 3.2.1 Degrau Para primeira simulação buscou-se realizar o rastreio acima de um sinal de referência simples, como o degrau unitário, a qual possui grande importância quando há a necessidade do estudo acima de sinal e sistemas lineares, além de análises de circuitos elétricos Basicamente, o degrau possui valor nulo para valores menores que zero, e unitário para maiores que zero. Na presente simulação o degrau é deslocado uma casa para a direita, para melhorar a visualização, e com amplitude de 1000. Desta forma, segue abaixo o diagrama de blocos realizado: Figura 21: Diagrama de blocos do rastreio com entrada degrau Fonte: Autoria própria Para o diagrama de blocos realizado, com o degrau utilizado como o sinal de rastreio, foi obtido a seguinte simulação: Figura 22: Rastreio devido a entrada degrau como referência Fonte: Autoria própria Percebe-se que, em regime permanente o sinal de saída possuirá erro de regime permanente nulo, devido a parcela integrativa do diagrama, e com isso com os demais valores encontrados é possível realizar o rastreio do degrau. Outro ponto relevante é a presença de uma pequena oscilação, ocasionando um máximo sobressinal, que em pouco tempo é suprimido e a saída do sistema entra em regime. 3.2.2 Senoide Dando prosseguimento, a segunda simulação buscou-se realizar o rastreio acima de uma senoide como sinal de referência, a qual representa o gráfico do seno de um ângulo traçada em função do ângulo, gerando assim o comportamento oscilatório, que em correntes alternadas representa matematicamente sinais em função do tempo. Para a simulação foi utilizada uma senoide de amplitude 1000 com frequência de 2 rad/s. Portanto, segue abaixo o diagrama de blocos desenvolvido: Figura 23: Diagrama de blocos do rastreio com entrada senoidal Fonte: Autoria própria Em seguida, segue abaixo a saída do sistema em comparação com a senoide de referência: Figura 24: Rastreio devido a entrada senoidal como referência Fonte: Autoria própria Percebe-se que ao realizar o rastreio há um aumento na amplitude da saída em relação ao sinal de entrada, juntamente a um atraso em sua resposta, provindo do compensador por atraso de fase, que por sua vez reduz o ganho em altas frequências, atenuando os ruídos no sistema, porém acaba tornando a resposta mais lenta, e em baixas frequências causa o aumento do ganho, levando maior precisão em estado estacionário. 3.2.3 Combinação senoide com dente de serra Para fins de validação do rastreio aplicado, foi realizado uma combinação entre uma senoide e uma onda dente de serra, através de um bloco somador, a qual realizou a composição das duas para servirem como a entrada do sistema. Figura 25: Diagrama de blocos do rastreio com entrada arbitrária Fonte: Autoria própria Desta forma, pôde perceber que houve o rastreio da onda, podendo visualizar uma pequena variação na defasagem da mesma, além da presença de umas oscilações no pico máximo da onda. Logo, segue abaixo a simulação: Figura 26: Rastreio devido a entrada arbitrária como referência Fonte: Autoria própria 4 CONSIDERAÇÕES FINAIS O presente trabalho possuiu o intuito de utilizar algumas ferramentas com o uso da modelagem de sistemas de controle por espaço de estados, de forma a apresentar alguns artifícios e metodologias aplicadas atualmente para se realizar a regulação e o rastreio de sistemas. Com o regulador foi possível verificar em como, mesmo sem uma dada entrada para o sistema, há a possibilidade de manter o sistema em uma data condição em regime permanente, devido as condições iniciais inseridas no bloco de espaço de estados. Desta forma, através das simulações pôde-se observar o comportamento do sistema quando submetido a esta ferramenta. Por conseguinte, ao utilizar o rastreio do sistema é possível visualizar a saída do sistema rastreando a entrada, ressaltando que, a modelagem e os valores dos ganhos obtidos através do MATLAB são essenciais para a simulação. Ademais, é notório que, independentemente da entrada, seu formato e amplitude, para os valores de ganhos calculado juntamente a estrutura projetada, a saída rastreará a entrada, obtendo apenas uma defasagem e em alguns momentos algumas oscilações em picos da entrada de referência. Por fim, a presente atividade foi imprescindível para o entendimento acima de ferramentas usuais do cotidiano de sistemas de controle moderno, principalmente quando se trabalha com modelagem de espaços de estados, possibilitando alocar os polos para melhorar o desempenho do sistema no lugar de melhor rendimento. REFERÊNCIAS OGATA, Katsuhiko et al. Modern control engineering. Upper Saddle River, NJ: Prentice hall, 2010. DORF, R. C.; BISHOP, R. H. Sistemas de Controle Moderno; 8ª. Ed, LTC, Rio de Janeiro, 2001. ANEXO A: Script completo da atividade desenvolvida Figura 27: Script resposta ao degrau e ao impulso clc clear all close all %-------------------------------------------------------------------------% % DADOS INICIAIS % %-------------------------------------------------------------------------% Ra=1; % Resistência de armadura [Ohm] La=0.5; % Indutância da armadura [H] Kt=0.01; % Constante de torque [N.m/A] Kg=0.01; % Constante de FCE [V/rad/s] b=0.1; % Coeficiente de atrito viscoso [N.m.s] J=0.01; % Momento de inércia do motor [kg.m^2] %-------------------------------------------------------------------------% % FUNÇÃO DE TRANSFERÊNCIA % %-------------------------------------------------------------------------% t=[0:0.05:30]; num1=[1]; den1=[J b]; sys1=tf(num1,den1); num2=[Kt]; den2=[1]; sys2=tf(num2,den2); num3=[1]; den3=[La Ra]; sys3=tf(num3,den3); %Malha aberta sysa=series(sys1,sys2); sys_ma=series(sysa,sys3) %Malha fechada sys_mf=feedback(sys_ma,Kg) %-------------------------------------------------------------------------% % RESPOSTA AO DEGRAU % %-------------------------------------------------------------------------% figure (1) subplot(2,2,[1,2]); [y,t]=step(sys_ma,t) plot(t,y,'r','LineWidth',2), grid title('Resposta ao degrau - Malha aberta') xlabel('Tempo [s]') ylabel('Saída') subplot(2,2,[3,4]); [y1,t1]=step(sys_mf,t) plot(t1,y1,'b','LineWidth',2), grid title('Resposta ao degrau - Malha fechada') xlabel('Tempo [s]') ylabel('Saída') %-------------------------------------------------------------------------%% RESPOSTA AO IMPULSO % %-------------------------------------------------------------------------% figure (2) subplot(2,2,[1,2]); [y2,t2]=impulse(sys_ma,t) plot(t2,y2,'r','LineWidth',2), grid title('Resposta ao impulso - Malha aberta') xlabel('Tempo [s]') ylabel('Saída') subplot(2,2,[3,4]); [y3,t3]=impulse(sys_mf,t) plot(t3,y3,'b','LineWidth',2), grid title('Resposta ao impulso - Malha fechada') xlabel('Tempo [s]') ylabel('Saída') %-------------------------------------------------------------------------% % ESPAÇO DE ESTADOS % %-------------------------------------------------------------------------% A=[-b/J Kt/J; -Kg/La -Ra/La]; B=[0; 1/La]; C=[1 0]; %Deseja-se controlar a primeira variáveis de estado (velocidade w) D=0; sys1=ss(A,B,C,D); % Matriz espaço de estados %-------------------------------------------------------------------------% % REGULAÇÃO % %-------------------------------------------------------------------------% eig(A) %Autovalores da matriz A -> Para -9.9975 e -2.0025 sistema é estável Cont=[B A*B]; %Matriz de controlabilidade Cmp=[B AB A'B ...]=[B AB] dt=det(Cont); %Determinante da matriz controlabilidade kreg=place(A,B,[-10 -12]) %Ganhos de realimentação colocando os polos em %-10 e -12 para melhorar o desempenho --> x1 = -0.01 e x'1 = 5 %-------------------------------------------------------------------------% % RASTREIO % %-------------------------------------------------------------------------% k1ras=sym('k1ras'); k2ras=sym('k2ras'); h=sym('h'); kras=[k1ras k2ras]; Aras=[A-B*kras B*h; -C 0] % Para alocar os polos deve se buscar os autovalores da mariz Aras autoval=eig(Aras) %Autovalores da matriz Aras autoval=[autoval(1)==-15;autoval(2)==-17;autoval(3)==-20] % Alocação de polos do sistema de rastreio em −15, −17 e −20; Kras=solve(autoval(1),autoval(2),autoval(3)) Kras.h % Primeiro valor é o ganho que procura, o segundo é resíduo --> 32 Kras.k1ras %--> 23749/100 Kras.k2ras %--> 20 % k1 --> 23749/100 % k2 --> 20 % h --> 2550 Kras=[Kras.k1ras(1) Kras.k2ras(1) Kras.h(1)] Fonte: Autoria própria
Compartilhar