Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Controle 1 Aula 11: Análise da resposta transitória usando MATLAB. Pedro M. G. del Foyo Sumário ● Uso de programas computacionais para análise da resposta transitória. ● Determinar os parâmetros da resposta temporal para sinais de entrada tipo impulso, degrau, rampa e parábola. ● Determinar a resposta transitória apenas considerando condições iniciais. ● Sistemas representados como função de transferência ou no espaço de estados. Representação do sistemas em MATLAB ● Método de entrada para sistemas representados pelas funções de transferências. F(s)= B(s) = b0sm + b1sm-1 + … + bm A(s) sn + a1sn-1 + … + an ● num = [b0 b1 b2 … bm] ● den = [1 a1 a2 … an] Representação do sistemas em MATLAB ● Método de entrada para sistemas representados no espaço de estados ẋ(t) = Ax(t) + Bu(t) y(t) = Cx(t) + Du(t) ● A = [a11 a12 a13; a21 a22 a23; a31 a32 a33] ● B = [b11 b12; b21 b22; b31 b32] ● C = [c11 c12 c13] ● D = [d11; d12] Obtenção da resposta à impulso ● O MATLAB possui um comando impulse(num,den) ou impulse(A,B,C,D) ● Pode explicitar uma base temporal t = 0:0.1:10 valor inicial incremento valor final ● Pode-se colocar o tempo de forma explicita impulse(num,den,t) ou impulse(A,B,C,D,t) Obtenção da resposta à impulso ● A resposta pode ser graficada diretamente ou guardada numa matriz para mostra-la depois de forma combinada ou fazer operações sobre os resultados gerados. [y,x,t] = impulse(num,den,t) [y,x,t] = impulse(A,B,C,D,iu,t) ● iu é un escalar que define qual entrada será usada para gerar a resposta. ● Se os resultados são guardados então a gráfica não é gerada automaticamente Mostrando os resultados ● O MATLAB possui um comando que permite mostrar graficos a partir de dados em formato de matrices filas. plot(t,y,'o') para uma única curva plot(t,y1,'.',t,y2,'-', … ,t,yn,'o') para várias curvas ● O comando grid produce uma grade no gráfico. ● O comando title('titulo') permite colocar um titulo à gráfica gerada. Exemplo 1 ● Obtenha a resposta a um impulso unitário do sistema seguinte: ẋ1 0 1 x1 0 = + u ẋ2 -1 -1 x2 1 y = [1 0] x1 + [0] u x2 Exemplo 1: solução ● Programa MATLAB A = [0 1; -1 -1]; B = [0; 1]; C = [1 0]; D = [0]; impulse(A,B,C,D); grid; title('Resposta a impulso unitário ') Exemplo 1: solução Exemplo 2 ● Obtenha a resposta a impulso do seguinte sistema G(s) = 1 s2 + 0.2s + 1 Exemplo 2: solução ● Programa MATLAB num = [0 0 1]; den = [1 0.2 1]; impulse(num,den); grid; title('Resposta a impulso unitário ') Exemplo 2: solução Obtenção da resposta à degrau ● Para gerar a resposta à degrau unitário usar o comando: step(num,den) ou step(A,B,C,D,iu) ● Para guardar os resultados em matrices: [y,x,t]=step(num,den) ou [y,x,t]= step(A,B,C,D,iu) saída variáveis de estado tempo Exemplo 3 ● Obter a resposta temporal a um degrau unitário da seguinte função de transferência em malha aberta. G(s)= 25 s(s+4) ● Primeiro determinar a função de transferência em malha fechada supondo realimentação unitária G(s) = 25 1 + G(s) s2 + 4s + 25 Exemplo 3: solução ● Programa MATLAB num = [25]; den = [1 4 25]; t=0:0.1:4; [y,x,t]=step(num,den,t); plot(t,y,'-'); grid Exemplo 3: solução Exemplo 4 ● Obtenha as curvas para resposta á degrau unitário para o seguinte sistema: ẋ1 -1 -1 x1 1 1 u1 = + ẋ2 6.5 0 x2 1 0 u2 y1 = 1 0 x1 0 0 u1 + y2 = 0 1 x2 0 0 u2 Exemplo 4: solução ● Programa MATLAB A = [-1 -1; 6.5 0]; B = [1 1;1 0]; C = [1 0; 0 1]; D = [0 0; 0 0]; step(A,B,C,D,1); grid; title('Resposta a degrau unitário na entrada u1 '); step(A,B,C,D,2); grid; title('Resposta a degrau unitário na entrada u2 '); Exemplo 4: solução Obtenção da resposta á rampa ● Não existe comando no MATLAB para obter a resposta a rampa. ● Para isto pode ser usado o comando step usado para obter resposta à degrau unitário. ● Para usar o comando step nas respostas à rampa é preciso modificar a função de transferência em malha fechada de forma a considerar a entrada rampa. Obtenção da resposta á rampa ● Dado o seguinte sistema em malha fechada: C(s) = 1 e dado R(s) = 1 R(s) s2 + s + 1 s2 ● Obter a resposta transitória usando a resposta à degrau C(s) = 1 1 = 1 1 s2 + s + 1 s2 s(s2 + s + 1) s ● Usar a FT modificada no comando step(num,den) no MATLAB Obtenção da resposta á rampa ● Programa MATLAB num1 =[1]; den1 = [1 1 1 0]; t = 0:0.1:4; [y1,x,t]=step(num1,den1,t); plot(t,y1,'-',t,t,'*'); grid Obtenção da resposta á rampa Resposta á rampa num sistema representado no espaço de estados ● Considere o seguinte sistema representado no espaço de estados: ẋ1 0 1 x1 0 = + u ẋ2 -1 -1 x2 1 y = [1 0] x1 + [0] u x2 Resposta á rampa num sistema representado no espaço de estados ● A resposta à rampa unitária é a integral da resposta à degrau unitário com condições iniciais nulas portanto: ● Sendo assim temos que: ● Definindo temos Resposta á rampa num sistema representado no espaço de estados ● Combinando as equações anteriores obtemos a seguinte representação no espaço de estados: Resposta á rampa num sistema representado no espaço de estados ● Modificamos as matrices do sistema A, B, C e D de forma a obter z que é a integral de ż que por sua vez é x 3 : A saída agora passa a ser x 3 Resposta á rampa num sistema representado no espaço de estados ● Programa MATLAB AA = [0 1 0; -1 -1 0; 1 0 0]; BB = [0; 1; 0]; CC = [0 0 1]; DD = [0]; t = 0:0.1:10; [z,x,t] = step(AA,BB,CC,DD,1,t); x3 = CC*x'; plot(t,x3,'o',t,t,'-'); grid; title('Resposta a rampa unitária'); Resposta á rampa num sistema representado no espaço de estados Resposta a condições iniciais ● As veces é necessário obter a resposta transitória de sistemas onde ele responde a determinadas condições iniciaispois não existe uma função de exitação externa. ● Exemplos destes casos são os péndulos ou sistemas massa mola amortecedor onde o sistema é tirado do ponto de equilibrio e logo deixado sem entrada até o mesmo voltar ao ponto de equilibrio. Resposta a condições iniciais ● Equação do sistema: ● Antitransformando: ● Arranjando a equação: ● Sustituindo os valores dados Resposta a condições iniciais ● Usar o comando impulse pois não precisária alterar a função de transferência. X(s) = 0.1s + 0.35 sendo U(s)= 1 U(s) s2 + 3s + 2 X(s) = 0.1s + 0.35 equação a ser s2 + 3s + 2 usada no comando impulse(num,den) Resposta a condições iniciais ● Programa MATLAB num =[0.1 0.35]; den = [1 3 2]; impulse(num,den); grid; title('Resposta transitória à cond. iniciais'); Resposta a condições iniciais Title Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35
Compartilhar