Você está na página 1de 13

MEEC Mestrado em Engenharia Electrotcnica e de Computadores

MCSDI Modelao e Controlo de Sistemas Dinmicos

Guio do trabalho laboratorial n 2

Anlise de Sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

Anlise de Sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB


Sumrio: Pretende-se com este trabalho, fazer uma introduo s capacidades de desenho de trajectrias de equaes diferenciais de segunda ordem no Plano de Fase, atravs da integrao pelo Mtodo de Runge-Kutta, recorrendo ao software MATLAB.

Considere-se como exemplo a seguinte equao diferencial de segunda ordem:

d 2 x dx + +x=0 dt dt 2
Equao 1: Exemplo de equao diferencial de um sistema de segunda ordem

O objectivo deste trabalho consiste na representao das solues de uma equao diferencial de segunda ordem no Plano de Fase. Uma equao deste tipo pode ser escrita como:

d 2x dx + f x, = 0 2 dt dt d 2x dx = f x, 2 dt dt

Equao 2: Forma alternativa da equao diferencial do sistema de segunda ordem

Fazendo:

x1 = x dx dx x2 = x2 = 1 dt dt
Equao 3: Escolha das variveis para representao no Plano de Fase

Substituindo este resultado na equao 2, fica:

dx1 = x2 dt dx 2 = f ( x1 , x 2 ) dt
Equao 4: Forma alternativa (variveis de fase) da equao diferencial para representao no Plano de Fase

Considerando agora a equao 1 (exemplo que pretendemos representar no Plano de Fase), e colocando-a na forma apresentada na equao 4, obtm-se o seguinte sistema de duas equaes diferenciais de primeira ordem:

dx1 = x2 dt dx 2 = x1 x 2 dt
Equao 5: Forma alternativa (variveis de fase) do exemplo a representar no Plano de Fase

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

1. Implementao da Equao Diferencial no MATLAB


1. O primeiro passo para a representao desta equao no Plano de Fase, passa pela sua definio no MATLAB. a) Para esse efeito inicie a aplicao MATLAB. 2. Todo o cdigo necessrio para efectuar a representao das solues de uma equao no Plano de Fase pode ser escrito directamente na janela do MATLAB. Alternativamente, pode-se introduzir todo o cdigo num ficheiro de dados do MATLAB, genericamente chamado M-File ( um ficheiro de texto normal, com extenso *.m), que depois carregado para o MATLAB sempre que necessrio. a) Esta soluo preferencial quando o cdigo se torna extenso, para evitar ter que o estar a re-escrever de novo sempre que se pretende efectuar uma nova representao. b) Para criar um novo M-File, escolha a opo "New" do menu "File" do MATLAB. c) Dentro da opo "New", escolha a subopo "M-File". d) Aparecer-lhe- numa nova janela o editor do MATLAB, com o seguinte aspecto:

Figura 1: Janela do editor de ficheiros tipo M do MATLAB

e) Comece a introduzir o cdigo que lhe vai sendo dado (poder introduzir comentrios no seu M-File, para o que dever iniciar os comentrios pelo caracter %). 3. O primeiro passo da escrita de um M-File dever passar pela definio de um cabealho que indique claramente a que se refere o ficheiro em questo. Como exemplo, apresentase o seguinte cdigo:

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB


%------------------------------------------------------------------% % M-File para traar as trajectrias no Plano de Fase % de Equacoes diferenciais de segunda ordem % Dezembro de 1999 % Manuel Silva, Tenreiro Machado % %------------------------------------------------------------------%------------------------------------------------------------------% %Definio das variveis % %------------------------------------------------------------------%x(1)=x(t) %x(2)=dx/dt %------------------------------------------------------------------% %Definio da equao diferencial a desenhar no Plano de Fase % %------------------------------------------------------------------% %Equao 1 - Pag. 22 dos apontamentos % %DDx+Dx+x=0 % => x(1)=x,x(2)=Dx,Dx(2)=DDx % Figura 2: Janela do editor de ficheiros tipo M do MATLAB

