clc; clear; close all;
% Parámetros
r = 50; L = 250; d = 150;
w = 10.28; % rad/s
% Ángulo theta (grados y radianes)
theta = 0:1:360;
th = deg2rad(theta);
% Cálculos geométricos
cos_tp = (d/r - sin(th)) / (L/r);
cos_tp = min(max(cos_tp, -1), 1); % evitar dominio inválido
tp = acos(cos_tp);
sin_tp = sqrt(1 - cos_tp.^2);
% Velocidad de D y velocidad angular de BD
vD = r*w .* cos(tp - th) .* sin_tp;
wBD = (r*w/L) .* sin(tp - th);
% Encontrar los ángulos donde vD = 0 (cambio de signo)
idx = find(diff(sign(vD)) ~= 0);
th_zero = theta(idx);
% Aseguramos los dos ceros principales (aprox 150° y 310°)
if length(th_zero) < 2
th_zero = [150 310];
end
% --- GRAFICO 1: Velocidad de D ---
figure('Color',['b' ...
'']);
plot(theta, vD, 'g', 'LineWidth', 1.8); hold on; grid on;
plot(th_zero, [0 0], 'ro', 'MarkerFaceColor','r');
xlabel('angulo°');
ylabel('v_D (mm/s)');
title('Velocidad de D');
for i = 1:length(th_zero)
text(th_zero(i)+3, 0, sprintf('%.1f°', th_zero(i)), ...
'Color','y','FontWeight','bold','HorizontalAlignment','left');
end
% --- GRAFICO 2: Velocidad angular de BD ---
figure('Color','b');
plot(theta, wBD, 'g', 'LineWidth', 1.8); hold on; grid on;
xlabel('grados °');
ylabel('WBD(rad/s)');
title('Velocidad angular de la barra BD');
1
2
Published with MATLAB® R2025b