You are on page 1of 21

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

CURSO DE ENGENHARIA ELTRICA

ALLAN MAGNO COSTA TEIXEIRA

ATIVIDADE PRTICA SUPERVISIONADA I

ATIVIDADE PRTICA SUPERVISIONADA

PATO BRANCO
2015

ALLAN MAGNO COSTA TEIXEIRA

ATIVIDADE PRTICA SUPERVISIONADA I

Atividade Prtica Supervisionada I


apresentada disciplina de Dinmica e
Controle de Sistemas de Potncia do
programa de Graduao em Engenharia
Eltrica da Universidade Tecnolgica Federal
do Paran, Cmpus Pato Branco-PR.
Orientador: Prof. Dr. Ricardo Vasques de
Oliveira

PATO BRANCO
2015

SUMRIO
1 PARA O SISTEMA DINMICO DESCRITO PELO MODELO NO LINEAR DE
QUARTA ORDEM: ................................................................................................................. 3
1.1 DETERMINE O PONTO DE EQUILBRIO DO SISTEMA. UTILIZE A FUNO
fsolve DO MATLAB QUE BASEIA-SE NO MTODO DE NEWTON HAPHSON. ......... 3
1.2 DETERMINE O MODELO LINEAR NA FORMA = . UTILIZE O
COMANDO jacobian DO MATLAB QUE BASEIA-SE NA EXPANSO EM SRIE DE
TAYLOR TRUNCADA NA PRIMEIRA ORDEM. ................................................................. 5
1.3 CALCULE OS AUTOVALORES REFERENTES AO MODELO LINEAR OBTIDO E
DIGA SE O SISTEMA ESTVEL OU INSTVEL. ............................................................ 6
1.4 FAA UMA SIMULAO BASEADA NO MODELO LINEAR CONSIDERANDO
UMA PERTURBAO DE +10% NA VARIVEL DE ESTADO 2 (OU SEJA, 20 =
20 1,1). PARA IMPLEMENTAR A SIMULAO LINEAR USE O COMANDO initial
DO MATLAB. OBTENHA A RESPOSTA NO TEMPO PARA TODAS AS VARIVEIS DE
ESTADO. ................................................................................................................................... 8
1.5 FAA UMA SIMULAO NO LINEAR CONSIDERANDO UMA PERTURBAO
DE +10% NA VARIVEL DE ESTADO 2 (OU SEJA, 20 = 20 1,1). PARA
IMPLEMENTAR A SIMULAO USE O COMANDO ode45 DO MATLAB QUE
UTILIZA O MTODO DE RUNGE-KUTTA DE INTEGRAO NUMRICA. .................. 9
1.6 COMPARE A RESPOSTA LINEAR COM A RESPOSTA NO LINEAR DAS
VARIVEIS 1, 2, 3 E 4 PARA UMA PERTURBAO DE +10% E OUTRA DE +60%
NA VARIVEL 2.................................................................................................................. 11
2 ANEXO ................................................................................................................................. 15

PARA O SISTEMA DINMICO DESCRITO PELO MODELO NO LINEAR DE


QUARTA ORDEM:

Modelo na forma de espao de estados a ser usado no exerccio:


() = 0,5 22 () + 0,5 2 () 0,2
() = (1 ()) 2 ()
() = 1 22 () + 0,2 4 ()
() = 175 (3 ()) 0,6 4 ()
Parmetros a serem utilizados nas equaes diferenciais no lineares.

Tabela 1 - Parmetros a serem utilizados

Valor do Parmetro A

Valor do Parmetro B

36

0,20

Obs. 1: Nas simulaes no domnio do tempo, gere os grficos das variveis


1 (), 2 (), 3 () 4 () para o intervalo de tempo de 0 a 15 segundos. Coloque a resposta
do modelo no linear no mesmo grfico da resposta do modelo linear.
Obs. 2: Cada aluno deve utilizar o valor especificado para os parmetros A e B,
de acordo com a Tabela 1.

1.1

DETERMINE O PONTO DE EQUILBRIO DO SISTEMA. UTILIZE A FUNO


fsolve DO MATLAB QUE BASEIA-SE NO MTODO DE NEWTON HAPHSON.

