Você está na página 1de 18

SUMÁRIO

INTRODUÇÃO 2
OBJETIVOS 2
EXERCÍCIOS 2
CÓDIGO DOS PROGRAMAS 14
REFERÊNCIAS 18

1
INTRODUÇÃO

"Simular sistemas dinâmicos (sejam eles mecânicos, elétricos, fisiológicos, etc.)


significa desenvolver um modelo matemático representativo deste sistema na forma de uma
EDO e encontrar uma solução desta equação para uma condição inicial particular. Desta
forma, é possível observar o comportamento deste sistema frente a alterações nos parâmetros
deste modelo, bem como a diferentes condições iniciais. Fazer esta simulação
computacionalmente significa poder estudar a resposta desse sistema frente a diferentes
condições sem precisar fazer testes experimentais, que em geral são caros e demorados."
(RELATÓRIO 1)

OBJETIVOS

"Esta aula prática tem por objetivo:


a. apresentar algumas das ferramentas básicas de simulação de modelos matemáticos
do Matlab. Desta forma será possível encontrar a resposta de um sistema de equações
diferenciais ordinárias lineares (com coeficientes que não variam no tempo), de acordo com
as condições iniciais fornecidas.
b. apresentar comandos do Matlab que são úteis na manipulação de funções de
transferência, de modo a simplificar diagramas de blocos. Mostram-se formas de fazer a soma
(addpoly) e a multiplicação (conv) de polinômios, bem como fazer o Matlab tratar funções de
transferência como um “objeto” (tf). Desta forma será possível utilizar comandos que
associam esses objetos em série (series), paralelo (parallel) e em feedback unitário (feedback).
Por fim será analisado como se altera e visualiza a posição dos zeros e dos polos de uma
função de transferência quando se modifica alguns dos seus coeficientes." (RELATÓRIO 1)

EXERCÍCIOS

4.1. (2,5 pontos) Um motor de c.c. aciona um rotor de momento de inércia J sujeito a
atrito viscoso de coeficiente β e preso por uma mola, a uma parede fixa. A entrada é
tensão aplicada ao circuito de armadura Va(t), e a saída a posição angular do rotor θ(t).

2
O campo magnético do motor é produzido por um imã permanente C.I.=0. Dado o
desenho esquemático (Figura 4a) e o diagrama de blocos (Figura 4b) do sistema,
determine:

Resolva os seguintes itens manualmente e computacionalmente:


a. Determine a função de transferência G(s) = θ(s)/ Va(s);

3
b. Escreva a resposta θ(t). Considere a entrada como sendo um degrau unitário. Aplique
a anti-transformada de Laplace para isso;

4
c. Determine polos e zeros de G(s) e faça uma representação gráfica no plano s;

5
Representando o gráfico dos pólos-zeros na programação:

6
d. Determine a resposta do sistema a um degrau de 30V.

7
Dados: Ra = 5Ω; β = 0,2 Nm/(rad/s); Km = 0,5 V/(rad/s); J = 0,05 kg.m2; K = 3 Nm/rad.

4.2. (2,5 pontos) Altere os coeficientes do sistema apresentado na equação 4 de modo que
a ultrapassagem percentual seja de aproximadamente 20%. Apresente os parâmetros a e
b utilizados e a resposta ao degrau unitário do novo sistema. Dica: Você pode alterar os
valores de a e b aleatoriamente, ou calcular o valor de ζ que leva a uma UP=20%.
Resolva o exercício manualmente e computacionalmente.

8
Simulando este sistema para uma entrada de degrau unitário, vemos que sua resposta
se comporta como um sistema subamortecido, com senóide amortecida com envoltória
exponencial, se tornando constante ao longo do tempo, conforme ilustra a Figura 1.
Apresentando pico de 1,2054 em y em 1,5827 s e tempo de assentamento de 4 s.

9
Figura 1: Comparação das respostas do sistema frente a todas as entradas.

Fonte: Os autores

4.3. (2,5 pontos) Utilizando o critério de Routh-Hurwitz, determine a faixa de valores de


K que fazem o sistema da equação 5 ser estável, instável e marginalmente estável.
Considere o sistema com realimentação unitária negativa. Para isso, você deve montar a
tabela de Routh e calcular seus valores, observando como os valores de K na tabela
alteram o comportamento do sistema. Considere K > 0. Com base nas faixas
encontradas, escolha valores de K que fazem com que o sistema seja estável, instável e
marginalmente estável· Plote a saída ao degrau unitário para cada um dos casos de
estabilidade desse sistema, indicando o valor de K usado em cada um. Dica: para obter a
resposta ao degrau unitário você pode utilizar os comandos step ou lsim. Resolva o
exercício manualmente e computacionalmente.