4. O primeiro M-File a implementar, servir para definir as variveis de fase da equao diferencial a representar no Plano de Fase (ver equao 5). a) Este M-File ser chamado recursivamente pela funo ode45 (que analisaremos frente), ao longo da execuo do programa de clculo das trajectrias no Plano de Fase, e servir para efectuar os vrios clculos necessrios determinao de dx1/dt e dx2/dt. b) As variveis de fase tm que ser definidas num vector coluna (no nosso caso chamado dx) em que a primeira linha corresponde definio da expresso da varivel dx1/dt e a segunda linha definio da expresso da varivel dx2/dt. c) Este M-File foi implementado com a estrutura de uma funo do MATLAB. A esta funo so passados dois vectores, o vector x e o vector t. O primeiro destes vectores contm os valores de dx1/dt e dx2/dt, e o segundo vector contm o instante de tempo no qual estes valores foram calculados. A funo retorna o vector dx que contm os valores de dx1/dt e dx2/dt calculados nessa iterao. d) de realar que o vector dx no contm os valores de dx1/dt e dx2/dt, mas sim os valores calculados em cada iterao, sendo os valores de dx1/dt e dx2/dt armazenados no vector x. e) Sempre que se torne necessrio representar no Plano de Fase uma nova equao, este o nico M-File que necessrio alterar. f) Aps terminar a introduo do cdigo grave o M-File, de forma a ser possvel voltar a carreg-lo sempre que necessrio. Para isso seleccione a opo "Save As..." do menu "File" da janela do Editor do MATLAB e guarde o seu M-file com o nome caso1.m.

g) O cdigo completo deste M-File o apresentado na figura 3, assim como no Anexo 2.

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

Figura 3: Janela do editor de ficheiros tipo M do MATLAB

5. Crie um novo M-File. a) Neste M-File vai ser implementado o cdigo para se efectuarem os clculos necessrios representao da equao 1, no Plano de Fase. 6. Depois de introduzir o cabealho do ficheiro, devero ser definidas as constantes e/ou os parmetros a serem utilizadas (ver figura 4). a) Em primeiro lugar, comea por se efectuar a limpeza da memria do MATLAB e a da janela de grficos, aps o que se define e inicializa a varivel auxiliar aux com o valor 1. b) De seguida inicializa-se a varivel dt que corresponde ao incremento temporal entre cada iterao durante o clculo dos integrais de x1 e x2 pelo mtodo de Runge-Kutta. Por sua vez o parmetro t_max corresponde ao mximo tempo durante o qual vamos analisar a evoluo das trajectrias no Plano de Fase (neste caso t_max= 6 seg). c) Aps isto define-se e inicializa-se o vector que vai conter os instantes de tempo nos quais vo ser calculados os valores dos integrais (vector_t), atravs de um ciclo for. d) Em seguida define-se o parmetro n que indica o nmero de condies iniciais das trajectrias a considerar, para a representao no Plano de Fase. e) A definio dos parmetros conclui-se com a introduo dos valores mximos que as trajectrias podem apresentar no Plano de Fase, x_max e Dx_max, correspondendo respectivamente aos valores mximos de x1 e x2.
%------------------------------------------------------------------% % M-File para traar as trajectrias no Plano de Fase % de Equacoes diferenciais de segunda ordem % Dezembro de 1999 % Manuel Silva, Tenreiro Machado %

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB


%------------------------------------------------------------------%------------------------------------------------------------------% %Definio e valores por defeito dos parmetros % %------------------------------------------------------------------%Limpeza da memria do MATLAB clear; %Limpeza da janela com o grfico close; %variavel auxiliar aux=1; %incremento temporal dt=0.01; %intervalo de tempo a considerar t0=0; t_max=6; for i=t0:dt:t_max vector_t(aux)=[i]; aux=aux+1; end aux=1; %Numero de pontos na grelha n=6; %Valores maximos da grelha x_max=1; Dx_max=1; Figura 4: Cdigo correspondente definio dos parmetros

7. Chegados a esta fase devem-se calcular os valores iniciais das trajectrias. a) Para este efeito os pontos iniciais da trajectria vo ser calculados de acordo com as equaes que se apresentam na figura 5, de forma a que fiquem igualmente distribudos na janela em que viro a ser apresentados os resultados.
%------------------------------------------------------------------% %Desenho da equao diferencial no Plano de Fase % %------------------------------------------------------------------%Inicializacao da posicao e da velocidade: Condicoes iniciais for i = 1:n, for j = 1:n, %Posicao inicial na grelha x1=(i-(n+1)/2)*x_max/n; %Velocidade inicial na grelha x2=(j-(n+1)/2)*Dx_max/n; %vector inicial x0=[x1;x2]; Figura 5: Cdigo correspondente definio das condies iniciais

8. Estamos agora em condies de iniciar a integrao das variveis de fase (ver equao 5), atravs do mctodo de Runge-Kutta. Esta integrao efectuada recorrendo ao comando ode45 do MATLAB.

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

a) Este comando aceita como entradas o nome do M-File onde se encontram definidas as equaes a integrar, o vector de instantes de tempo nos quais vo ser calculados os integrais e as condies inicias. b) sada, o comando ode45 retorna dois vectores, um com os resultados da integrao (vector x) e outro com os correspondentes instantes de tempo (vector t) em que foram determinados os valores dos integrais. c) Os resultados de x(1) e x(2) so guardados, respectivamente, na primeira e segunda colunas do vector x.
%----------------------------------------------------------------% %Integrao das equaes diferenciais pelo mtodo de Runge Kutta 4(5) % %----------------------------------------------------------------[t,x]=ode45('caso1',vector_t,x0);