Arquivo 1 mod_linear.m

function f_linear = mod_linear(x, par_A, par_B)

Modelo na forma de espao de estados

end

f_linear(1,1) = 0.5*((x(1))^2)+0.5*x(2)-0.2;

% der_x1

f_linear(2,1) = -par_A*sin(x(1))-par_B*x(2);

% der_x2

f_linear(3,1) = -1*((x(2))^2)+0.2*x(4);

% der_x3

f_linear(4,1) = -175*sin(x(3))-0.6*x(4);

% der_x4

Arquivo 2 APS1.m
Parmetros a serem utilizados nas equaes diferenciais no lineares
par_A = 36.00;

% Valor do Parmetro A

par_B = 0.20;

% Valor do Parmetro B

Intervalo (em segundos) para simulao no domnio do tempo


tsim = 15; % Simulao para o intervalo de tempo de 0 a 15 segundos.

1) Para o sistema dinmico descrito pelo modelo no linear de quarta ordem:


% a) Determine o ponto de equilbrio do sistema. Utilize a funo
% fsolve do Matlab que baseiase no mtodo de Newton Haphson. Dica: As
% equaes ficam em um arquivo e o comando fsolve em outro arquivo
% distinto.
x0 = [1; 1; 1; 1];

% Codies iniciais

options = optimset('Display', 'iter');

% Opo da sada

[x, fval] = fsolve(@mod_linear, x0, options, par_A, par_B); % Chamando a funo


% Apresentao dos resultados da letra a)
disp('a)');
disp('==========================================');
disp('Ponto de Equilbrio: ');
disp('x =');
disp(x);
disp('fval =');
disp(fval);
disp('==========================================');
disp(' ');

Valores e dados apresentados pelo programa de simulao, com base no cdigo


descrito:
Norm of

First-order

Trust-

step

optimality

radius

region
Iteration

Func-count

f(x)

22792.9

1.4e+04

10

880.333

615

15

20

361.577

2.5

1.83e+03

2.5

1.51247

3.01413

42.7

6.25

4
5

25

0.0029097

0.236083

0.0437

7.54

30

1.93244e-12

0.264968

2.71e-05

7.54

35

1.29848e-28

6.9071e-06

1.78e-12

7.54

Equation solved.
a)
==========================================
Ponto de Equilbrio:
x =

-0.0022
0.4000
-0.0027
0.8000
fval =
1.0e-13 *
0
0
0.0516
0.1016
==========================================

1.2

DETERMINE O MODELO LINEAR NA FORMA () = (). UTILIZE O


COMANDO jacobian DO MATLAB QUE BASEIA-SE NA EXPANSO EM SRIE
DE TAYLOR TRUNCADA NA PRIMEIRA ORDEM.

% b) Determine o modelo linear na forma x'(t)= Ax(t). Utilize o comando


% jacobian do matlab que baseia-se na expanso em srie de taylor truncada
% na primeira ordem. Dica: necessrio declarar variveis simblicas e
% depois atribuir valores para as variveis.
% Declarao das variveis simblicas
x1 = sym('x1');
x2 = sym('x2');
x3 = sym('x3');
x4 = sym('x4');
X = [x1 x2 x3 x4];

% Coloca as variaveis em um nico vetor

% Conjunto de equaes no lineares x(ponto)=f(x)


F(1,1) = 0.5*((x1)^2)+0.5*x2-0.2;

% der_x1

F(2,1) = -par_A*sin(x1)-par_B*x2;

% der_x2

F(3,1) = -1*((x2)^2)+0.2*x4;

% der_x3

F(4,1) = -175*sin(x3)-0.6*x4;

% der_x4

FX = jacobian(F,X); % Clculo do jacobiano, atravs do comando do


% MATLAB "jacobian"
% Atribuio de valores do ponto de equilbrio para as variveis
x1 = x(1);
x2 = x(2);
x3 = x(3);
x4 = x(4);
% Clculo da matriz A
A = subs(FX);

% Substitui o valor das variveis x1, x2, x3 e x4


% na matriz FX para determinar a matriz A

A = eval(A);

% Executa a string com comandos