10
Com base nos valores de K encontrados, pode-se plotar a simulação deste sistema
diante a uma entrada degrau unitário, com K escolhidos dentro da faixa de valores para cada
caso.

11
Figura 2: Casos de estabilidade

Fonte: Os autores

4.4. (2,5 pontos) Considerando o exemplo da aula da motocicleta controlada por robô
mostrado na aula de Estabilidade, encontre os possíveis valores de KP e KD para que o
sistema seja estável. Plote um gráfico que relacione os valores de KP e KD com a
estabilidade do sistema. Resolva o exercício computacionalmente. Considere os seguintes
valores para os parâmetros físicos: 𝜏 = 0,2, 𝛼1 = 9, 𝛼2 = 2,7, 𝛼3 = 1,35, ℎ = 1,09, 𝑣 = 2,0, 𝐿
= 1,0, 𝑐 = 1,36 [𝑆𝐼].
O resultado para a estabilidade do sistema é dada por:
F(s) = tal*s^3(1 + Kd*alfa3)s^2 + (Kd*alfa2 + Kp*alfa3 - tal*alfa1)s + Kp*alfa2 - alfa1
F(s) = 0,2*s^3(1 + Kd*1,35)s^2 + (Kd*2,7 + Kp*1,35 - 1,8)s + Kp*2,7 - 9.
Sendo então Kd > -1/a3 = -0.7407407407407407 e Kp > a1/a2 = 3.333333333333333.

12
Figura 3: Valores de KP e KD relacionados com a estabilidade do sistema.

13
CÓDIGO DOS PROGRAMAS

Exercício 4.1.
G = tf([0.5],[0.25,1.25,15]);
pzmap(G) #gráfico pólo-zero

Exercício 4.2.

% Criando valores iniciais e finais de tempo


t0=0;
t1=8;
N=6001;
t=linspace(t0,t1,N);

% Inserindo a equação encontrada de forma manuscrita para realizar a simulação


num = [4.94]; % Vetor com os coeficientes do numerador da função de transferência F
den = [1 2 4.94]; % Vetor com os coeficientes do denominador da função de transferência F
b=den(3)/den(1);
a=den(2)/den(1);
fprintf('Os valores dos coeficientes "a" e "b" escolhidos são %i e %i respectivamente\n',a,b)

% Função de Transferência
F=tf(num,den);

Wn = sqrt(b); % Calculando o valor da Frequência natural (Wn) computacionalmente


Z = a/(2*Wn); % Calculando o valor de relação de amortecimento do sistema
computacionalmente
UP = (100*exp(-Z*pi/sqrt(1-Z^2))); % Calculando o valor da ultrapassagem percentual
fprintf('Dados os valores escolhidos de "a" e "b", a ultrapassagem percentual é de:%.1f\n',UP)

T_assentamento = 4/(Z*On) % Definindo tempo de assentamento do sistema


T_pico = pi/(On*sqrt(1-Z^2)) % Definindo tempo de pico do sistema
Pico = 1+UP/100 % Definindo o local de pico da curva

[Y,T,X] = step(F,t); % Aplicando a função degrau

% Plotando o grafico
figure
hold on
plot(T,Y,'b')
text(T_pico,1+UP/100,'<---PICO','fontsize',8) %Simboliza no grafico onde foi o pico

14
Lx = xlim(); % O comando xlim cria um vetor contendo os limites do eixo x do gráfico
gerado
Ly = ylim(); % Limites do eixo y do grafico
x = Lx(1):0.01:Lx(2); % Criando um vetor que representa os valores do eixo x, com intervalo
de valores sendo os limites deste eixo, espaçados linearmente com passo de 0.01
y = Ly(1):0.01:Ly(2); % Criando um vetor que representa os valores do eixo y, com intervalo
de valores sendo os limites deste eixo, espaçados linearmente com passo de 0.01

plot(x,exp(-x*a/2)+1,'c'); % decaimento exponencial