Figura 6: Cdigo correspondente integrao das equaes diferenciais de primeira ordem pelo mtodo de Runge Kutta 4(5)

9. Quando o clculo de uma trajectria est completa, esta representada. a) So tambm representados os eixos do grfico e as respectivas legendas, como se pode observar do cdigo apresentado na figura 7.
% %Representao das trajectrias no plano de fase % if (aux == 1) plot(x(:,1),x(:,2)) hold on aux=2; else plot(x(:,1),x(:,2)) end end %ciclo j end %ciclo i hold off

% %Apresentar a parte importante do grfico % axis([-x_max,x_max,-Dx_max,Dx_max])


% %Desenho dos eixos do grfico % line([-x_max,x_max],[0,0]) line([0,0],[-Dx_max,Dx_max]) % %Legendas dos eixos do grfico % xlabel('x1') ylabel('x2') Figura 7: Cdigo correspondente representao das trajectrias no Plano de Fase

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

10. Grave o M-File com o nome plano_de_fase. a) O cdigo completo para a representao das solues desta equao no Plano de Fase (correspondente ao M-File plano_de_fase) apresentado em anexo (ver Anexo 1). 11. Para executar o M-File plano_de_fase, dever executar o seguinte comando no prompt do MATLAB: a) >plano_de_fase; b) As trajectrias correspondentes soluo da equao 1 no Plano de Fase so as apresentadas na figura 8 (o ponto singular, cujas coordenadas so (0, 0) corresponde a um foco estvel, com valores prprios 1,2= 1 j 3 ).
2 2

Figura 8: Representao no Plano de Fase correspondente equao 1

12. Vejamos agora o procedimento necessrio caso seja pretendido representar a seguinte equao no Plano de Fase.

d 2 x dx + + x=0 dt dt 2
Equao 6: Exemplo de equao diferencial de um sistema no linear

a) Tal como indicado no ponto 4., dever ser criado um M-File que servir para definir as variveis de fase da equao diferencial a representar no Plano de Fase (ver equao 7).

dx1 = x2 dt dx 2 = x1 x 2 dt
Equao 7: Variveis de fase para a representao da equao 6 no Plano de Fase

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

b) No M-file referido na alnea anterior, as variveis de fase tm que ser definidas num vector coluna (no nosso caso chamado dx) em que a primeira linha corresponde varivel dx1/dt e a segunda linha varivel dx2/dt (o cdigo completo deste M-File o apresentado no Anexo 3). c) Aps terminar a introduo do cdigo grave o M-File com o nome caso2.m. d) As trajectrias correspondentes soluo da equao 6 no Plano de Fase so as apresentadas na figura 9 (o ponto singular, cujas coordenadas so (0, 0) corresponde, para o caso em que dx/dt>0, a um foco estvel, com valores prprios 1,2= 1 j 3 e, para o
2 2

caso em que dx/dt<0, a um foco instvel, com valores prprios 1,2= 1 j 3 ).


2 2

Figura 9: Representao no Plano de Fase correspondente equao 6

13. Por ltimo, vejamos agora o procedimento necessrio caso seja pretendido representar a seguinte equao no Plano de Fase.

d 2 x dx 9.8 + + sen( x) = 0 dt 1 dt 2
Equao 8: Equao diferencial de um sistema no linear

a) Como j referido anteriormente, torna-se necessrio desenvolver um M-file para definir as variveis de fase, de acordo com o indicado na equao 9 (o cdigo completo deste M-File o apresentado no Anexo 4).

dx1 = x2 dt dx 2 = 9.8 sen( x1 ) x 2 1 dt


Equao 9: Variveis de fase para a representao da equao 8 no Plano de Fase

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

b) Aps terminar a introduo do cdigo grave o M-File com o nome caso3.m. c) As trajectrias correspondentes soluo da equao 8 no Plano de Fase so as apresentadas na figura 10 (os pontos singulares, cujas coordenadas so (2.n., 0) n = 0, 1, 2, ... - correspondem a focos estveis, com valores prprios 1,2= 1 j 38,2 ; por sua vez,
2 2

os pontos singulares, cujas coordenadas so ((2.n.+1)., 0) n = 0, 1, 2, ... - correspondem a pontos de sela, com valores prprios 1=3.67 e 2=2.67).

Figura 10: Representao no Plano de Fase correspondente equao 8