% Apresentao dos resultados da letra b)


disp('b)');
disp('==========================================');
disp('Modelo linear na forma x''(t) = A*x(t): ');
disp(' ');
% Utiliza-se o comando "mat2str" para apresentar os elementos da
% matriz, com 4 algarismos siginificativos depois da vrgula
D1 = ['

|',

mat2str(A(1,3),3),'

D2 = ['x''(t) = |',
mat2str(A(2,3),3),'
D3 = ['
mat2str(A(3,3),3),'
D4 = ['
mat2str(A(4,3),3),'

mat2str(A(1,1),4),'

' mat2str(A(1,2),3),'

'

' mat2str(A(1,4),3),'|'];
mat2str(A(2,1),4),'

', mat2str(A(2,2),3),'

',

',mat2str(A(2,4),3),'|*x(t)'];
|',

mat2str(A(3,1),4),'

' mat2str(A(3,2),3),'

'

' mat2str(A(3,4),3),'|'];
|',

mat2str(A(4,1),4),'

' mat2str(A(4,2),3),'

'

' mat2str(A(4,4),3),'|'];

disp(D1);
disp(D2);
disp(D3);
disp(D4);
disp('==========================================');
disp(' ');

Valores e dados apresentados pelo programa de simulao, com base no cdigo


descrito:
b)
==========================================
Modelo linear na forma x'(t) = A*x(t):
|-0.002222

0.5

-0.2

|0

-0.8

|0

x'(t) = |-36

-175

0|
0|*x(t)
0.2|
-0.6|

==========================================

1.3

CALCULE OS AUTOVALORES REFERENTES AO MODELO LINEAR OBTIDO E


DIGA SE O SISTEMA ESTVEL OU INSTVEL.

% c) Calcule os autovalores referentes ao modelo linear obtido e diga


% se o sistema estvel ou instvel.
% Comando para determinar as razes caractersticas, as quais so
% os autovalores da matriz A
aut_val = eig(A);
% Anlise da estabilidade do sistema, utilizando-se da teoria de
% controle, a qual diz que, se as razes encontram-se do lado
% esquerdo do eixo real do plano complexo (parte real negativa), o
% sistema estvel, caso contrrio, o sistema instavel.

if (real(aut_val(:,1))<0)

% Analisa se todas as partes reais dos


% auto valores so negativas.

sistema = 'O sistema estvel!';


else
sistema = 'O sistema instvel!';
end
% Apresentao dos da letra c)
disp('c)');
disp('==========================================');
disp('Autovalores da matriz A: ');
disp(' ');
% Utiliza-se o comando "mat2str" para apresentar os elementos do
% vetor, com 4 algarismos siginificativos depois da vrgula
D5 = ['aut_val1 = ', mat2str(aut_val(1,1),4)];
D6 = ['aut_val2 = ', mat2str(aut_val(2,1),4)];
D7 = ['aut_val3 = ', mat2str(aut_val(3,1),4)];
D8 = ['aut_val4 = ', mat2str(aut_val(4,1),4)];
disp(D5);
disp(D6);
disp(D7);
disp(D8);
disp(' ');
disp(sistema);
disp('==========================================');
disp(' ');

Valores e dados apresentados pelo programa de simulao, com base no cdigo


descrito:
c)
==========================================
Autovalores da matriz A:
aut_val1 = -0.1011+4.241i
aut_val2 = -0.1011-4.241i
aut_val3 = -0.3+5.908i
aut_val4 = -0.3-5.908i
O sistema estvel!
==========================================

1.4

FAA UMA SIMULAO BASEADA NO MODELO LINEAR CONSIDERANDO


UMA PERTURBAO DE +10% NA VARIVEL DE ESTADO 2 (OU SEJA,
2 (0) = 2 (0) 1,1). PARA IMPLEMENTAR A SIMULAO LINEAR USE O
COMANDO initial DO MATLAB. OBTENHA A RESPOSTA NO TEMPO PARA
TODAS AS VARIVEIS DE ESTADO.

% d) Faa uma simulao baseada no modelo linear considerando uma


