Escolar Documentos
Profissional Documentos
Cultura Documentos
FACULDADE DE TECNOLOGIA – FT
PROGRAMA DE PÓS-GADUAÇÃO EM ENGENHARIA ELÉTRICA – PPGEE
MANAUS/AM
2020
1
UNIVERSIDADE FEDERAL DO AMAZONAS – UFAM
FACULDADE DE TECNOLOGIA – FT
PROGRAMA DE PÓS-GADUAÇÃO EM ENGENHARIA ELÉTRICA – PPGEE
MANAUS
2020
2
Homework 3
𝑥 (2)
𝑦𝑛+1 = 𝑦𝑛 + (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )
6
𝑡𝑛+1 = 𝑡𝑛 + 𝑥 (3)
sendo 𝑦𝑛+1 a aproximação pelo método de RK de 𝑦(𝑡𝑛+1 ), 𝑥 a dimensão do passo e a
soma de 𝑘1 + ⋯ + 𝑘4 é uma inclinação estimada onde as variáveis 𝑘 sã obtidas através
da equação (4).
𝑘1 = 𝑓(𝑡𝑛 , 𝑦𝑛 )
𝑥 𝑥
𝑘2 = 𝑓 (𝑡𝑛 + , 𝑦𝑛 + 𝑘1 )
2 2
(4)
𝑥 𝑥
𝑘3 = 𝑓 (𝑡𝑛 + , 𝑦𝑛 + 𝑘2 )
2 2
𝑘4 = 𝑓(𝑡𝑛 + 𝑥, 𝑦𝑛 + 𝑥𝑘1 )
Reescrevendo as equações em equações de primeira ordem, temos:
𝑔1 = 𝑦 = 𝜓, 𝑔1̇ = 𝑦̇ = 𝜓
(5)
𝑔2 = 𝑔1̇ = 𝜓̇, 𝑔2̇ = 𝑔1̈ = 𝜓̈
3
Utilizando o algoritmo de 4ª ordem de Runge-Kutta, obtemos a saída do y(t),
mostrada na Figura (1), para a entrada u(t) apresentada na equação (2). O algoritmo
utilizado para obtermos esta saída é apresentado em anexo.
Figura 1- Comparação de saídas de link robótico usando ODE45 e utilizando Runge-Kutta de 4ª ordem
ANEXO
Código
Função do link robótico motorizado
function dydt = robo(t,y)
u = (10^(-5))*sign(sin(0.2*pi*t));
dydt = [y(2); ( -64*sin(y(1)) -5*y(2) + 4*(10^4)*u)];
end
Obtenção da saída
% Homework 3
close all; clear all; clc;
% Inicio
x = 0.001; %tamanho do passo
t = 0:x:20;
[t,saida] = ode45(@robo,t,[0; 0]);
y = zeros(2,length(t));
4
for j=1:(length(t)-1)
k_1 = robo(t(j),y(:,j));
k_2 = robo(t(j)+x/2,y(:,j)+(x/2)*k_1);
k_3 = robo((t(j)+x/2),(y(:,j)+(x/2)*k_2));
k_4 = robo((t(j)+x),(y(:,j)+k_3*x));
y(:,j+1) = y(:,j) + (1/6)*(k_1+2*k_2+2*k_3+k_4)*x;
end
%Figura
figure(1)
plot(t,y(1,:), 'b-', 'lineWidth', 3); hold on;
plot(t,saida(:,1),'r--', 'lineWidth', 3)
title('Saída do Sistema');
xlabel('Tempo (t)');
ylabel('Saída (y)');
legend('y usando ODE45','y usando Runge-Kutta 4ª ordem');
grid on;