quarta-feira, 3 de dezembro de 2014

Simulação de um Sistema discreto dinamico não linear.





1)                  Para o sistema dinâmico descrito pelo modelo não linear de quarta ordem:

a) Determine o ponto de equilíbrio do sistema. Utilize a função “fsolve” do Matlab que baseiase no método de Newton Haphson. Dica: As equações ficam em um arquivo e o comando “fsolve” em outro arquivo distinto.
 Exemplo:
(20-A e 0.45-B)

Arquivo 1:
function F=arquivo1(x)
F = [-0.5.*x(1).^2 + 0.5.*x(2).^2 - 0.2;
     -20*sin(x(1)) - 0.45*x(2); % conjunto de equação –> f(x)=0
     -1*x(2)^2 + 0.2*x(4);
     -175*sin(x(3)) - 0.6*x(4)];
end



Arquivo 2:

clc, clear all, close all
x0=[1 ; 1 ; 1 ; 1]; % Condições iniciais para resolução
options=optimset('Display','iter'); % Opção da saída
[x,fval]=fsolve(@arquivo1,x0, options); % Chamando a função

Use o help do matlab para mais detalhes.

Ponto de Equilíbrio:
x =    -0.0142 ;    0.6326 ;    -0.0069 ;    2.0010.

fval = 1.0e-007 *

    0.0777 ,  -0.0000 ;  -0.1555 ,   0.


b) Determine o modelo linear na forma x’(t)=Ax(t) . Utilize o comando “jacobian” do Matlab que baseia-se na expansão em série de Taylor truncada na primeira ordem. Dica: É necessário declarar variáveis simbólicas e depois atribuir valores para as variáveis.

Exemplo:

% declaração das variáveis simbólicas
x1=sym('x1'); x2=sym('x2');x3=sym('x3'); x4=sym('x4');

% conjunto de equações não lineares – x(ponto)=f(x
F = [-0.5.*x1.^2 + 0.5.*x2.^2 - 0.2;
     -20*sin(x1) - 0.45*x2;
     -1*x2^2 + 0.2*x4;
     -175*sin(x3) - 0.6*x4];

X=[x1,x2,x3, x4];
FX=jacobian(F,X);

% atribuição de valores para as variáveis
x1=x(1); x2=x(2); x3=x(3); x4=x(4);
A=subs(FX);
A =
    0.0142    0.6326         0         0
  -19.9980   -0.4500         0         0
         0   -1.2652         0    0.2000
         0         0 -174.9959   -0.6000


c) Calcule os autovalores referentes ao modelo linear obtido e diga se o sistema é estável ou instável.
     As raízes características são os autovalores da matriz.
eig(A)
-0.2179 + 3.5492i ;  -0.2179 - 3.5492i ;   -0.3000 + 5.9084i ;   -0.3000 - 5.9084i
     O sistema é estável. Pois, se todo autovalor real de A é negativo e todo autovalor complexo de A tem parte real negativa, então x = 0 é um ponto de equilíbrio assintoticamente estável: toda solução tende a zero quando t  ® ¥.


d) Faça uma simulação baseada no modelo linear considerando uma perturbação de +10% na variável de estado x2 (ou seja, Δx 2(0) = x2(0)*0,1). Para implementar a simulação linear use o comando “initial” do Matlab.


A =[   0.0142    0.6326         0         0
     -19.9980   -0.4500         0         0
            0   -1.2652         0    0.2000
            0         0 -174.9959   -0.6000];
       
  
 x0=[1 1.1 1 1]; % vetor de condição inicial
 % Pertubação de 10% em x2

 % Matriz B= [1 0 0 0
 %        C=  0 1 0 0
 %        D=  0 0 1 0
 %        E=  0 0 0 1]

 B=[1 0 0 0];  % como é malha aberta

subplot(2,2,1); % controle de impressão da figura.(numero de linhas,numero de colunas,Primeira Posição para o grafico Grafico)
sys = ss(A,[],B,[]);
initial(sys,x0)
legend('L -x1 (Perterbação em x2=10%)',1);
title('Perturbação em x2');
xlabel('Tempo(s)');
ylabel('Amplitude');


subplot(2,2,2);% controle de impressão da figura.(numero de linhas,numero de colunas, Segunda Posição para o grafico Grafico)
C=[0 1 0 0];
sys = ss(A,[],C,[]);
initial(sys,x0)
legend('L -x2 (Perterbação em x2=10%)',1);
title('Perturbação em x2');
xlabel('Tempo(s)');
ylabel('Amplitude');




subplot(2,2,3);% controle de impressão da figura.(numero de linhas,numero de colunas,Terceira Posição para o grafico Grafico)
D=[0 0 1 0];
sys = ss(A,[],D,[]);
initial(sys,x0)
legend('L -x3 (Perterbação em x2=10%)',1);
title('Perturbação em x2');
xlabel('Tempo(s)');
ylabel('Amplitude');