% perturbao de +10% na varivel de estado x2 (ou seja,
% Dx2(0) = x2(0)*0,1). Para implementar a simulao linear use o
% comando initial do Matlab. Obtenha a resposta no tempo para todas as
% variveis de estado.
pert = 10; % Valor percentual da pertubao na varivel de estado x2
x0_lin = [0, (x2*(pert/100)), 0, 0];

% Aplicando pertubao de
% 10% na varivel de estado
% x2, a qual encontra-se
% centralizada em zero.

figure(1)

% Cria a caixa de figura numero 2, para plotagem da


% simulao linear

hold on
% Trecho de cdigo responsvel por fazer a apresentao dos
% grficos das variveis x1(t), x2(t), x3(t) e x4(t), atravs de
% uma estrutura de repetio, com um contador "i", o qual ir
% varrer as quatro variveis.
for i=1:4
C = [0 0 0 0];

% Limpa a varivel C

C(1,i) = 1;

% Atribui um para o i_ezimo elemento de C

sys = ss(A,[],C,[]);

% Converter a funo para espaos de


% estados

subplot(2,2,i); % Cria uma estrutura de plotagem com duas


% colunas e duas linhas, e ativa a plotagem
% para o i_ezimo grfico
initial(sys,x0_lin,tsim);

% Plota a simulao linear da


% varivel de espao de estados xi,
% com um tempo limite para a
% plotagem, de "tsim" (neste caso
% 15 segundos)

% Configurao das informaes dos grficos


[object_h,text_strings] = legend(['Modelo Linear (Pertubao de ',
num2str(pert),'% em x2)']);
title(['Resposta da varivel x', num2str(i),'(t)']);
xlabel('Tempo');
ylabel('Amplitude');
grid on

end

Apresentao dos grficos das variveis 1 (), 2 (), 3 () 4 (), obtidos


pelo programa de simulao, com base no cdigo descrito:

1.5

FAA

UMA

SIMULAO

NO

LINEAR

CONSIDERANDO

UMA

PERTURBAO DE +10% NA VARIVEL DE ESTADO 2 (OU SEJA, 2 (0) =


2 (0) 1,1). PARA IMPLEMENTAR A SIMULAO USE O COMANDO ode45
DO MATLAB QUE UTILIZA O MTODO DE RUNGE-KUTTA DE INTEGRAO
NUMRICA.

Arquivo 3 mod_nao_linear.m

function f_nao_linear = mod_nao_linear(t, x)

Parmetros a serem utilizados nas equaes diferenciais no lineares


par_A = 36.00;

% Valor do Parmetro A

par_B = 0.20;

% Valor do Parmetro B

Modelo na forma de espao de estados

10

f_nao_linear(1,1) = 0.5*((x(1))^2)+0.5*x(2)-0.2;

% der_x1

f_nao_linear(2,1) = -par_A*sin(x(1))-par_B*x(2);

% der_x2

f_nao_linear(3,1) = -1*((x(2))^2)+0.2*x(4);

% der_x3

f_nao_linear(4,1) = -175*sin(x(3))-0.6*x(4);

% der_x4

end

Arquivo 2 APS1.m
% e) Faa uma simulao no linear considerando uma perturbao de +10%
% na varivel de estado x2 (ou seja, x2_inicial(0) = x2(0)*1,1).
% Para implementar a simulao use o comando ODE45 do Matlab que
% utiliza o mtodo de Runge-Kutta de integrao numrica. Dica: As
% equaes ficam em um arquivo e o comando ode45 em outro arquivo
% distinto.
intervalo_integracao = [0 tsim];

% Atribui o intervalo de
% simulao a um vetor, com
% inico e final da plotagem,
% sendo de 0 at 15 segundos.

y0 = [x1, x2*(1+pert/100), x3, x4]; % Aplicando pertubao de mais


% 10% na varivel de estado x2.
% Resoluo das equaes no lineares do arquivo "mod_nao_linear",
% utilizando o comando "ode45" do MATLAB
[ta, ya] = ode45('mod_nao_linear', intervalo_integracao, y0,[]);
figure(2)

% Cria a caixa de figura numero 2, para plotagem da


% simulao no linear