plot(T_pico*ones(1,length(y)),y,'m');
plot(T_assentamento*ones(1,length(y)),y,'r');
xlabel('Tempo(s)')
ylabel('Y')
title ('Resposta ao step')
legend('Resposta ao degrau unitário', 'Decaimento exponencial', 'Tempo de pico', 'Tempo de
assentamento')
grid on
axis([Lx(1) Lx(2) Ly(1) Ly(2)])
hold off

Exercício 4.3.

clear;
close all;
clc;

Tempo=0:0.1:40; % Vetor de tempos da simulação

k_ME= 30; % Valor de k escolhido para o sistema ser marginalmente estável


k_E = 27; % Valor de k escolhido para o sistema ser estável
k_I = 32; % Valor de k escolhido para o sistema ser instável

% Simulação para que o sistema seja marginalmente estável


NFt_ME=[k_ME]; % Vetor com os coeficientes do numerador da função de transferência
DFt_ME = [1 5 6 k_ME]; % Vetor com os coeficientes do denominador da função de
transferência
Ft_ME = tf(NFt_ME,DFt_ME); % Criando um modelo da função de transferência
[Y,T,X] = step(Ft_ME, Tempo); % Integração da equação do sistema de acordo com uma
entrada degrau unitario

% Simulação para que o sistema seja estável


NFt_E = [k_E];
DFt_E = [1 5 6 k_E];

15
Ft_E = tf(NFt_E,DFt_E);
[Y1,T1,X1] = step(Ft_E, Tempo);

% Simulação para que o sistema seja instável


NFt_I = [k_I];
DFt_I = [1 5 6 k_I];
Ft_I = tf(NFt_I,DFt_I);
[Y2,T2,X2] = step(Ft_I, Tempo);

% Plotando o grafico
figure
plot(T,Y,'b',T1,Y1,'r',T2,Y2,'g')
xlabel('Tempo[s]')
ylabel('Y')
title('Casos de estabilidade do sistema');
legend('Marginalmente Estável (k=30)','Estável (k=27)', 'Instável (k=32)')

Exercício 4.4.
clear
close all
clc
disp('F(s) = tal*s^3(1 + Kd*alfa3)s^2 + (Kd*alfa2 + Kp*alfa3 - tal*alfa1)s + Kp*alfa2 -
alfa1');

disp('F(s) = 0,2*s^3(1 + Kd*1,35)s^2 + (Kd*2,7 + Kp*1,35 - (0,2*9))s + Kp*2,7 - 9');


% para evitar problemas com erros numéricos, todo número abaixo
% da tolerância é considerado como zero

tolerancia = 1e-15;

% cria um vetor de valores de K


Kd = -5:0.5:10;
Kp = -5:0.5:10;

% matriz para guardar o resultado dos testes


estabilidadeKd = ones(3,length(Kd))*nan;
estabilidadeKp = ones(3,length(Kp))*nan;

% testa todos os valores de K


for n = 1:length(Kd)
for m = 1:length(Kp)
dent = [0.2 1+1.35*Kd(n) 2.7*Kd(n)+1.35*Kp(m)-1.8 2.7*Kp(m)-9];
polos = roots(dent);
r = real(polos);
16
if max(r)<-tolerancia % todos os polos no SPE
estabilidadeKd(1,n) = 1;
estabilidadeKp(1,m) = 1;
elseif abs(max(r)) < tolerância % algum polo no eixo imaginário jw
disp('Sistema marginalmente estável')
estabilidadeKd(2,n) = 2;
estabilidadeKp(2,m) = 2;
disp(['Polos: ' num2str(polos')]);
disp(['Kd: ' num2str(Kd(n))]);
disp(['Kp: ' num2str(Kp(n))]);
else % algum polo no SPD
estabilidadeKd(3,n) = 3;
estabilidadeKp(3,m) = 3;
end
end
end

for i = 1:length(Kd)
if estabilidadeKd(1,i)==1
estabilidadeKd(3,i)=NaN;
else
end
end

for i = 1:length(Kp)
if estabilidadeKp(1,i)==1
estabilidadeKp(3,i)=NaN;
else
end
end

figure()
plot(Kd,estabilidadeKd','x');
xlabel('valores de Kd');
ylabel('Estabilidade do sistema (1: estável, 2: marginalmente estável, 3:instável)');
title('Estabilidade');
legend('Estável','Marginalmente estável','Instável');

figure()
plot(Kp,estabilidade p','x');
xlabel('valores de Kp');
ylabel('Estabilidade do sistema (1: estável, 2: marginalmente estável, 3:instável)');
title('Estabilidade');
legend('Estável','Marginalmente estável','Instável');
17
REFERÊNCIAS

ESTB029-17 - Análise e Controle de Sistemas Mecânicos. LABORATÓRIO 01:


SIMULAÇÃO DE SISTEMAS LINEARES E ESTABILIDADE. Universidade Federal do
ABC. 2022.1.

18

Você também pode gostar