0% acharam este documento útil (0 voto)
3 visualizações5 páginas

Análise de Sistemas Dinâmicos em MATLAB

Enviado por

alex miguel
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações5 páginas

Análise de Sistemas Dinâmicos em MATLAB

Enviado por

alex miguel
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

lab dos sistemas dinamicos

%pratica 01
%data : 25/09
%autor: Alexsander-202320914

limpar workspace
close all
clear
clc

ex 1
%letra A)
% Definindo a função para aplicações futuras
s = tf('s');
Gs = s+1/(s^2+2*s+1);

p = [1 2 1]; % Coeficientes de p(s)


q = [1 1]; % Coeficientes de q(s)

produto = conv(p, q);


disp(produto);
%
%letra B)
%
num=[1 1];
den =[1 2 1];
G=tf(num,den)

%as funçoes a baixo , mostram os polos e zeros separadamente


polos = pole(G); % Pólos de G(s)
zeros = zero(G); % Zeros de G(s)

disp(polos);
disp(zeros);

%
%letra C)
%

num=[1 1];
den =[1 2 1];
G=tf(num,den)

p = -1 ;% declarando a função p(-1)

1
evalfr(G,p)
% o valor convergiu para infinito

%
%letra D)
%

pzmap(G); % Mapa de pólos e zeros de G(s)


%O comando pzmap traça o mapa de pólos e zeros de uma função de
%transferência. Podemos usá-lo para verificar estabilidade da função entre
%outras coisas . no caso dessa função , seu polo e zero estao na mesma
%posição.

ex 2
%letra A)

s = tf('s');
Cs = 1 / (s+1);
Gs = 1 / (s+3);
ys = series(Cs,Gs);
printsys([Link]{1}, [Link]{1});

%
%letra B)
%

s = tf('s');
Cs = 1 / (s+1);
Gs = 1 / (s+3);
ys = series(Cs,Gs);
figure(1);
step(ys);

%
%letra C)
%

s = tf('s');
Cs = 1 / (s+1);
Gs = 1 / (s+3);
figure(2);
step(Cs);
figure(3);
step(Gs);
% ys da letra b tende a converter ao infinito em 6 seg com amplitude de
% 0.35 , separadamente , cs converte ao infinito em 6 seg com amplitude 1 e
% gs converte ao infinito em 2 seg com amplitude de 0.35, o que se pode

2
% concluir é que ys herdou caracteristicas da junção das duas funçoes.

ex 3
s = tf('s');
Cs = 1 / (s+1);
Gs = 1 / (s+3);

[Rc, Pc, Kc] = tf2zp([Link]{1}, [Link]{1});


[Rg, Pg, Kg] = tf2zp([Link]{1}, [Link]{1});
disp('Ganho ');
disp(Kc);
disp('Polos');
disp([Link]{1});
disp('Zeros');
disp([Link]{1});

disp('Ganho ');
disp(Kg);
disp('Polos');
disp([Link]{1});
disp('Zeros');
disp([Link]{1});

%
%letra B)
%

% declaracao da função
s = tf('s');
Cs = 1 / (s+1);
Gs = 1 / (s+3);

% Salvamento de dados de C
[resposta_G, tG] = step(Gs);
save('[Link]', 'resposta_G', 'tG');

Tg = 1/3; % Constante de tempo de G(s)

temposG = [Tg, 2*Tg, 3*Tg, 4*Tg, 5*Tg];

% Valores correspondentes
valoresG = step(Gs, temposG);

Gpercent = (valoresG / (1/3)) * 100; % O valor final é 1/3 para G(s)

disp('Valores de G(s) como porcentagem do valor em regime permanente:');


disp(Gpercent);

3
% Salvamento de dados de C
[resposta_C, tC] = step(Cs);
save('[Link]', 'resposta_C', 'tC');

Tc = 1; % Constante de tempo de C(s)


temposC = [Tc, 2*Tc, 3*Tc, 4*Tc, 5*Tc];

% Valores correspondentes
valoresC = step(Cs, temposC);

Cpercent = (valoresC /1) * 100;


% Para C(s) , o valor final será 1

disp('Valores de C(s) como porcentagem do valor em regime permanente:');


disp(Cpercent);

ex 4
%função
numD = [2.5];
denD = [1 0.5];
Ds = tf(numD, denD);

numU = [2];
denU = [1 0.5];
Us = tf(numU, denU);

% Declaração do sensor
Sensor = tf(0.04, 1);

% Saída total Y(s) = (D(s) + U(s)) * Sensor


Gsaida = (Ds + Us) * Sensor

disp('Função de transferência total Y(s):');


disp(Gsaida);
%a função depende de um sinal da saida para receber a entrada . Um sinal
%invarante no tempo , linear , de 0,04.

%
%letra B)
%

Ui = 5; % Valor da tensão
Di = 0; % porta fechada

t = linspace(0, 10, 1000); % Vetor de tempo


y = lsim(Us * Sensor, Ui * ones(size(t)), t); % Simulação da resposta com
U(t)

4
figure(1);
plot(t, y);
xlabel('Tempo (minutos)');
ylabel('Temperatura (°C)');
title('Saída do sistema porta fechada e u(t)=5V');
grid on;

%
%letra C)
%

% Apos 2 min, porta aberta

Ui = 5; % Valor da tensão
Di = 0; % Distúrbio inicial zero

t = linspace(0, 10, 1000); % Vetor de tempo

% Criar um sinal de degrau no distúrbio após 2 minutos


D_signal = zeros(size(t));
D_signal(t >= 2) = 1; % Degrau unitário no distúrbio após 2 minutos

% Simulação da resposta com U(t) = 5V e degrau no distúrbio


Ydisturbio = lsim((Ds + Us) * Sensor, Ui * ones(size(t)) + D_signal, t);

figure(2);
plot(t, Ydisturbio);
xlabel('Tempo (minutos)');
ylabel('Temperatura (°C)');
title('Saída do sistema com porta aberta após 2 minutos');
grid on;
%Quando aberta , apos 2 min , a temperatura tende a subir mais rapdimente
%por causa da entrada adicional de calor do disturbio. Pelo grafio,é
%possivel notar que , com o mesmo espaço de tempo , a temperatura atingiu
%uma escala muito maior quando aberto a porta do disturbio .

Você também pode gostar