hold on
% Trecho de cdigo responsvel por fazer a apresentao dos
% grficos das variveis x1(t), x2(t), x3(t) e x4(t), atravs de
% uma estrutura de repetio, com um contador "i", o qual ir
% varrer as quatro variveis.
for i=1:4
subplot(2,2,i); % Cria uma estrutura de plotagem com duas
% colunas e duas linhas, e ativa a plotagem
% para o i_ezimo grfico
plot(ta, ya(:,i),'red');

% Plota a simulao no linear da


% varivel de espao de estados xi,
% com um tempo limite de 15 segundos

% Configurao das informaes dos grficos


[object_h,text_strings] = legend(['Modelo No Linear (Pertubao de ',
num2str(pert),'% em x2)']);
title(['Resposta da varivel x', num2str(i),'(t)']);
xlabel('Tempo [segundos]');
ylabel('Amplitude');
grid on
end

11

Apresentao dos grficos das variveis 1 (), 2 (), 3 () 4 (), obtidos


pelo programa de simulao, com base no cdigo descrito:

1.6

COMPARE A RESPOSTA LINEAR COM A RESPOSTA NO LINEAR DAS


VARIVEIS 1 , 2 , 3 E 4 PARA UMA PERTURBAO DE +10% E OUTRA DE
+60% NA VARIVEL 2 .

% f) Compare a resposta linear com a resposta no linear das variveis


% x1, x2, x3 e x4 para uma perturbao de +10% e outra de +60% na
% varivel x2.
% Lao construido para calcular as duas situaes, considerando 10%
% e 60% de pertubao, respectivamente na primeira e na segunda
% execuo
for k = 1:2
if k == 1
pert = 10; % Valor percentual da pertubao na varivel de
% estado x2 de 10%
else
pert = 60; % Valor percentual da pertubao na varivel de

12

% estado x2 de 60%
end
x0_l = [0;x2*(pert/100);0;0]; % Aplicando pertubao na
% varivel de estado x2, para o
% modelo linear.
y0 = [x1, x2*(1+pert/100), x3, x4]; % Aplicando pertubao na
% varivel de estado x2,
% para o modelo no linear.
intervalo_integracao = [0 tsim];

% Atribui o intervalo de
% simulao a um vetor, com
% inico e final da plotagem,
% sendo de 0 at 15 segundos.

% Resoluo das equaes no lineares do arquivo


% "mod_nao_linear", utilizando o comando "ode45" do MATLAB
[ta, ya] = ode45(@mod_nao_linear, intervalo_integracao, y0,[]);
figure(k+2) % Cria as caixas das figuras de numero 3 e 4, para
% plotagem das simulaes no linear e linear,
% respectivamente, conforme o lao percorrido.
hold on
% Trecho de cdigo responsvel por fazer a apresentao dos
% grficos das variveis x1(t), x2(t), x3(t) e x4(t), atravs de
% uma estrutura de repetio, com um contador "i", o qual ir
% varrer as quatro variveis.
for i=1:4
C = [0 0 0 0];

% Limpa a varivel C

C(1,i) = 1;

% Atribui um para o i_ezimo elemento de C

sys = ss(A,[],C,[]); % Converter a funo para espaos de