2. Concluses
Acabamos de ver como possvel recorrendo ao software MATLAB efectuar o estudo de um sistema atravs da representao no Plano de Fase. As noes aqui introduzidas, de uma forma necessariamente resumida, podem ser desenvolvidas recorrendo bibliografia que se apresenta de seguida.

3. Bibliografia
[1] - Ogata, Katsuhiko; Engenharia de Controle Moderno; Prentice-Hall do Brasil; 1982.

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB

10

4. Anexo 1: Cdigo para Representao das Solues da Equao Diferencial no Plano de Fase
%------------------------------------------------------------------% % M-File para traar as trajectrias no Plano de Fase % de Equacoes diferenciais de segunda ordem % Dezembro de 1999 % Manuel Silva, Tenreiro Machado % %------------------------------------------------------------------%------------------------------------------------------------------% %Definio e valores por defeito dos parmetros % %------------------------------------------------------------------%Limpeza da memria do MATLAB clear; %Limpeza da janela com o grfico close; %variavel auxiliar aux=1; %incremento temporal dt=0.01; %intervalo de tempo a considerar t0=0; t_max=6; for i=t0:dt:t_max vector_t(aux)=[i]; aux=aux+1; end aux=1; %Numero de pontos na grelha n=6; %Valores maximos da grelha x_max=1; Dx_max=1;

%------------------------------------------------------------------% %Desenho da equao diferencial no Plano de Fase % %------------------------------------------------------------------%Inicializacao da posicao e da velocidade: Condicoes iniciais for i = 1:n, for j = 1:n, %Posicao inicial na grelha x1=(i-(n+1)/2)*x_max/n; %Velocidade inicial na grelha x2=(j-(n+1)/2)*Dx_max/n; %vector inicial x0=[x1;x2];

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB


%----------------------------------------------------------------% %Integrao das equaes diferenciais pelo mtodo de Runge Kutta 4(5) % %----------------------------------------------------------------[t,x]=ode45('caso1',vector_t,x0); % %Representao das trajectrias no plano de fase % if (aux == 1) plot(x(:,1),x(:,2)) hold on aux=2; else plot(x(:,1),x(:,2)) end end %ciclo j end %ciclo i hold off

11

% %Apresentar a parte importante do grfico % axis([-x_max,x_max,-Dx_max,Dx_max])


% %Desenho dos eixos do grfico % line([-x_max,x_max],[0,0]) line([0,0],[-Dx_max,Dx_max]) % %Legendas dos eixos do grfico % xlabel('x1') ylabel('x2')

5. Anexo 2: Definio das variveis de fase para representao da equao diferencial 1 no Plano de Fase
function dx=caso1(t,x); %------------------------------------------------------------------% %Definio das variveis % %------------------------------------------------------------------%x(1)=x(t) %x(2)=dx/dt %------------------------------------------------------------------% %Definio da equao diferencial a desenhar no Plano de Fase % %------------------------------------------------------------------% %Equao 1 - Pag. 22 dos apontamentos % %DDx+Dx+x=0 % => x(1)=x,x(2)=Dx,Dx(2)=DDx

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Anlise de sistemas No Lineares por Plano de Fase Recorrendo ao MATLAB


% dx=[x(2);-x(1)-x(2)];

12

6. Anexo 3: Definio das variveis de fase para representao da equao diferencial 6 no Plano de Fase
function dx=caso2(t,x); %------------------------------------------------------------------% %Definio das variveis % %------------------------------------------------------------------%x(1)=x(t) %x(2)=dx/dt %------------------------------------------------------------------% %Definio da equao diferencial a desenhar no Plano de Fase % %------------------------------------------------------------------% %Equao 6 - Pag. 26 dos apontamentos % %DDx+abs(Dx)+x=0 % => x(1)=x(t),x(2)=Dx,Dx(2)=DDx % dx=[x(2);-x(1)-abs(x(2))];

7. Anexo 4: Definio das variveis de fase para representao da equao diferencial 8 no Plano de Fase
function dx=caso3(t,x); %------------------------------------------------------------------% %Definio das variveis % %------------------------------------------------------------------%x(1)=x(t) %x(2)=dx/dt %------------------------------------------------------------------% %Definio da equao diferencial a desenhar no Plano de Fase % %------------------------------------------------------------------% %Equao 8 - Pag. 618 - Pndulo com atrito % %DDx+Dx+9.8/1*sin(x)=0 % => x(1)=x(t),x(2)=Dx,Dx(2)=DDx % dx=[x(2);-9.8/1*sin(x(1))-x(2)];

Modelao e Controlo de Sistemas Dinmicos

Eng. Manuel Silva, Prof. Tenreiro Machado

Você também pode gostar