Está en la página 1de 11

TALLER PROGRAMACIÓN EN MATLAB

LINA MARIU CABEZAS CLAVIJO – 1007405757

REVISADO POR:
Marisol Cano
Ingenieria Electrónica

Titular de la asignatura:
Ondas

PROGRAMA DE INGENIERÍA CIVIL

FACULTAD DE INGENIERÍA

UNIVERSIDAD DEL QUINDÍO

ARMENIA
Fecha
26-05-2022
1. Programa 1

%%Sistemas armonicos simples

clear all;
close all;

fprintf('Bienvenido, el siguiente programa le permitira manejar el


sistema oscilador armonico simple con el cual desea trabajar,\n');
fprintf('debe tener en cuenta el numero correspondiente al sistema que de
sea manejar.\n');

fprintf('1 - Sistema masa resorte\n');


fprintf('2 - Pendulo simple\n');
fprintf('3 - Pendulo fisico\n');
p=pi;

s=input('Ingrese el número: ');

if (s==1) %%Sistema masa resorte

fprintf('Eligio el sistema masa resorte,ingrese los siguiente


valores\n');

%%Datos del sistema masa resorte


k1=input('Constante del resorte (N): ');
a1=input('Amplitud (m): ');
m1=input('Masa (kg): ');

%%Operaciones realizadas para hallar los demas valores


t1=2*p*sqrt(m1/k1);
s1=fprintf('Periodo (s): %g \n',t1);

f1=1/t1;
s2=fprintf('Frecuencia (Hz): %g \n',f1);

w1=2*p*f1;
s3=fprintf('Frecuencia angular (m/s): %g \n',w1);

v1=a1*w1;
s4=fprintf('Velocidad (m/s): %g \n',v1);

ac1=a1*w1^2;
s5=fprintf('Aceleración (m/s^2): %g \n',ac1);

ec11=1/2*m1*v1^2;
s6=fprintf('Energía cinetica (J): %g \n',ec11);

ep11=1/2*k1*a1^2;
s7=fprintf('Energia potencial (J): %g \n',ep11);

et11=ep11+ec11;
s8=fprintf('Energía total (J): %g \n',et11);
%%Funciones para las graficas
x1=0:0.1:10;

y1=a1*cos(x1*w1); %%Elongación en función del tiempo

y2=-a1*w1*sin(x1*w1); %%Velocidad en función del tiempo

y3=-a1*w1^2*cos(x1*w1); %%Aceleración en función del tiempo

yec1=1/2*m1*y2.^2; %%Energía cinetica


yep1=1/2*k1*y1.^2; %%Energia potencial
yet1=yec1+yep1; %%Energia total

%%Graficas
subplot(2,2,1);plot(x1,y1);title('Posición vs Tiempo');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...
hold on
subplot(2,2,2);plot(x1,y2);title('Velocidad vs
Tiempo');xlabel('Tiempo (s)');ylabel('Velocidad (m/s)');grid on;...
hold on
subplot(2,2,3);plot(x1,y3);title('Aceleración vs
Tiempo');xlabel('Tiempo (s)');ylabel('Aceleración (m/s^2)');grid on;...
hold on
subplot(2,2,4);plot(x1,yec1);title('Energia cinetica');xlabel('Tiempo
(s)');ylabel('Energia (J)');grid on;...
hold on
subplot(2,2,4);plot(x1,yep1);title('Energia
potencial');xlabel('Tiempo (s)');ylabel('Energia (J)');grid on;...
hold on
subplot(2,2,4);plot(x1,yet1);title('Energia Total');xlabel('Tiempo
(s)');ylabel('Energia (J)');grid on;...
end

if (s==2) %%Sistema de pendulo simple

fprintf('Eligio el sistema pendulo simple,ingrese los siguientes


valores\n');

%%Datos para el sistema de pendulo simple


g=9.81;
l=input('Longitud (m): ');
m2=input('Masa (kg): ');
a2=input('Posición angular (°): ');
angdg=input('Angulo de desface (°): ');

%%Operaciones realizadas para hallar los demas datos


angdr=angdg*(p/180);

ar=a2*(p/180);
u1=fprintf('Posición angular (rad): %g \n',ar);

t2=2*p*sqrt(l/g);
u2=fprintf('Periodo (s): %g \n',t2);
f2=(1/(2*p))*(sqrt(g/l));
u3=fprintf('Frecuencia (Hz): %g \n',f2);

w2=2*p*f2;
u4=fprintf('Frecuencia angular (rad/s): %g \n',w2);

xf=(ar*cos(w2*t2+angdr));

v2=(-ar*w2*sin(w2*t2+angdr));
u5=fprintf('Velocidad (rad/s): %g \n',v2);

ac2=(-ar*w2^2*cos(w2*t2+angdr));
u6=fprintf('Aceleración (rad/s^2): %g \n',ac2);

ec12=1/2*m2*v2^2;
u7=fprintf('Energía cinetica (J): %g \n',ec12);

ep12=m2*g*(l-l*cos(ar));
u8=fprintf('Energia potencial (J): %g \n',ep12);

et12=ep12+ec12;
u9=fprintf('Energía total (J): %g \n',et12);

%%Funciones para las graficas


x2=0:0.10:10;

y5=(ar*cos(w2*x2+angdr)); %%Elongación en función del tiempo

y6=(-ar*w2*sin(w2*x2+angdr)); %%Velocidad en función del tiempo

y7=(-ar*w2^2*cos(w2*x2+angdr)); %%Aceleración en función del tiempo

yec2=(1/2)*m2*(2*g*l*(cos(y5)-cos(ar))); %%Energía cinetica


yep2=m2*g*(l-l*cos(y5)); %%Energia potencial
yet2=yec2+yep2; %%Energia total

%%Graficas
subplot(2,2,1);plot(x2,y5);title('Posición vs Tiempo');xlabel('Tiempo
(s)');ylabel('Posición (rad)');grid on;...
hold on;
subplot(2,2,2);plot(x2,y6);title('Velocidad vs
Tiempo');xlabel('Tiempo (s)');ylabel('Velocidad (rad/s)');grid on;...
hold on;
subplot(2,2,3);plot(x2,y7);title('Aceleración vs
Tiempo');xlabel('Tiempo (s)');ylabel('Aceleración (rad/s^2)');grid on;...
hold on;
subplot(2,2,4);plot(x2,yec2);title('Energia cinetica');xlabel('Tiempo
(s)');ylabel('Energia (J)');grid on;...
hold on;
subplot(2,2,4);plot(x2,yep2);title('Energia
potencial');xlabel('Tiempo (s)');ylabel('Energia (J)');grid on;...
hold on
subplot(2,2,4);plot(x2,yet2);title('Energia Total');xlabel('Tiempo
(s)');ylabel('Energia (J)');grid on;...
end

if (s==3) %%Sistema de pendulo fisico

fprintf('Eligio el sistema pendulo fisico,ingrese los siguientes


valores\n');

%%Datos del pendulo fisico


g=9.81;
d=input('Distancia del pivote al centro de la masa (m): ');
m3=input('Masa (kg): ');
a3=input('Posición angular (°): ');
agd2=input('Angulo de desface (°): ');
i=input('Momento de inercia (kg/m^2): ');

%%Operaciones realizadas para hallar los demas datos


ar3=a3*(p/180);
r1=fprintf('Posición angular (rad): %g \n',ar3);

w3=sqrt((m3*g*d)/i);
r2=fprintf('Frecuencia angular (): %g \n',w3);

t3=2*p*w3;
r3=fprintf('Periodo (rad/s): %g \n',t3);

v3=(-ar3*w3*cos(w3*t3+agd2));
r4=fprintf('Velocidad (rad/s): %g \n',v3);

ac3=(-ar3*w3^2*cos(w3*t3+agd2));
r5=fprintf('Aceleración (rad/s^2): %g \n',ac3);

%%Funciones para las graficas


x3=0:0.1:10;

y9=ar3*cos(x3*w3+agd2); %%Elongación en función del tiempo

y10=-ar3*w3*sin(x3*w3+agd2); %%Velocidad en función del tiempo

y11=-ar3*w3^2*cos(x3*w3+agd2); %%Aceleración en función del tiempo

yec3=(1/2)*m3*(2*g*d*(cos(y9)-cos(ar3))); %%Energía cinetica


yep3=m3*g*(d-d*cos(y9)); %%Energía potencial
yet3=yec3+yep3; %%Energía total

%%Graficas
subplot(2,2,1);plot(x3,y9);title('Posición vs Tiempo');xlabel('Tiempo
(s)');ylabel('Posición (rad)');
hold on;
subplot(2,2,2);plot(x3,y10);title('Velocidad vs
Tiempo');xlabel('Tiempo (s)');ylabel('Velocidad (rad/s)');
hold on;
subplot(2,2,3);plot(x3,y11);title('Aceleración vs
Tiempo');xlabel('Tiempo (s)');ylabel('Aceleración (rad/s^2)');
hold on;
subplot(2,2,4);plot(x3,yec3);title('Energia cinetica');xlabel('Tiempo
(s)');ylabel('Energia (J)');
hold on
subplot(2,2,4);plot(x3,yep3);title('Energia
potencial');xlabel('Tiempo (s)');ylabel('Energia (J)');
hold on
subplot(2,2,4);plot(x3,yet3);title('Energia Total');xlabel('Tiempo
(s)');ylabel('Energia (J)');
end

if (s>=4) %%Repuesta si la persona se equivoca de número

fprintf('El número ingresado no corresponde a ningún sistema');


end

2. Programa 2, ejercicio 71

%%Problema 71 serway
clear all;
close all;

fprintf('Bienvenido, el siguiente programa le permitira manejar 2


sistemas de masa resorte. \n');
fprintf('Seleccione cual de los dos sistemas desea manejar.\n');

fprintf('1 - Sitema masa resorte con 2 resortes unidos\n');


fprintf('2 - Sistema masa resorte con 2 res0rtes, cada uno a un extremo
del bloque\n');

s=input('Ingrese el número: ');


p=pi;

if (s==1) %%Resorte acoplados unidos

fprintf('Eligio el sistema que maneja 2 resorte conectados, ingrese


los valores necesarios. \n');

%%Datos del sistema


k1=input('Constante de resorte 1 (N): ');
k2=input('Constante de resorte 2 (N): ');
m1=input('Masa (kg): ');
a1=input('Amplitud (m): ');

%%Operaciones realizadas para hallar los demas datos


t1=2*p*sqrt((m1*(k1+k2))/(k1*k2));
z1=fprintf('Periodo (s): %g \n',t1);

f1=1/t1;
z2=fprintf('Frecuencia (Hz): %f \n',f1);

w1=2*p*f1;
z3=fprintf('Frecuencia angular (rad/s): %r \n',w1);

v1=a1*w1;
z4=fprintf('Velocidad (m/s): %g \n',v1);

ac=a1*w1^2;
z5=fprintf('Aceleración (m/s^2): %e \n',ac);

kt1=(k1*k2)/(k1+k2);

ec11=1/2*m1*v1^2;
s6=fprintf('Energía cinetica (J): %g \n',ec11);

ep11=1/2*kt1*a1^2;
s7=fprintf('Energia potencial (J): %g \n',ep11);

et11=ep11+ec11;
s8=fprintf('Energía total (J): %g \n',et11);

%%Funciones para las graficas


x1=0:0.1:10;
y1=a1*cos(x1*w1); %%Elongación en función del tiempo

y2=-a1*w1*sin(x1*w1); %%Velocidad en función del tiempo

y3=-a1*w1^2*cos(x1*w1); %%Aceleración en función del tiempo

yec1=1/2*m1*y2.^2; %%Energía cinetica


yep1=1/2*kt1*y1.^2; %%Energía potencial
yet1=yec1+yep1; %%Energía total

%%Graficas
subplot(2,2,1);plot(x1,y1);title('Posición vs Tiempo');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...
hold on
subplot(2,2,2);plot(x1,y2);title('Velocidad vs
Tiempo');xlabel('Tiempo (s)');ylabel('Velocidad (m/s)');grid on;...
hold on
subplot(2,2,3);plot(x1,y3);title('Aceleración vs
Tiempo');xlabel('Tiempo (s)');ylabel('Aceleración (m/s^2)');grid on;...
hold on
subplot(2,2,4);plot(x1,yec1);title('Energia cinetica');xlabel('Tiempo
(s)');ylabel('Energia (J)');grid on;...
hold on
subplot(2,2,4);plot(x1,yep1);title('Energia
potencial');xlabel('Tiempo (s)');ylabel('Energia (J)');grid on;...
hold on
subplot(2,2,4);plot(x1,yet1);title('Energia Total');xlabel('Tiempo
(s)');ylabel('Energia (J)');grid on;...
end

if (s==2) %%Sistema con resorte a cada lado de la masa

fprintf('Eligio el sistema que maneja 1 resorte a cada lado, ingrese


los valores necesarios. \n ');

%%Datos del sistema


k3=input('Constante de resorte 1 (N): ');
k4=input('Constante de resorte 2 (N): ');
m2=input('Masa (kg): ');
a2=input('Amplitud (m): ');

%%Operaciones realizadas para hallar los demas datos


t2=2*p*sqrt((m2)/(k3+k4));
l=fprintf('Periodo (s): %g \n',t2);

f1=1/t2;
d=fprintf('Frecuencia (Hz): %f \n',f1);

w2=2*p*f1;
y=fprintf('Frecuencia angular (rad/s): %r \n',w2);

v1=a2*w2;
z=fprintf('Velocidad (m/s): %g \n',v1);
ac1=a2*w2^2;
b=fprintf('Aceleración (m/s^2): %e \n',ac1);

kt2=k3+k4;

%%Funciones para las graficas


x2=0:0.1:10;

y4=a2*cos(x2*w2); %%Elongación en función del tiempo

y5=-a2*w2*sin(x2*w2); %%Velocidad en función del tiempo

y6=-a2*w2^2*cos(x2*w2); %%Aceleración en función del tiempo

yec2=1/2*m2*y5.^2; %%Energía cinetica


yep2=1/2*kt2*y4.^2; %%Energía potencial
yet2=yec2+yep2; %%Energía total

%%Graficas
subplot(2,2,1);plot(x2,y4);title('Posición vs Tiempo');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...
hold on
subplot(2,2,2);plot(x2,y5);title('Velocidad vs
Tiempo');xlabel('Tiempo (s)');ylabel('Velocidad (m/s)');grid on;...
hold on
subplot(2,2,3);plot(x2,y6);title('Aceleración vs
Tiempo');xlabel('Tiempo (s)');ylabel('Aceleración (m/s^2)');grid on;...
hold on
subplot(2,2,4);plot(x2,yec2);title('Energia cinetica');xlabel('Tiempo
(s)');ylabel('Energia (J)');grid on;...
hold on
subplot(2,2,4);plot(x2,yep2);title('Energia
potencial');xlabel('Tiempo (s)');ylabel('Energia (J)');grid on;...
hold on
subplot(2,2,4);plot(x2,yet2);title('Energia Total');xlabel('Tiempo
(s)');ylabel('Energia (J)');grid on;...
end

if (s>=3)

fprintf('El número ingresado no corresponde a ningún sistema');


end

3. Programa 3, ondas estacionarias combinadas

%%Ondas estacioanrias combinadas

clear all;
close all;
fprintf('Una cuerda de guitarra de longitud L se puntea de modo que la
onda producida \n');
fprintf('es la suma de la fundamental y el segundo armonico. \n');
fprintf('Ingrese los datos necesarios. \n');

p=pi;

%%Datos solicitados
L=input('longitud (m): ');
a1=input('Amplitud (m): ');
m=input('Masa de la cuerda (kg): ');
t1=input('Tensión fundamental: ');
t2=input('Periodo fundamental (s): ');

%%Operaciones realizadas
u=(m/L);
fprintf('Densidad lineal de la masa: %g \n',u);

a2=(a1/2)*sqrt(2);
fprintf('Amplitud segundo armonico (m): %g \n',a2);

t3=t2/2;
fprintf('Periodo segundo armonico (s): %g \n',t3);

k1=((2*p)/t2);
fprintf('Número de onda angular fundamental: %g \n',k1);

k2=((2*p)/t3);
fprintf('Número de onda angular sengudo armonico: %g \n',k2);

v=sqrt(t1/u);
fprintf('Velocidad (m/s): %g \n',v);

w1=v*k1;
fprintf('Frecuencia angular fundamental (m/s): %g \n',w1);

w2=v*k2;
fprintf('Frecuencia angular segundo armonico (m/): %g \n',w2);

%%Ecuaciones para las graficas


xd=0:0.10:15;

y1=a1*sin(w1)*sin(xd*k1); %%Fundamental

y2=a2*sin(w2)*sin(xd*k2); %%Segundo armonico

yt=y1+y2; %%Onda estacionaria

subplot(2,2,1);plot(xd,y1);title('Fundamental');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...
hold on
subplot(2,2,2);plot(xd,y2);title('Segundo armonico');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...
hold on
subplot(2,2,3);plot(xd,yt);title('Onda estacionaria');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...
hold on
subplot(2,2,4);plot(xd,y1);title('Fundamental');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...
hold on
subplot(2,2,4);plot(xd,y2);title('Segundo armonico');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...
hold on
subplot(2,2,4);plot(xd,yt);title('Onda estacionaria');xlabel('Tiempo
(s)');ylabel('Posición (m)');grid on;...

%%Preguntas

%%Datos para conocer los nodos de y1


ny1=t2/2;
fprintf('Los nodos de y1 se encuentran separados cada %g (m) entre si \
n',ny1);

Nodosy1=["Nodo 1";"Nodo 2";"Nodo 3";"Nodo 4";"Nodo 5"];

vx1=ny1;
vx2=2*ny1;
vx3=3*ny1;
vx4=4*ny1;
vx5=5*ny1;

Posicionesy1=[vx1;vx2;vx3;vx4;vx5];

Tabla1=table(Nodosy1,Posicionesy1) %%Tabla de y1

%%Datos para conocer los nodos de y2


ny2=t3/2;
fprintf('Lo nodos de y2 se encuentran separados cada %g (m) entre si \
n',ny2);

Nodosy2=["Nodo 1";"Nodo 2";"Nodo 3";"Nodo 4";"Nodo 5"];

vvx1=ny2;
vvx2=2*ny2;
vvx3=3*ny2;
vvx4=4*ny2;
vvx5=5*ny2;

Posicionesy2=[vvx1;vvx2;vvx3;vvx4;vvx5];

Tabla2=table(Nodosy2,Posicionesy2) %%Tabla de y2

También podría gustarte