% estados
subplot(2,2,i); % Cria uma estrutura de plotagem com duas
% colunas e duas linhas, e ativa a plotagem
% para o i_ezimo grfico
initial(sys,x0_l,tsim); % Plota a simulao linear da
% varivel de espao de estados xi,
% com um tempo limite para a
% plotagem, de "tsim" (neste caso
% 15 segundos)
hold on
plot(ta, ya(:,i),'red'); % Plota a simulao no linear da
% varivel de espao de estados
% xi, com um tempo limite de 15
% segundos.
% Configurao das informaes dos grficos
[object_h,text_strings,object_h,text_strings] = legend(['Modelo Linear
(Pertubao de ', num2str(pert),'% em x2)'],['Modelo No Linear (Pertubao de ',
num2str(pert),'% em x2)']);
title(['Resposta da varivel x', num2str(i),'(t)']);
xlabel('Tempo');
ylabel('Amplitude');
grid on

13

end
end

Apresentao dos grficos das variveis 1 (), 2 (), 3 () 4 (), obtidos


pelo programa de simulao, com base no cdigo descrito, para uma perturbao de 10%:

Apresentao dos grficos das variveis 1 (), 2 (), 3 () 4 (), obtidos


pelo programa de simulao, com base no cdigo descrito, para uma perturbao de 60%:

14

15

ANEXO

Apresentao do cdigo na integra.

clear all
clc

Atividade Prtica Supervisionada I


%*******************************************************************%
% Disciplina: DC29EL - Dinmica e Controle de Sistemas de Potncia

% Nome: Allan Magno Costa Teixeira

% Professor: Ricardo Vasques de Oliveira

%*******************************************************************%

Parmetros a serem utilizados nas equaes diferenciais no lineares


par_A = 36.00;

% Valor do Parmetro A

par_B = 0.20;

% Valor do Parmetro B

Intervalo (em segundos) para simulao no dominido do tempo


tsim = 15; % Simulao para o intervalo de tempo de 0 a 15 segundos.

1) Para o sistema dinmico descrito pelo modelo no linear de quarta ordem:


% a) Determine o ponto de equilbrio do sistema. Utilize a funo
% fsolve do Matlab que baseiase no mtodo de Newton Haphson. Dica: As
% equaes ficam em um arquivo e o comando fsolve em outro arquivo
% distinto.
x0 = [1; 1; 1; 1];

% Codies iniciais

options = optimset('Display', 'iter');

% Opo da sada

[x, fval] = fsolve(@mod_linear, x0, options, par_A, par_B); % Chamando a funo


% Apresentao dos resultados da letra a)
disp('a)');
disp('==========================================');
disp('Ponto de Equilbrio: ');
disp('x =');
disp(x);
disp('fval =');
disp(fval);
disp('==========================================');
disp(' ');
% b) Determine o modelo linear na forma x'(t)= Ax(t). Utilize o comando
% jacobian do matlab que baseia-se na expanso em srie de taylor truncada
% na primeira ordem. Dica: necessrio declarar variveis simblicas e

16

% depois atribuir valores para as variveis.


% Declarao das variveis simblicas
x1 = sym('x1');
x2 = sym('x2');
x3 = sym('x3');
x4 = sym('x4');
X = [x1 x2 x3 x4];

% Coloca as variaveis em um nico vetor

% Conjunto de equaes no lineares x(ponto)=f(x)


F(1,1) = 0.5*((x1)^2)+0.5*x2-0.2;

% der_x1

F(2,1) = -par_A*sin(x1)-par_B*x2;

% der_x2

F(3,1) = -1*((x2)^2)+0.2*x4;

% der_x3

F(4,1) = -175*sin(x3)-0.6*x4;

% der_x4

FX = jacobian(F,X); % Clculo do jacobiano, atravs do comando do


% MATLAB "jacobian"
% Atribuio de valores do ponto de equilbrio para as variveis
x1 = x(1);
x2 = x(2);
x3 = x(3);
x4 = x(4);
% Clculo da matriz A
A = subs(FX);

% Substitui o valor das variveis x1, x2, x3 e x4


% na matriz FX para determinar a matriz A

A = eval(A);

% Executa a string com comandos

% Apresentao dos resultados da letra b)