subplot(2,2,4); % % controle de impressão da figura.(numero de linhas,numero de colunas, Quarta Posição para o grafico Grafico)
E=[0 0 0 1];
sys = ss(A,[],E,[]);
initial(sys,x0)
legend('L -x4 (Perterbação em x2=10%)',1);
title('Perturbação em x2');
xlabel('Tempo(s)');
ylabel('Amplitude');




e) Faça uma simulação não linear considerando uma perturbação de +10% na variável de estado x2 (ou seja,  x2inicial (0) = x (0)*1,1 ). Para implementar a simulação use o comando ODE45 do Matlab que utiliza o método de Runge-Kutta de integração numérica. Dica: As equações ficam em um arquivo e o comando “ode45” em outro arquivo distinto. Exemplo:
Arquivo 1:
TSPAN=[0 10.0];
Y0=[x0(1) x0(2) ]; % Condições iniciais
[ta,ya]=ODE45('arquivo2',TSPAN,Y0,[],T1,T2); % função que resolve as equações
figure(1)
plot(ta,ya(:,1)); % “Plota” a variável x1
legend('xxxx',1);
title('xxxx')
xlabel('tempo [s]')
ylabel('xxx [yy]')

Arquivo 2:
function arquivo2 = odefile(t,y,options,T1,T2);
Arquivo2(1,1)= -inv(T1)*y(2) +y(1); % Equações diferenciais
Arquivo2(2,1)= T2*arquivo2(1,1) + y(2); % Equações diferenciais

function principal 
clear all;
clc;
TSPAN=[0 15.0];  % tempo de simulaçao
XX0=[1 1.1 1 1]; % Condições iniciais com 60% em x2
options = odeset('Abstol',1e-6,'Reltol',1e-6);% erro relativo e erro absoluto

[ta,ya]=ode45('arquivo7',TSPAN,XX0,[]); % função que resolve as equações

subplot(2,2,1)
plot(ta,ya(:,1)); % “Plota” a variável x1
legend(' x1 (Perturbação em x2 de 10%',1);
title('Perturbação em x2');
xlabel('Tempo [s]');
ylabel('Amplitude');

subplot(2,2,2)
plot(ta,ya(:,2)); % “Plota” a variável x1
legend(' x2 (Perturbação em x2 de 10%',1);
title('Perturbação em x2');
xlabel('Tempo [s]');
ylabel('Amplitude');

subplot(2,2,3)
plot(ta,ya(:,3)); % “Plota” a variável x1
legend(' x3 (Perturbação em x2 de 60%',1);
title('Perturbação em x2');
xlabel('Tempo [s]');
ylabel('Amplitude');
 
subplot(2,2,4)
plot(ta,ya(:,4)); % “Plota” a variável x4
legend(' x4 (Perturbação em x2 de 10%',1);
title('Perturbação em x2');
xlabel('Tempo [s]');
ylabel('Amplitude');





f) Compare a resposta linear com a resposta não linear das variáveis x2 e x3 para uma perturbação de +10% e outra de +60% na variável x2.

Perturbação de + 10% na Variável X2
Resposta Linear
Resposta Não Linear
     Observando os gráficos da variável X2, a resposta linear e da resposta não linear para uma perturbação de +10% na variável X2, conclui-se que a resposta não linear estabiliza em um tempo menor que a resposta linear, porem a resposta não linear atinge maior amplitude que a resposta linear.
     Observando os gráficos da variável X3, da resposta linear e da resposta não linear para uma perturbação de +10% na variável X2, conclui-se que a resposta não linear decai significativamente estabilizando neste valor negativo em um curto espaço de tempo. Já a resposta linear tem uma pequena oscilação e em poucos segundos estabiliza.

















Perturbação de + 60% na Variável X2
Resposta Linear
Resposta Não Linear
     Observando os gráficos da variável X2, a resposta linear e da resposta não linear para uma perturbação de +60% na variável X2, conclui-se que a resposta não linear estabiliza em um tempo menor que a resposta linear, porem a resposta não linear atinge maior amplitude que a resposta linear.
     Observando os gráficos da variável X3, da resposta linear e da resposta não linear para uma perturbação de +60% na variável X2, conclui-se que a resposta não linear decai significativamente estabilizando neste valor negativo em um curto espaço de tempo. Já a resposta linear tem uma pequena oscilação e em poucos segundos estabiliza.

Modelo na forma de espaço de estados a ser usado no exercício 10:

X’(1) (t)=0,5x1^2(t) - 0,1x2 (t) - 0,2
X’(2) (t )= - 9 sen ( x1 (t )) - 0,3 x2 (t )
X’(3) (t )= - 1x2 ^2 (t ) + 0,2 x4 (t )
X’(4) (t )= - 1 7 5 s e n ( x3 (t )) - 0 ,6 x4 (t )

Obs. 1: Nas simulações no domínio do tempo, gere os gráficos apenas das variáveis x2(t) e x3(t) para o intervalo de tempo de 0 a 15 segundos.

Nenhum comentário:

Postar um comentário