disp('b)');
disp('==========================================');
disp('Modelo linear na forma x''(t) = A*x(t): ');
disp(' ');
% Utiliza-se o comando "mat2str" para apresentar os elementos da
% matriz, com 4 algarismos siginificativos depois da vrgula
D1 = ['

|',

mat2str(A(1,3),3),'

D2 = ['x''(t) = |',
mat2str(A(2,3),3),'
D3 = ['
mat2str(A(3,3),3),'
D4 = ['
mat2str(A(4,3),3),'

mat2str(A(1,1),4),'

' mat2str(A(1,2),3),'

'

' mat2str(A(1,4),3),'|'];
mat2str(A(2,1),4),'

', mat2str(A(2,2),3),'

',

',mat2str(A(2,4),3),'|*x(t)'];
|',

mat2str(A(3,1),4),'

' mat2str(A(3,2),3),'

'

' mat2str(A(3,4),3),'|'];
|',

mat2str(A(4,1),4),'

' mat2str(A(4,2),3),'

' mat2str(A(4,4),3),'|'];

disp(D1);
disp(D2);
disp(D3);
disp(D4);
disp('==========================================');
disp(' ');
% c) Calcule os autovalores referentes ao modelo linear obtido e diga
% se o sistema estvel ou instvel.
% Comando para determinar as razes caractersticas, as quais so
% os autovalores da matriz A
aut_val = eig(A);

'

17

% Anlise da estabilidade do sistema, utilizando-se da teoria de


% controle, a qual diz que, se as razes encontram-se do lado
% esquerdo do eixo real do plano complexo (parte real negativa), o
% sistema estvel, caso contrrio, o sistema instavel.
if (real(aut_val(:,1))<0)

% Analisa se todas as partes reais dos


% auto valores so negativas.

sistema = 'O sistema estvel!';


else
sistema = 'O sistema instvel!';
end
% Apresentao dos da letra c)
disp('c)');
disp('==========================================');
disp('Autovalores da matriz A: ');
disp(' ');
% Utiliza-se o comando "mat2str" para apresentar os elementos do
% vetor, com 4 algarismos siginificativos depois da vrgula
D5 = ['aut_val1 = ', mat2str(aut_val(1,1),4)];
D6 = ['aut_val2 = ', mat2str(aut_val(2,1),4)];
D7 = ['aut_val3 = ', mat2str(aut_val(3,1),4)];
D8 = ['aut_val4 = ', mat2str(aut_val(4,1),4)];
disp(D5);
disp(D6);
disp(D7);
disp(D8);
disp(' ');
disp(sistema);
disp('==========================================');
disp(' ');
% d) Faa uma simulao baseada no modelo linear considerando uma
% perturbao de +10% na varivel de estado x2 (ou seja,
% Dx2(0) = x2(0)*0,1). Para implementar a simulao linear use o
% comando initial do Matlab. Obtenha a resposta no tempo para todas as
% variveis de estado.
pert = 10; % Valor percentual da pertubao na varivel de estado x2
x0_lin = [0, (x2*(pert/100)), 0, 0];

% Aplicando pertubao de
% 10% na varivel de estado
% x2, a qual encontra-se
% centralizada em zero.

figure(1)

% Cria a caixa de figura numero 2, para plotagem da


% simulao linear

hold on
% Trecho de cdigo responsvel por fazer a apresentao dos
% grficos das variveis x1(t), x2(t), x3(t) e x4(t), atravs de
% uma estrutura de repetio, com um contador "i", o qual ir
% varrer as quatro variveis.
for i=1:4

18

C = [0 0 0 0];

% Limpa a varivel C

C(1,i) = 1;

% Atribui um para o i_ezimo elemento de C

sys = ss(A,[],C,[]);

% Converter a funo para espaos de


% estados

subplot(2,2,i); % Cria uma estrutura de plotagem com duas


% colunas e duas linhas, e ativa a plotagem
% para o i_ezimo grfico
initial(sys,x0_lin,tsim);

% Plota a simulao linear da


% varivel de espao de estados xi,
% com um tempo limite para a
% plotagem, de "tsim" (neste caso
% 15 segundos)

% Configurao das informaes dos grficos


[object_h,text_strings] = legend(['Modelo Linear (Pertubao de ',
num2str(pert),'% em x2)']);
title(['Resposta da varivel x', num2str(i),'(t)']);
xlabel('Tempo');
ylabel('Amplitude');
grid on
end
% e) Faa uma simulao no linear considerando uma perturbao de +10%
% na varivel de estado x2 (ou seja, x2_inicial(0) = x2(0)*1,1).
% Para implementar a simulao use o comando ODE45 do Matlab que
% utiliza o mtodo de Runge-Kutta de integrao numrica. Dica: As
% equaes ficam em um arquivo e o comando ode45 em outro arquivo
% distinto.
intervalo_integracao = [0 tsim];

% Atribui o intervalo de
% simulao a um vetor, com
% inico e final da plotagem,
% sendo de 0 at 15 segundos.

y0 = [x1, x2*(1+pert/100), x3, x4]; % Aplicando pertubao de mais


% 10% na varivel de estado x2.
% Resoluo das equaes no lineares do arquivo "mod_nao_linear",
% utilizando o comando "ode45" do MATLAB
[ta, ya] = ode45('mod_nao_linear', intervalo_integracao, y0,[]);
figure(2)

% Cria a caixa de figura numero 2, para plotagem da


% simulao no linear

hold on
% Trecho de cdigo responsvel por fazer a apresentao dos
% grficos das variveis x1(t), x2(t), x3(t) e x4(t), atravs de
% uma estrutura de repetio, com um contador "i", o qual ir
% varrer as quatro variveis.
for i=1:4
subplot(2,2,i); % Cria uma estrutura de plotagem com duas
% colunas e duas linhas, e ativa a plotagem
% para o i_ezimo grfico
plot(ta, ya(:,i),'red');

% Plota a simulao no linear da


% varivel de espao de estados xi,

19

% com um tempo limite de 15 segundos


% Configurao das informaes dos grficos
[object_h,text_strings] = legend(['Modelo No Linear (Pertubao de ',
num2str(pert),'% em x2)']);
title(['Resposta da varivel x', num2str(i),'(t)']);
xlabel('Tempo [segundos]');
ylabel('Amplitude');
grid on
end
% f) Compare a resposta linear com a resposta no linear das variveis
% x1, x2, x3 e x4 para uma perturbao de +10% e outra de +60% na
% varivel x2.
% Lao construido para calcular as duas situaes, considerando 10%
% e 60% de pertubao, respectivamente na primeira e na segunda
% execuo
for k = 1:2
if k == 1
pert = 10; % Valor percentual da pertubao na varivel de
% estado x2 de 10%
else
pert = 60; % Valor percentual da pertubao na varivel de
% estado x2 de 60%
end
x0_l = [0;x2*(pert/100);0;0]; % Aplicando pertubao na
% varivel de estado x2, para o
% modelo linear.
y0 = [x1, x2*(1+pert/100), x3, x4]; % Aplicando pertubao na
% varivel de estado x2,
% para o modelo no linear.
intervalo_integracao = [0 tsim];

% Atribui o intervalo de
% simulao a um vetor, com
% inico e final da plotagem,
% sendo de 0 at 15 segundos.

% Resoluo das equaes no lineares do arquivo


% "mod_nao_linear", utilizando o comando "ode45" do MATLAB
[ta, ya] = ode45(@mod_nao_linear, intervalo_integracao, y0,[]);
figure(k+2) % Cria as caixas das figuras de numero 3 e 4, para
% plotagem das simulaes no linear e linear,
% respectivamente, conforme o lao percorrido.
hold on
% Trecho de cdigo responsvel por fazer a apresentao dos
% grficos das variveis x1(t), x2(t), x3(t) e x4(t), atravs de
% uma estrutura de repetio, com um contador "i", o qual ir
% varrer as quatro variveis.

20

for i=1:4
C = [0 0 0 0];

% Limpa a varivel C

C(1,i) = 1;

% Atribui um para o i_ezimo elemento de C

sys = ss(A,[],C,[]); % Converter a funo para espaos de


% estados
subplot(2,2,i); % Cria uma estrutura de plotagem com duas
% colunas e duas linhas, e ativa a plotagem
% para o i_ezimo grfico
initial(sys,x0_l,tsim); % Plota a simulao linear da
% varivel de espao de estados xi,
% com um tempo limite para a
% plotagem, de "tsim" (neste caso
% 15 segundos)
hold on
plot(ta, ya(:,i),'red'); % Plota a simulao no linear da
% varivel de espao de estados
% xi, com um tempo limite de 15
% segundos.
% Configurao das informaes dos grficos
[object_h,text_strings,object_h,text_strings] = legend(['Modelo Linear
(Pertubao de ', num2str(pert),'% em x2)'],['Modelo No Linear (Pertubao de ',
num2str(pert),'% em x2)']);
title(['Resposta da varivel x', num2str(i),'(t)']);
xlabel('Tempo');
ylabel('Amplitude');
grid on
end
end

You might also like