Programación Del Curso Dinámica II en Matlab

164
________________________________________________________________________ _____ Laboratorio de Dinámica II Universidad Nacional de Trujillo PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB ________________________________________________________________________ _____ PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB 1.1. PROGRAMACIÓN DE LA ROTACIÓN ALREDEDOR DE UN PUNTO FIJO A. ¿QUÉ ES UNA ROTACIÓN ALREDEDOR DE UN PUNTO FIJO? Cuando un cuerpo rígido gira alrededor de un eje o un punto fijo, la distancia r del punto de una partícula localizada en el cuerpo de la misma para cualquier posición del cuerpo. Por tanto, la trayectoria del movimiento de la partícula queda en la superficie de una esfera de radio r con su centro en el punto fijo. Escuela de Ingeniería Mecánica 1 Dr. Jorge A. Olortegui Yume, Ph.D. Velocidad Angular : Si un cuerpo se somete a una rotación angular dθ alrededor de un punto fijo, la velocidad angular del cuerpo se define por medio de la derivada respecto al tiempo, ˙ ϴ=ω La línea que especifica la dirección Dinámica, R.C. Hibbeler, 12º Edición Figura 1-a Aceleración Angular : La aceleración angular del cuerpo se determina con la derivada con respecto al tiempo de su velocidad angular, es decir, ˙ ω=α

description

Programación en MATLAB de Cinemática y Cinética en 3D y de Teoría de Vibraciones.

Transcript of Programación Del Curso Dinámica II en Matlab

Page 1: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB

1.1. PROGRAMACIÓN DE LA ROTACIÓN ALREDEDOR DE UN PUNTO FIJO

A. ¿QUÉ ES UNA ROTACIÓN ALREDEDOR DE UN PUNTO FIJO?

Cuando un cuerpo rígido gira alrededor de un eje o un punto fijo, la distancia r del punto de una partícula localizada en el cuerpo de la misma para cualquier posición del cuerpo. Por tanto, la trayectoria del movimiento de la partícula queda en la superficie de una esfera de radio r con su centro en el punto fijo.

Escuela de Ingeniería Mecánica 1 Dr. Jorge A. Olortegui Yume, Ph.D.

Velocidad Angular: Si un cuerpo se somete a una rotación angular dθ alrededor de un punto fijo, la velocidad angular del cuerpo se define por medio de la derivada respecto al tiempo,

˙ϴ=ω

La línea que especifica la dirección de ω, la cual es colonial con dθ se conoce como eje de rotación instantáneo, figura 1-a. En general este eje cambia de dirección durante cada instante.

Dinámica, R.C. Hibbeler, 12º Edición

Figura 1-a

Aceleración Angular: La aceleración angular del cuerpo se determina con la derivada con respecto al tiempo de su velocidad angular, es decir,

˙ω=α

Para el movimiento con respecto a un punto fijo, α debe responder del cambio tanto de magnitud como de dirección ω, asi que en general, la dirección de α no es a lo largo del eje instantáneo de rotación, figura 1-b.

Velocidad: Con ω especificada, la velocidad de cualquier punto en un cuerpo que gira alrededor de un punto fijo se determina con los mismos métodos utilizados para un cuerpo que gira alrededor de un

Figura 1-b

Page 2: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

B. EL DIAGRAMA DE FLUJO CORRESPONDIENTE: IF - ELSEIF - ELSE

¿Cómo utilizar la programación IF - ELSEIF - ELSE?

1. Si se verifica la condición 1, ejecutar las instrucciones del bloque 1.2. Si no se verifica la condición 1, pero SI se verifica la condición 2,

ejecutar las instrucciones del bloque 2.3. Si no, esto es, si no se ha verificado ninguna de las condiciones

anteriores, ejecutar las instrucciones del bloque 3.En cualquiera de los casos, el flujo del programa continua por la instrucción siguiente a la estructura IF - ELSEIF - ELSE.

Escuela de Ingeniería Mecánica 2 Dr. Jorge A. Olortegui Yume, Ph.D.

En la estructura IF - ELSEIF - ELSE se puede multiplicar la cláusula ELSEIF, obteniéndose así una “cascada" de condiciones, como se muestra en el organigrama, cuyo funcionamiento es claro.

En este tipo de estructura condicional, la cláusula ELSE junto con su bloque de instrucciones puede no estar presente.

Las distintas estructuras condicionales descritas pueden ser anidadas, es decir, puede incluirse una estructura IF (de cualquier tipo), como parte de las instrucciones que forman el bloque de uno

Aceleración Angular: La aceleración angular del cuerpo se determina con la derivada con respecto al tiempo de su velocidad angular, es decir,

˙ω=α

Para el movimiento con respecto a un punto fijo, α debe responder del cambio tanto de magnitud como de dirección ω, asi que en general, la dirección de α no es a lo largo del eje instantáneo de rotación, figura 1-b.

Velocidad: Con ω especificada, la velocidad de cualquier punto en un cuerpo que gira alrededor de un punto fijo se determina con los mismos métodos utilizados para un cuerpo que gira alrededor de un

Dinámica, R.C. Hibbeler, 12º Edición

Page 3: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

C. CODIFICACIÓN DEL PROGRAMA

%Vector Posicion:O=input('Ingrese las coordenadas del punto fijo, ejemplo[5 3 6]: ');P=input('Ingrese las coordenadas del punto de analisis, ejemplo[5 3 6]: ');R=P-O;%Velocidad Angular del Cuerpo Rigidon=input('¿Cuantas velocidades angulares tiene el problema?: ');if n==1 W1=input('Ingrese la primera velocidad angular, ejemplo[5 3 6]: '); W=W1;elseif n==2 W1=input('Ingrese la primera velocidad angular, ejemplo[5 3 6]: '); W2=input('Ingrese la segunda velocidad angular, ejemplo[5 3 6]: '); W=W1+W2;elseif n==3 W1=input('Ingrese la primera velocidad angular, ejemplo[5 3 6]: '); W2=input('Ingrese la segunda velocidad angular, ejemplo[5 3 6]: '); W3=input('Ingrese la tercera velocidad angular, ejemplo[5 3 6]: '); W=W1+W2+W3;elseif n==4 W1=input('Ingrese la primera velocidad angular, ejemplo[5 3 6]: '); W2=input('Ingrese la segunda velocidad angular, ejemplo[5 3 6]: '); W3=input('Ingrese la tercera velocidad angular, ejemplo[5 3 6]: '); W4=input('Ingrese la cuarta velocidad angular, ejemplo[5 3 6]: '); W=W1+W2+W3+W4;elseif n==5 W1=input('Ingrese la primera velocidad angular, ejemplo[5 3 6]: '); W1=input('Ingrese la segunda velocidad angular, ejemplo[5 3 6]: '); W1=input('Ingrese la tercera velocidad angular, ejemplo[5 3 6]: '); W1=input('Ingrese la cuarta velocidad angular, ejemplo[5 3 6]: '); W1=input('Ingrese la quinta velocidad angular, ejemplo[5 3 6]: '); W=W1+W2+W3+W4+W5;else disp('Demasiadas velocidades angulares');enddisp('La velocidad angular del cuerpo rigido es:');disp(W);%Aceleracion Angular del Cuerpo Rigido:Wejes=input('Defina el vector con el cual los ejes rotan: ');if n==1 %Primera Aceleracion Angular del Cuerpo Rigido

Escuela de Ingeniería Mecánica 3 Dr. Jorge A. Olortegui Yume, Ph.D.

En la estructura IF - ELSEIF - ELSE se puede multiplicar la cláusula ELSEIF, obteniéndose así una “cascada" de condiciones, como se muestra en el organigrama, cuyo funcionamiento es claro.

En este tipo de estructura condicional, la cláusula ELSE junto con su bloque de instrucciones puede no estar presente.

Las distintas estructuras condicionales descritas pueden ser anidadas, es decir, puede incluirse una estructura IF (de cualquier tipo), como parte de las instrucciones que forman el bloque de uno

Page 4: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ D1=menu('¿La primera velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D1 case 1 AWR1=input('Ingrese la primera aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT1=AWR1+cross(Wejes,W1); case 2 AWR1=[0 0 0]; AWT1=AWR1+cross(Wejes,W1); endAW=AWT1;endif n==2 %Primera Aceleracion Angular del Cuerpo Rigido D1=menu('¿La primera velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D1 case 1 AWR1=input('Ingrese la primera aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT1=AWR1+cross(Wejes,W1); case 2 AWR1=[0 0 0]; AWT1=AWR1+cross(Wejes,W1); end %Segunda Aceleracion Angular del Cuerpo Rigido D2=menu('¿La segunda velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D2 case 1 AWR2=input('Ingrese la segunda aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT2=AWR2+cross(Wejes,W2); case 2 AWR2=[0 0 0]; AWT2=AWR2+cross(Wejes,W2); endAW=AWT1+AWT2;endif n==3 %Primera Aceleracion Angular del Cuerpo Rigido D1=menu('¿La primera velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D1 case 1 AWR1=input('Ingrese la primera aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT1=AWR1+cross(Wejes,W1); case 2

Escuela de Ingeniería Mecánica 4 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 5: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ AWR1=[0 0 0]; AWT1=AWR1+cross(Wejes,W1); end %Segunda Aceleracion Angular del Cuerpo Rigido D2=menu('¿La segunda velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D2 case 1 AWR2=input('Ingrese la segunda aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT2=AWR2+cross(Wejes,W2); case 2 AWR2=[0 0 0]; AWT2=AWR2+cross(Wejes,W2); end %Tercera Aceleracion Angular del Cuerpo Rigido D3=menu('¿La tercera primera velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D3 case 1 AWR3=input('Ingrese la tercera aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT3=AWR3+cross(Wejes,W3); case 2 AWR3=[0 0 0]; AWT3=AWR3+cross(Wejes,W3); endAW=AWT1+AWT2+AWT3;endif n==4 %Primera Aceleracion Angular del Cuerpo Rigido D1=menu('¿La primera velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D1 case 1 AWR1=input('Ingrese la primera aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT1=AWR1+cross(Wejes,W1); case 2 AWR1=[0 0 0]; AWT1=AWR1+cross(Wejes,W1); end %Segunda Aceleracion Angular del Cuerpo Rigido D2=menu('¿La segunda velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D2 case 1 AWR2=input('Ingrese la segunda aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: ');

Escuela de Ingeniería Mecánica 5 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 6: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ AWT2=AWR2+cross(Wejes,W2); case 2 AWR2=[0 0 0]; AWT2=AWR2+cross(Wejes,W2); end %Tercera Aceleracion Angular del Cuerpo Rigido D3=menu('¿La tercera velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D3 case 1 AWR3=input('Ingrese la tercera aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT3=AWR3+cross(Wejes,W3); case 2 AWR3=[0 0 0]; AWT3=AWR3+cross(Wejes,W3); end %Cuarta Aceleracion Angular del Cuerpo Rigido D4=menu('¿La cuarta velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D4 case 1 AWR4=input('Ingrese la cuarta aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT4=AWR4+cross(Wejes,W4); case 2 AWR4=[0 0 0]; AWT4=AWR4+cross(Wejes,W4); endAW=AWT1+AWT2+AWT3+AWT4;endif n==5 %Primera Aceleracion Angular del Cuerpo Rigido D1=menu('¿La primera velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D1 case 1 AWR1=input('Ingrese la primera aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT1=AWR1+cross(Wejes,W1); case 2 AWR1=[0 0 0]; AWT1=AWR1+cross(Wejes,W1); end %Segunda Aceleracion Angular del Cuerpo Rigido D2=menu('¿La segunda velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D2 case 1

Escuela de Ingeniería Mecánica 6 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 7: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ AWR2=input('Ingrese la segunda aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT2=AWR2+cross(Wejes,W2); case 2 AWR2=[0 0 0]; AWT2=AWR2+cross(Wejes,W2); end %Tercera Aceleracion Angular del Cuerpo Rigido D3=menu('¿La tercera velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D3 case 1 AWR3=input('Ingrese la tercera aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT3=AWR3+cross(Wejes,W3); case 2 AWR3=[0 0 0]; AWT3=AWR3+cross(Wejes,W3); end %Cuarta Aceleracion Angular del Cuerpo Rigido D4=menu('¿La cuarta velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D4 case 1 AWR4=input('Ingrese la cuarta aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT4=AWR4+cross(Wejes,W4); case 2 AWR4=[0 0 0]; AWT4=AWR4+cross(Wejes,W4); end %Quinta Aceleracion Angular del Cuerpo Rigido D5=menu('¿La quinta velocidad angular tiene aceleracion relativa a los ejes rotatorios?',... 'si',... 'no'); switch D5 case 1 AWR5=input('Ingrese la quinta aceleracion angular relativa a los ejes rotatorios, ejemplo[5 3 6]: '); AWT5=AWR5+cross(Wejes,W5); case 2 AWR5=[0 0 0]; AWT5=AWR5+cross(Wejes,W5); endAW=AWT1+AWT2+AWT3+AWT4+AWT5;enddisp('La aceleracion Angular es:');disp(AW)%VelocidadV=cross(W,R);disp('La Velocidad del punto es:');disp(V);%Aceleracion

Escuela de Ingeniería Mecánica 7 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 8: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________A=cross(AW,R)+cross(W,cross(W,R));disp('La Aceleracion del punto es:');disp(A);

D. EJECUCIÓN DEL PROGRAMA

El disco de la figura gira alrededor de su eje a una velocidad angular constante vs = 3 rad/s, mientras que la plataforma horizontal sobre la cual está montado el disco gira alrededor del eje vertical a una velocidad constante vp = 1 rad/s. Determine la aceleración angular del disco y la velocidad y aceleración del punto A del disco cuando está en la posición mostrada.

Datos:

Coordenadas del punto fijo: [0 0 0]Coordenadas del punto de análisis: [0 1 0.25]Velocidades angulares: 2Velocidad angular 1: [0 0 -1]Velocidad angular 2: [0 3 0]

Escuela de Ingeniería Mecánica 8 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 9: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

SOLUCIÓN EN MATLAB

1. Primero ejecutaremos el archivo function: RAPF (Rotación alrededor de un punto fijo), nos aparece una ventana de presentación del mismo.

2. Ingresamos los datos pedidos por el programa coordenadas del punto fijo, coordenadas del punto a analizar. Utilizamos la opción para dos velocidades angulares como indica el problema. Obteniendo así la velocidad angular del sistema

Escuela de Ingeniería Mecánica 9 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 10: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

3. Definir el vector en el cual los ejes rotan, podría ser primera velocidad angular o segunda velocidad angular, para este caso es la primera velocidad angular. Luego especificar si cada velocidad angular tiene aceleración relativa a los ejes rotatorios

Escuela de Ingeniería Mecánica 10 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 11: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

1.2. PROGRAMACIÓN DEL MOVIMIENTO GENERAL CON EJES TRASLADANTES

A. ¿A QUÉ SE LE LLAMA MOVIMIENTO GENERAL?

En la figura se muestra un cuerpo en 3D sometido a movimiento general, con una velocidad angular ω y una aceleración angular α. Si el punto A tiene un movimiento de vA

y aA, el movimiento de un punto arbitrario B se determinará haciendo un análisis de movimiento relativo.

Si el origen del sistema de coordenadas trasladante x, y, z (Ω = 0) se encuentra en el punto de referencia A, entonces en el instante mostrado el sistema puede considerarse como la suma de una traslación instantánea del cuerpo que tiene un movimiento de vA y aA, y una rotación respecto al eje instantáneo que pasa por el punto A. Como el cuerpo es rígido, el movimiento del punto B medido por un observador localizado en A es el mismo que la rotación del cuerpo respecto de un punto fijo.

Este movimiento relativo ocurre con respecto al eje instantáneo de rotación y se define como: vB/A = ω X rB/A y aB/A = α X rB/A + ω X (ω X rB/A), que son ecuaciones para ejes trasladantes; los movimientos relativos se relacionan con los movimientos absolutos por medio de vB = vA + vB/A y aB + aB/A, entonces tenemos:

Escuela de Ingeniería Mecánica 11 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 12: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

B. EL DIAGRAMA DE FLUJO CORRESPONDIENTE

Escuela de Ingeniería Mecánica 12 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 13: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 13 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 14: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

C. CODIFICACIÓN DEL PROGRAMA

% MOVGEN - Programa que calcula velocidades y aceleraciones, lineales y% angulares de punto "B" en un cuerpo rígido% Por: Grupo 1% Al: 30.05.14% -------------------------------------------------------------------------clc; clear all; close all;% INGRESO DATOS DE USUARIOr_a = input('Ingrese vector posición de punto referencial A.(Ejemplo:[2 3 -4]): ');r_b = input('Ingrese vector posición de punto analizado B.(Ejemplo:[4 7 5]): ');u = input('Ingrese vector unitario de velocidad y aceleración de B.(Ejemplo:[1 0 0]): ');velo_acel = menu('¿Cómo se da la velocidad y aceleración del punto referencial A en el problema?',... 'v_a, a_a',... '(w_ac)x(r_ac), (alph_ac)x(r_ac)+(w_ac)x[(w_ac)x(r_ac)]');% OPERACIONESswitch velo_acel case 1 v_a = input('Ingrese vector velocidad del punto referencial A.(Ejemplo:[0 5 0]): '); a_a = input('Ingrese vector aceleración del punto referencial A.(Ejemplo:[0 3 0]): '); [v,a,w,alph] = movgen1(u,v_a,a_a,r_a,r_b); case 2 r_ac = input('Ingrese vector posición de A respecto a C.(Ejemplo:[-2 0.5 3]): '); w_ac = input('Ingrese vector velocidad angular de AC.(Ejemplo:[0 0 2]): '); alph_ac = input('Ingrese vector aceleración angular de AC.(Ejemplo:[0 0 8]): '); [v,a,w,alph] = movgen2(u,r_ac,w_ac,alph_ac,r_a,r_b); otherwise disp('error!!!')end% SALIDAvawalph

Escuela de Ingeniería Mecánica 14 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 15: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

function [v,a,w,alph] = movgen1(u,v_a,a_a,r_a,r_b)% MOV_GEN - Calcula la velocidad y la aceleración de cuerpo rígido% w : vector velocidad angular del cuerpo rígido% alph : vector aceleración angular del cuerpo rígido% v : módulo de vector velocidad de B% a : móduo de vector aceleración de B% u : vector unitario de la velocidad y aceleración de B% v_a : vector velocidad de A% a_a : vector aceleración de A% r_a : vector posición de A % r_b : vector posición de B% r : vector posición relativo de B respecto a A% -------------------------------------------------------------------------% Por: Grupo 1% Al: 30.05.14% -------------------------------------------------------------------------% Sintaxis de ejecución% [v,a,w,alph] = movgen1(u,v_a,a_a,r_a,r_b)% -------------------------------------------------------------------------syms v a wx wy wz alph_x alph_y alph_zx = 1; y = 2; z = 3;r = r_b-r_a;% Velocidad lineal y angular de Becu1 = r(z)*wy - r(y)*wz + v_a(x) - v*u(x);ecu2 = -r(z)*wx + r(x)*wz + v_a(y) - v*u(y);ecu3 = r(y)*wx - r(x)*wy + v_a(z) - v*u(z);ecu4 = r(x)*wx + r(y)*wy + r(z)*wz;[v wx wy wz] = solve(ecu1,ecu2,ecu3,ecu4);w = [wx wy wz];% Aceleración lineal y angular de Becu5 = r(z)*alph_y - r(y)*alph_z + a_a(x) + wy*(r(y)*wx - r(x)*wy) - wz*(r(x)*wz - r(z)*wx) - a*u(x);ecu6 = -r(z)*alph_x + r(x)*alph_z + a_a(y) + wz*(r(z)*wy - r(y)*wz) - wx*(r(y)*wx - r(x)*wy) - a*u(y);ecu7 = r(y)*alph_x - r(x)*alph_y + a_a(z) + wx*(r(x)*wz - r(z)*wx) - wy*(r(z)*wy - r(y)*wz) - a*u(z);ecu8 = r(x)*alph_x + r(y)*alph_y + r(z)*alph_z;[a alph_x alph_y alph_z] = solve(ecu5,ecu6,ecu7,ecu8);alph = [alph_x alph_y alph_z];a; end

Escuela de Ingeniería Mecánica 15 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 16: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

function [v,a,w,alph] = movgen2(u,r_ac,w_ac,alph_ac,r_a,r_b)% MOV_GEN - Calcula la velocidad y la aceleración de cuerpo rígido% w : vector velocidad angular del cuerpo rígido% alph : vector aceleración angular del cuerpo rígido% v : módulo de vector velocidad de B% a : móduo de vector aceleración de B% u : vector unitario de la velocidad y aceleración de B% r_ac :% w_ac :% alp_ac :% v_a : vector velocidad de A% a_a : vector aceleración de A% r_a : vector posición de A % r_b : vector posición de B% r : vector posición relativo de B respecto a A% -------------------------------------------------------------------------% Por: Grupo 1% Al: 30.05.14% -------------------------------------------------------------------------% Sintaxis de ejecución% [v,a,w,alph] = movgen2(u,r_ac,w_ac_alp_ac,r_a,r_b)% -------------------------------------------------------------------------syms v a wx wy wz alph_x alph_y alph_zx = 1; y = 2; z = 3;r = r_b-r_a;v_a = cross(w_ac,r_ac);a_a = cross(alph_ac,r_ac)+ cross(w_ac,cross(w_ac,r_ac));% Velocidad lineal y angular de Becu1 = r(z)*wy - r(y)*wz + v_a(x) - v*u(x);ecu2 = -r(z)*wx + r(x)*wz + v_a(y) - v*u(y);ecu3 = r(y)*wx - r(x)*wy + v_a(z) - v*u(z);ecu4 = r(x)*wx + r(y)*wy + r(z)*wz;[v wx wy wz] = solve(ecu1,ecu2,ecu3,ecu4);w = [wx wy wz];% Aceleración lineal y angular de Becu5 = r(z)*alph_y - r(y)*alph_z + a_a(x) + wy*(r(y)*wx - r(x)*wy) - wz*(r(x)*wz - r(z)*wx) - a*u(x);ecu6 = -r(z)*alph_x + r(x)*alph_z + a_a(y) + wz*(r(z)*wy - r(y)*wz) - wx*(r(y)*wx - r(x)*wy) - a*u(y);ecu7 = r(y)*alph_x - r(x)*alph_y + a_a(z) + wx*(r(x)*wz - r(z)*wx) - wy*(r(z)*wy - r(y)*wz) - a*u(z);ecu8 = r(x)*alph_x + r(y)*alph_y + r(z)*alph_z;[a alph_x alph_y alph_z] = solve(ecu5,ecu6,ecu7,ecu8);alph = [alph_x alph_y alph_z];a;end

Escuela de Ingeniería Mecánica 16 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 17: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

D. MODELADO

Escuela de Ingeniería Mecánica 17 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 18: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 18 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 19: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

E. EJECUCIÓN DEL PROGRAMA

20-27. Si el collarín A se mueve a una velocidad constante de vA = 3i m/s y aceleración de aA = 0.5i m/s2. Determine la velocidad del collarín B cuando la barra AB está en la posición mostrada. Suponga que la velocidad angular de AB es perpendicular a la barra.

20-28. Cuando la barra AB está en la posición que se muestra, el collarín se mueve a una velocidad de vA = 3i m/s y aceleración de aA = 0.5i m/s2. Determine la aceleración del collarín B en este instante. Suponga que la velocidad y aceleración angulares de AB son perpendiculares a la barra.(Hibbeler, R., 2010, “Ingeniería Mecánica: Dinámica”, Prentice Hall, 12th edition, USA)

Datos:Punto referencialA = -0.2i + 0j + 0.3k = [-0.2 0 0.3]

Punto analizadoB = 0i + 0.6j + 0k = [0 0.6 0]

Vector unitarioUB = 0i + 1j + 0k = [0 1 0]

-Como no hay velocidad ni aceleración angular, y nos dan la velocidad y aceleración lineal del punto de referencia, entonces:

Velocidad lineal de AVA = 3i + 0j + 0k = [3 0 0]

Aceleración lineal de AaA = 0.5i + 0j + 0k = [0.5 0 0]

Escuela de Ingeniería Mecánica 19 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 20: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

SOLUCION EN MATLAB

>> movgen

Escuela de Ingeniería Mecánica 20 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 21: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

VALIDACIÓN ESCRITA

Escuela de Ingeniería Mecánica 21 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 22: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

22-29. Si la palanca BC gira con una velocidad angular constante de ωBC = 6 rad/s, determine la velocidad del collarín A. Suponga que la velocidad angular de AB es perpendicular a la barra.

20-30. Si la palanca BC gira con una velocidad angular de ωBC = 6 rad/s y una aceleración angular de ώBC =1.5 rad/s2, determine la aceleración del collarín A en este instante. Suponga que la velocidad y aceleración angulares de AB son perpendiculares a la barra. (Hibbeler, R., 2010, “Ingeniería Mecánica: Dinámica”, Prentice Hall, 12th edition, USA)

Datos: Punto referencialB = 0i + 1j + 0k = [0 1 0]

Punto analizadoA = -0.3i + 0j + 0.8k = [-0.3 0 0.8]

Vector unitarioUA = 0i + 0j +1k = [0 0 1]

-Como hay velocidad y aceleración angular del punto B, entonces:Vector posición CBCB = -0.3i + 0j + 0k = [-0.3 0 0]

Velocidad angular de BCωBC = 0i + 0j + 6k = [0 0 6]

Aceleración angular de BCώBC = 0i + 0j + 1.5k = [0 0 1.5]

Escuela de Ingeniería Mecánica 22 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 23: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

SOLUCION EN MATLAB

>> movgen

Escuela de Ingeniería Mecánica 23 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 24: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 24 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 25: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

VALIDACIÓN ESCRITA

Escuela de Ingeniería Mecánica 25 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 26: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

1.3. PROGRAMACIÓN DEL MOVIMIENTO GENERAL CON EJES TRASLADANTES Y ROTATORIOS

A. EL DIAGRAMA DE FLUJO CORRESPONDIENTE

Escuela de Ingeniería Mecánica 26 Dr. Jorge A. Olortegui Yume, Ph.D.

INICIO

ROA, RAB, wp, ws, ap,

as.

VELOCIDAD ACELERACION

v_con=cross(wp,ROA);v_rel=cross(ws,RAB);v_arr=cross(wp,RAB)VELOCIDAD=cross(wp,ROA)+v_arr+v_rel;ACELERACION=(cross(ap,ROA)+cross(wp,v_con))+cross(ap,RAB)+cross(wp,v_arr)+cross(wp.*2,v_rel)+(cross(as,RAB)+cross(ws,v_rel))

v_conv_relv_arr

Page 27: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Donde:ROA: Vector posición de punto fijo a punto conocido del cuerpo.RAB: Vector posición de punto conocido al punto de interés.wp: velocidad angular de precesión.ws: velocidad angular de spin.ap: aceleración angular de precesión.as: aceleración angular de spin.v_con: velocidad absoluta del punto conocido del cuerpo.v_rel: velocidad relativa del punto de interés.V_arr: velocidad de arrastre.VELOCIDAD: velocidad absoluta del punto de interés.ACELERACIÓN: aceleración absoluta del punto de interés.

B. CODIFICACIÓN DEL PROGRAMA

%VELABS - Programa que calcula la velocidad y aceleración absoluta%INGRESO DE DATOS DE USUARIO%RADIO PUNTO FIJO - PUNTO CONOCIDO DEL CUERPO(ROA)seleccion1=menu('¿CONOCES LAS COORDENADAS DEL RADIO PUNTO FIJO-PUNTO CONOCIDO?','Sí','No'); switch seleccion1 case 1 ROA=input('Ingrese el vector posición en "m" PUNTO FIJO-PUNTO CONOCIDO (Ejemplo:[9 -8 7]): '); case 2 arreglo1=menu('¿EL RADIO VECTOR ESTÁ...?','Dentro de un plano','Libre (en el espacio)'); switch arreglo1 case 1 opcion1=menu('¿EN QUÉ PLANO?','Plano XY','Plano YZ','Plano XZ'); switch opcion1 case 1 x=input('Ingrese el módulo del radio vector PUNTO FIJO-PUNTO CONOCIDO en "m" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,360°] que el vector forma con el eje X positivo (Ejemplo:45): '); ROA=Planoxy_v(x,b); case 2 x=input('Ingrese el módulo del radio vector PUNTO FIJO-PUNTO CONOCIDO en "m" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,360°] que el vector forma con el eje Y positivo (Ejemplo:45): '); ROA=Planoyz_v(x,b); case 3 x=input('Ingrese el módulo del radio vector PUNTO FIJO-PUNTO CONOCIDO en "m" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,360°] que el vector forma con el eje X positivo (Ejemplo:45): '); ROA=Planoxz_v(x,b); end case 2 opcion2=menu('¿Usted tiene...?','Un vector dirección o unitario','Dos puntos bases'); switch opcion2

Escuela de Ingeniería Mecánica 27 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 28: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ case 1 x=input('Ingrese el módulo del radio vector PUNTO FIJO-PUNTO CONOCIDO en "m" (Ejemplo:15): '); v=input('Ingrese el vector dirección o unitario (Ejemplo:[2 4 -7]): '); ROA=Ori_vect(x,v); case 2 x=input('Ingrese el módulo del radio vector PUNTO FIJO-PUNTO CONOCIDO en "m" (Ejemplo:15): '); a=input('Ingrese el punto inicial (Ejemplo:[2 0 1]): '); b=input('Ingrese el punto final (Ejemplo:[8 -4 5]):'); ROA=Dos_punto(x,a,b); end end end %RADIO PUNTO CONOCIDO - PUNTO DE INTERÉS(RAB)seleccion2=menu('¿CONOCES LAS COORDENADAS DEL RADIO PUNTO CONOCIDO-PUNTO DE INTERÉS?','Sí','No'); switch seleccion2 case 1 RAB=input('Ingrese el vector posición en "m" PUNTO CONOCIDO-PUNTO DE INTERÉS (Ejemplo:[9 -8 7]): '); case 2 arreglo2=menu('¿EL RADIO VECTOR ESTÁ...?','Dentro de un plano','Libre (en el espacio)'); switch arreglo2 case 1 opcion3=menu('¿EN QUÉ PLANO?','Plano XY','Plano YZ','Plano XZ'); switch opcion3 case 1 x=input('Ingrese el módulo del radio vector PUNTO CONOCIDO-PUNTO INTERÉS en "m" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,360°] que el vector forma con el eje X positivo (Ejemplo:45): '); RAB=Planoxy_v(x,b); case 2 x=input('Ingrese el módulo del radio vector PUNTO CONOCIDO-PUNTO INTERÉS en "m" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,360°] que el vector forma con el eje Y positivo (Ejemplo:45): '); RAB=Planoyz_v(x,b); case 3 x=input('Ingrese el módulo del radio vector PUNTO CONOCIDO-PUNTO INTERÉS en "m" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,360°] que el vector forma con el eje X positivo (Ejemplo:45): '); RAB=Planoxz_v(x,b); end case 2 opcion4=menu('¿Usted tiene...?','Un vector dirección o unitario','Dos puntos bases'); switch opcion4 case 1 x=input('Ingrese el módulo del radio vector PUNTO CONOCIDO-PUNTO INTERÉS en "m" (Ejemplo:15): '); v=input('Ingrese el vector dirección o unitario (Ejemplo:[2 4 -7]): ');

Escuela de Ingeniería Mecánica 28 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 29: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ RAB=Ori_vect(x,v); case 2 x=input('Ingrese el módulo del radio vector PUNTO FIJO-PUNTO CONOCIDO en "m" (Ejemplo:15): '); a=input('Ingrese el punto inicial (Ejemplo:[2 0 1]): '); b=input('Ingrese el punto final (Ejemplo:[8 -4 5]):'); RAB=Dos_punto(x,a,b); end end end %VELOCIDAD ANGULAR DE PRECESIÓN seleccion3=menu('¿CONOCE LAS COMPONENTES DE LA VELOCIDAD ANGULAR DE PRECESIÓN?','Sí','No'); switch seleccion3 case 1 wp=input('Ingrese la velocidad angular de PRECESIÓN en "rad/s" (Ejemplo:[2 -4 9]): '); case 2 arreglo3=menu('¿LA VELOCIDAD ANGULAR DE PRECESIÓN ESTÁ...?','Paralela a un eje',... 'Dentro de un plano','Libre (en el espacio)'); switch arreglo3 case 1 x=input('Ingrese el módulo de la velocidad angular de PRECESIÓN en "rad/s" (Ejemplo:4): ');%(rad/s); wp=Paraleje(x); case 2 opcion5=menu('¿EN QUÉ PLANO?','Plano XY','Plano YZ','Plano XZ'); switch opcion5 case 1 x=input('Ingrese el módulo de la velocidad angular de PRECESIÓN en "rad/s" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje X positivo (Ejemplo:45): '); wp=Planoxy_w(x,b); case 2 x=input('Ingrese el módulo de la velocidad angular de PRECESIÓN en "rad/s" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje Y positivo (Ejemplo:45): '); wp=Planoyz_w(x,b); case 3 x=input('Ingrese el módulo de la velocidad angular de PRECESIÓN en "rad/s" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje X positivo (Ejemplo:45): '); wp=Planoxz_w(x,b); end case 3 opcion7=menu('¿Usted tiene...?','Un vector dirección o unitario','Dos puntos bases'); switch opcion6 case 1 x=input('Ingrese el módulo de la velocidad angular de PRECESIÓN en "rad/s" (Ejemplo:15): ');

Escuela de Ingeniería Mecánica 29 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 30: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ v=input('Ingrese el vector dirección o unitario (Ejemplo:[2 4 -7]): '); wp=Ori_vect(x,v); case 2 x=input('Ingrese el módulo de la velocidad angular de PRECESIÓN en "rad/s" (Ejemplo:15): '); a=input('Ingrese el punto inicial (Ejemplo:[2 0 1]): '); b=input('Ingrese el punto final (Ejemplo:[8 -4 5]):'); wp=Dos_punto(x,a,b); end end end%VELOCIDAD ANGULAR DE SPINseleccion5=menu('¿TIENE LAS COMPONENTES DE LA VELOCIDAD ANGULAR DE SPIN?','Sí','No'); switch seleccion5 case 1 ws=input('Ingrese la velocidad angular de SPIN en "rad/s" (Ejemplo:[6 -13 2]): '); case 2 arreglo4=menu('¿LA VELOCIDAD ANGULAR DE SPIN ESTÁ...?','Paralela a un eje',... 'Dentro de un plano','Libre (en el espacio)'); switch arreglo4 case 1 x=input('Ingrese el módulo de la velocidad angular de SPIN en "rad/s" (Ejemplo:4): ');%(rad/s); ws=Paraleje(x); case 2 opcion8=menu('¿EN QUÉ PLANO?','Plano XY','Plano YZ','Plano XZ'); switch opcion8 case 1 x=input('Ingrese el módulo de la velocidad angular de SPIN en "rad/s" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje X positivo (Ejemplo:45): '); ws=Planoxy_w(x,b); case 2 x=input('Ingrese el módulo de la velocidad angular de SPIN en "rad/s" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje Y positivo (Ejemplo:45): '); ws=Planoyz_w(x,b); case 3 x=input('Ingrese el módulo de la velocidad angular de SPIN en "rad/s" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje X positivo (Ejemplo:45): '); ws=Planoxz_w(x,b); end case 3 opcion9=menu('¿Usted tiene...?','Un vector dirección o unitario','Dos puntos bases'); switch opcion9 case 1

Escuela de Ingeniería Mecánica 30 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 31: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

x=input('Ingrese el módulo de la velocidad angular de SPIN en "rad/s" (Ejemplo:15): '); v=input('Ingrese el vector dirección o unitario (Ejemplo:[2 4 -7]): '); ws=Ori_vect(x,v); case 2 x=input('Ingrese el módulo de la velocidad angular de SPIN en "rad/s" (Ejemplo:15): '); a=input('Ingrese el punto inicial (Ejemplo:[2 0 1]): '); b=input('Ingrese el punto final (Ejemplo:[8 -4 5]):'); ws=Dos_punto(x,a,b); end end end%ACELERACIÓN ANGULAR DE PRECESIÓNseleccion5=menu('¿TIENE LAS COMPONENTES DE LA ACELERACIÓN ANGULAR DE PRECESIÓN?','Sí','No'); switch seleccion5 case 1 ap=input('Ingrese la aceleración angular de PRECESIÓN en "rad/s^2" (Ejemplo:[6 -13 2]): '); case 2 arreglo4=menu('¿LA ACELERACIÓN ANGULAR DE PRECESIÓN ESTÁ...?','Paralela a un eje',... 'Dentro de un plano'); switch arreglo4 case 1 x=input('Ingrese el módulo de la aceleración angular de PRECESIÓN en "rad/s^2" (Ejemplo:4): ');%(rad/s); ap=Paraleje(x); case 2 opcion8=menu('¿EN QUÉ PLANO?','Plano XY','Plano YZ','Plano XZ'); switch opcion8 case 1 x=input('Ingrese el módulo de la aceleración angular de PRECESEIÓN en "rad/s^2" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje X positivo (Ejemplo:45): '); ap=Planoxy_w(x,b); case 2 x=input('Ingrese el módulo de la aceleración angular de PRECESIÓN en "rad/s^2" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje Y positivo (Ejemplo:45): '); ap=Planoyz_w(x,b); case 3 x=input('Ingrese el módulo de la aceleración angular de PRECESIÓN en "rad/s^2" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje X positivo (Ejemplo:45): '); ap=Planoxz_w(x,b); end end end%ACELERACIÓN ANGULAR DE SPIN

Escuela de Ingeniería Mecánica 31 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 32: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

seleccion5=menu('¿TIENE LAS COMPONENTES DE LA ACELERACIÓN ANGULAR DE SPIN?','Sí','No'); switch seleccion5 case 1 as=input('Ingrese la aceleración angular de SPIN en "rad/s^2" (Ejemplo:[6 -13 2]): '); case 2 arreglo4=menu('¿LA ACELERACIÓN ANGULAR DE SPIN ESTÁ...?','Paralela a un eje',... 'Dentro de un plano'); switch arreglo4 case 1 x=input('Ingrese el módulo de la aceleración angular de SPIN en "rad/s^2" (Ejemplo:4): ');%(rad/s); as=Paraleje(x); case 2 opcion8=menu('¿EN QUÉ PLANO?','Plano XY','Plano YZ','Plano XZ'); switch opcion8 case 1 x=input('Ingrese el módulo de la aceleración angular de SPIN en "rad/s^2" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje X positivo (Ejemplo:45): '); as=Planoxy_w(x,b); case 2 x=input('Ingrese el módulo de la aceleración angular de SPIN en "rad/s^2" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje Y positivo (Ejemplo:45): '); as=Planoyz_w(x,b); case 3 x=input('Ingrese el módulo de la aceleración angular de SPIN en "rad/s^2" (Ejemplo:6): '); b=input('Ingrese el ángulo [o°,180°] que la dirección del vector forma con el eje X positivo (Ejemplo:45): '); as=Planoxz_w(x,b); end end end%OPERACIONESv_con=cross(wp,ROA);v_rel=cross(ws,RAB);v_arr=cross(wp,RAB);VELOCIDAD=cross(wp,ROA)+v_arr+v_rel;ACELERACION=(cross(ap,ROA)+cross(wp,v_con))+cross(ap,RAB)+cross(wp,v_arr)+cross(wp.*2,v_rel)+(cross(as,RAB)+cross(ws,v_rel));%SALIDAVELOCIDADACELERACION

Escuela de Ingeniería Mecánica 32 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 33: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

C. EJECUCIÓN DEL PROGRAMA

Problema:

La carcasa del motor y su soporte giran en torno al eje Z a la celeridad

constante de Ω=3 rads

. Respecto a

la carcasa, el eje del motor y su disco solidario tienen una velocidad

de giro ρ=8 rads

en el sentido

indicado. Si γ vale constantemente 30°, determinar la velocidad y la aceleración del punto A en lo más alto del disco.

SOLUCION EN MATLAB

Al inicio del programa, elegimos la opción SÍ puesto que conocemos el radio desde el origen del sistema fijo hasta el punto B: 0.35j+.15k

Escuela de Ingeniería Mecánica 33 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 34: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Ingresamos el radio vector. Seguidamente, seleccionamos la opción “No” ya que el vector posición relativo no es conocido por simple inspección.

Nos preguntará en dónde está ubicado el vector, seleccionamos “DENTRO DE UN PLANO”, en el plano “YZ”.

Nos pide el módulo del vector posición relativo:

r=√0.32+0.122=0.3231098884m. Ingresamos este valor. A continuación nos

Escuela de Ingeniería Mecánica 34 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 35: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

solicitará el ángulo que forma el vector posición con el eje Y; es el

siguiente: θ=γ+ tan−1( .12.3 )=30+21.80141=51.80121 °

Escuela de Ingeniería Mecánica 35 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 36: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

A la pregunta de la aceleración angular de precesión, respondemos No. Seleccionamos la opción “Paralela a un eje”, introducimos el valor de la

precesión: 3rads

y seleccionamos “Eje Z”. Para finalizar seleccionamos el

sentido de la precesión.

Como no conocemos con exactitud las componentes de la velocidad angular de spin, elegimos “No”. Luego de ello, elegimos la opción “DENTRO DE UN PLANO” puesto que la velocidad de spin se encuentra en el plano YZ.

Escuela de Ingeniería Mecánica 36 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 37: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Introducimos el módulo y el ángulo que forma con el eje Y. Ahora nos pedirá la orientación del vector. Seleccionamos “Antihorario” puesto que el vector gira en contra de las manecillas del reloj (Visto desde el eje Y)

Los siguientes pasos son ingresas datos de las aceleraciones angulares. Para ambos casos, las aceleraciones son nulas, entonces, elegimos la opción sí y escribimos el vector: [0 0 0]

Escuela de Ingeniería Mecánica 37 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 38: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

2.1. PROGRAMACIÓN DE MOMENTOS Y PRODUCTOS DE INERCIA

A. EJECUCIÓN DEL PROGRAMA

MOMENTOS DE INERCIA

1. Primero ejecutaremos el archivo function: Momentos_y_Productos_de_Inercia.m

2. Luego, nos aparecerá una ventana de presentación, la cual nos indica el programa a seguir.

Escuela de Ingeniería Mecánica 38 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 39: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

3. Hacemos click en continuar y colocamos los datos, según lo requerido, en nuestro caso vamos a obtener los momentos de inercia respecto al centro de masa de una placa rectangular.

Escuela de Ingeniería Mecánica 39 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 40: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

4. Después de especificar el caso en el que estamos trabajando, procedemos a colocar adecuadamente los datos. Se recomienda dibujar el problema en papel y ubicar adecuadamente la orientación de los ejes.

Escuela de Ingeniería Mecánica 40 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 41: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

H

VALIDACIÓN ESCRITA

En este caso Ix=0.0647, Iy=0.0647, Iz=0.1294.

Sin embargo, para la disposición de ejes requerida, los momentos de inercia serán:

Ix=0.1294

Iy=0.0647

Iz=0.0647

¿Qué pasa si se quiere momentos de inercia respecto a cualquier eje paralelo a los que pasan por el centro de masa?

1. De igual forma que en el caso anterior, procedemos, y escogemos la opción que requerimos.

Escuela de Ingeniería Mecánica 41 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 42: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

2. De igual forma se procede a colocar los datos correspondientes

Escuela de Ingeniería Mecánica 42 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 43: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 43 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 44: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

3. Al igual que el caso anterior los ejes no están en su orientación correcta por lo que:

En este caso Ix=0.0647, Iy=0.2588, Iz=0.3235.

Sin embargo, para la disposición de ejes requerida, los momentos de inercia serán:

Ix=0.3235

Iy=0.2588

Iz=0.0647

B. CODIFICACIÓN DEL PROGRAMA

% MINER- Programa que calcula momentos de inercia respecto a su centro de masa y ejes paralelos% Por: grupo n°1% Al:% ------------------------------------------------------------------------clc; clear all; close all;%INGRESO DE DATOS DEL PROBLEMA:DG=menu('¿QUE DESEA OBTENER?','Momentos de inercia con ejes cartesianos','Productos de inercia','Momentos de Inercia con ejes arbitrarios');switch DG case 1 T = menu('MOMENTOS DE INERCIA','Centro de Masa','Ejes Paralelos','Radio de Giro'); switch T

Escuela de Ingeniería Mecánica 44 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 45: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ case 1 % MOMENTOS DE INERCIA RESPECTO A SU CENTRO DE MASA------------------------------------------------------------------------------------- arreglo1 = menu('MOMENTO DE INERCIA','Anillo','Barra ','Cilindro', 'Cono','Placa Cuadrada','Disco','Esfera','Media esfera'); switch arreglo1 % MOMENTO DE INERCIA DE UN ANILLO case 1 m = input('Ingrese la masa del anillo , ejemplo 3: '); % kilogramos (kg) R = input('Ingrese el el radio del anillo , ejemplo 2: '); % metros (m) IX =(1/2)*m*R^2; %( kg*m ^2) IY =(1/2)*m*R^2; %( kg*m ^2) IZ= m*R^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UNA BARRA case 2 m = input('Ingrese la masa de la barra , ejemplo 3: '); % kilogramos (kg) L = input('Ingrese el la longitud de la barra , ejemplo 10: '); % metros (m) IX =(1/12)*m*L^2; %( kg*m ^2) IY = (1/12)*m*L^2; %( kg*m ^2) IZ=0; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CILINDRO case 3 m = input('Ingrese la masa del cilindro , ejemplo 7: '); % kilogramos (m) R = input('Ingrese el el radio del cilindro , ejemplo 9: '); % metros (m) L = input('Ingrese el la longitud del cilindro , ejemplo 3: '); % metros (m)

IX =(1/12)*m*(3*R^2+L^2); %( kg*m ^2) IY =(1/12)*m*(3*R^2+L^2); %( kg*m ^2) IZ= (1/2)*m*R^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CONO case 4 m = input('Ingrese la masa del cono , ejemplo 3: '); % kilogramos (kg) R = input('Ingrese el el radio del cono , ejemplo 6: '); % metros (m) H = input('Ingrese el la altura del cono , ejemplo 3: '); % metros (m) IX =(3/80)*m*(4*R^2+H^2); %( kg*m ^2) IY =(3/80)*m*(4*R^2+H^2); %( kg*m ^2)

Escuela de Ingeniería Mecánica 45 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 46: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ IZ= (3/10)*m*R^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CUADRILATERO case 5 m = input('Ingrese la masa del cuadrilatero , ejemplo 5: '); % kilogramos (kg) a = input('Ingrese la longitud del lado respecto al eje y , ejemplo 3: '); % metros (m) b = input('Ingrese la longitud del lado respecto al eje x , ejemplo 8: '); % metros (m) IX =(1/12)*m*b^2; %( kg*m ^2) IY =(1/12)*m*a^2; %( kg*m ^2) IZ= (1/12)*m*(a^2+b^2); %( kg*m ^2) % MOMENTO DE INERCIA DE UN DISCO case 6 m = input('Ingrese la masa del disco , ejemplo 10: '); % kilogramos (kg) R = input('Ingrese el el radio del disco , ejemplo 8: '); % metros (m) IX =(1/4)*m*R^2; %( kg*m ^2) IY =(1/4)*m*R^2; %( kg*m ^2) IZ = (1/2)*m*R^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UNA ESFERA case 7 m = input('Ingrese la masa de la esfera , ejemplo 7: '); % kilogramos (kg) R = input('Ingrese el el radio de la esfera , ejemplo 5: '); % metros (m) IX =(2/5)*m*R^2; %( kg*m ^2) IY =(2/5)*m*R^2; %( kg*m ^2) IZ= (2/5)*m*R^2; %( kg*m ^2) % MOMENTO DE INERCIA DE MEDIA ESFERA case 8 m = input('Ingrese la masa de la media esfera , ejemplo 8: '); % kilogramos (kg) R = input('Ingrese el el radio de la media esfera , ejemplo 2: '); % metros (m) IX =0.259*m*R^2; %( kg*m ^2) IY =0.259*m*R^2; %( kg*m ^2) IZ= (2/5)*m*R^2; %( kg*m ^2) otherwise disp('¡figura no conocida!') end

Escuela de Ingeniería Mecánica 46 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 47: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ case 2 % MOMENTOS DE INERCIA A EJES PARALELOS----------------------------------------------------------------------------------- arreglo2 = menu('MOMENTO DE INERCIA','Anillo','Barra ','Cilincro', 'Cono','Placa Cuadrada','Disco','Esfera','Media esfera'); switch arreglo2 % MOMENTO DE INERCIA DE UN ANILLO case 1 m = input('Ingrese la masa del anillo , ejemplo 3: '); % kilogramos (kg) R = input('Ingrese el el radio del anillo , ejemplo 2: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 2: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 8: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 6: '); % metros (m) IX =(1/2)*m*R^2 + m*(dx)^2; IY =(1/2)*m*R^2 + m*(dy)^2; IZ= m*R^2 + m*(dz)^2; % MOMENTO DE INERCIA DE UNA BARRA case 2 m = input('Ingrese la masa de la barra , ejemplo 3: '); % kilogramos (kg) L = input('Ingrese el la longitud de la barra , ejemplo 10: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 8: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 6: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 2: '); % metros (m) IX =(1/12)*m*L^2 + m*(dx)^2; %( kg*m ^2) IY = (1/12)*m*L^2 + m*(dy)^2; %( kg*m ^2) IZ= 0 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CILINDRO case 3 m = input('Ingrese la masa del cilindro , ejemplo 7: '); % kilogramos (m) R = input('Ingrese el el radio del cilindro , ejemplo 9: '); % metros (m) L = input('Ingrese el la longitud del cilindro , ejemplo 3: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 6: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 2: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 4: '); % metros (m) IX =(1/12)*m*(3*R^2+L^2) + m*(dx)^2; %( kg*m ^2) IY =(1/12)*m*(3*R^2+L^2) + m*(dy)^2; %( kg*m ^2)

Escuela de Ingeniería Mecánica 47 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 48: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ IZ= (1/2)*m*R^2 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CONO case 4 m = input('Ingrese la masa del cono , ejemplo 3: '); % kilogramos (kg) R = input('Ingrese el el radio del cono , ejemplo 6: '); % metros (m) H = input('Ingrese el la altura del cono , ejemplo 3: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 3: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 8: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 1: '); % metros (m) IX =(3/80)*m*(4*R^2+H^2) + m*(dx)^2; %( kg*m ^2) IY =(3/80)*m*(4*R^2+H^2) + m*(dy)^2; %( kg*m ^2) IZ= (3/10)*m*R^2 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CUADRILATERO case 5 m = input('Ingrese la masa del cuadrilatero , ejemplo 5: '); % kilogramos (kg) a = input('Ingrese la longitud del lado respecto ala eje y , ejemplo 3: '); % metros (m) b = input('Ingrese la longitud del lado respecto ala eje x , ejemplo 8: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 9: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 2: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 3: '); % metros (m) IX =(1/12)*m*b^2 + m*(dx)^2; %( kg*m ^2) IY =(1/12)*m*a^2 + m*(dy)^2; %( kg*m ^2) IZ= (1/12)*m*(a^2+b^2) + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN DISCO case 6 m = input('Ingrese la masa del disco , ejemplo 10: '); % kilogramos (kg) R = input('Ingrese el el radio del disco , ejemplo 8: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 3: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 7: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 2: '); % metros (m) IX =(1/4)*m*R^2 + m*(dx)^2; %( kg*m ^2) IY =(1/4)*m*R^2 + m*(dy)^2; %( kg*m ^2)

Escuela de Ingeniería Mecánica 48 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 49: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ IZ = (1/2)*m*R^2 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UNA ESFERA case 7 m = input('Ingrese la masa de la esfera , ejemplo 7: '); % kilogramos (kg) R = input('Ingrese el el radio de la esfera , ejemplo 5: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 3: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 6: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 3: '); % metros (m) IX =(2/5)*m*R^2 + m*(dx)^2; %( kg*m ^2) IY =(2/5)*m*R^2 + m*(dy)^2; %( kg*m ^2) IZ= (2/5)*m*R^2 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE MEDIA ESFERA case 8 m = input('Ingrese la masa de la media esfera , ejemplo 8: '); % kilogramos (kg) R = input('Ingrese el el radio de la media esfera , ejemplo 2: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 3: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 1: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 9: '); % metros (m) IX =0.259*m*R^2 + m*(dx)^2; %( kg*m ^2) IY =0.259*m*R^2 + m*(dy)^2; %( kg*m ^2) IZ= (2/5)*m*R^2 + m*(dz)^2; %( kg*m ^2) otherwise disp('¡figura no conocida!') end

case 3 % MOMENTOS DE INERCIA CON EJES DE GIRO--------------------------------------------------------------------------------- m = input('Ingrese la masa del solido , ejemplo 8: '); % kilogramos (kg) kx = input('Ingrese el radio de giro respecto al eje x , ejemplo 8: '); % kilogramos (kg) ky = input('Ingrese el radio de giro respecto al eje y , ejemplo 8: '); % kilogramos (kg) kz = input('Ingrese el radio de giro respecto al eje z , ejemplo 8: '); % kilogramos (kg) IX= m*(kx)^2; %( kg*m ^2)

Escuela de Ingeniería Mecánica 49 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 50: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ IY= m*(ky)^2; %( kg*m ^2) IZ= m*(kz)^2; %( kg*m ^2) end % Salida I=[IX,IY,IZ]; disp('Los momentos de inercia son:'); disp(I); case 2 % PRODUCTOS DE INERCIA --------------------------------------------------------------------------------------------- m = input('Ingrese la masa del cuerpo , ejemplo 3: '); % kilogramos (kg) XG =input('Ingrese la distancia del centro de masa al plano ZY , ejemplo 5: '); % kilogramos (kg) YG =input('Ingrese la distancia del centro de masa al plano XZ , ejemplo 5: '); % kilogramos (kg) ZG =input('Ingrese la distancia del centro de masa al plano XY , ejemplo 5: '); % kilogramos (kg) IXY = 0 + m*XG*YG; %( kg*m ^2) IYZ = 0 + m*YG*ZG; %( kg*m ^2) IZX = 0 + m*ZG*XG; %( kg*m ^2) % Salida PI=[IXY,IYZ,IZX]; disp('Los productos de inercia son:'); disp(PI); case 3 % MOMENTOS DE INERCIA RESPECTO A UN EJE ARBITRARIO------------------------------------------------------------------------------------------------------ m = input('Ingrese la masa del solido, ejemplo 5: '); % kilogramos (kg) arreglo3 = menu(' MOMENTO DE INERCIA','Anillo','Barra ','Cilincro', 'Cono','Placa Cuadrada','Disco','Esfera','Media esfera'); switch arreglo3 % MOMENTO DE INERCIA DE UN ANILLO case 1 R = input('Ingrese el el radio del anillo , ejemplo 2: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 2: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 8: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 6: '); % metros (m) IX =(1/2)*m*R^2 + m*(dx)^2; IY =(1/2)*m*R^2 + m*(dy)^2 ;

Escuela de Ingeniería Mecánica 50 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 51: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ IZ= m*R^2 + m*(dz)^2 ; % MOMENTO DE INERCIA DE UNA BARRA case 2 L = input('Ingrese el la longitud de la barra , ejemplo 10: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 8: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 6: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 2: '); % metros (m) IX =(1/12)*m*L^2 + m*(dx)^2; %( kg*m ^2) IY = (1/12)*m*L^2 + m*(dy)^2; %( kg*m ^2) IZ= 0 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CILINDRO case 3 R = input('Ingrese el el radio del cilindro , ejemplo 9: '); % metros (m) L = input('Ingrese el la longitud del cilindro , ejemplo 3: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 6: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 2: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 4: '); % metros (m) IX =(1/12)*m*(3*R^2+L^2) + m*(dx)^2; %( kg*m ^2) IY =(1/12)*m*(3*R^2+L^2) + m*(dy)^2; %( kg*m ^2) IZ= (1/2)*m*R^2 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CONO case 4 R = input('Ingrese el el radio del cono , ejemplo 6: '); % metros (m) H = input('Ingrese el la altura del cono , ejemplo 3: '); % metros (m)

dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 3: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 8: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 1: '); % metros (m) IX =(3/80)*m*(4*R^2+H^2) + m*(dx)^2; %( kg*m ^2) IY =(3/80)*m*(4*R^2+H^2) + m*(dy)^2; %( kg*m ^2) IZ= (3/10)*m*R^2 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN CUADRILATERO case 5

Escuela de Ingeniería Mecánica 51 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 52: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ a = input('Ingrese la longitud del lado respecto ala eje y , ejemplo 3: '); % metros (m) b = input('Ingrese la longitud del lado respecto ala eje x , ejemplo 8: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 9: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 2: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 3: '); % metros (m) IX =(1/12)*m*b^2 + m*(dx)^2; %( kg*m ^2) IY =(1/12)*m*a^2 + m*(dy)^2; %( kg*m ^2) IZ= (1/12)*m*(a^2+b^2) + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UN DISCO case 6 R = input('Ingrese el el radio del disco , ejemplo 8: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 3: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 7: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 2: '); % metros (m) IX =(1/4)*m*R^2 + m*(dx)^2; %( kg*m ^2) IY =(1/4)*m*R^2 + m*(dy)^2; %( kg*m ^2) IZ = (1/2)*m*R^2 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE UNA ESFERA case 7 R = input('Ingrese el el radio de la esfera , ejemplo 5: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 3: '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 6: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 3: '); % metros (m) IX =(2/5)*m*R^2 + m*(dx)^2; %( kg*m ^2) IY =(2/5)*m*R^2 + m*(dy)^2; %( kg*m ^2) IZ= (2/5)*m*R^2 + m*(dz)^2; %( kg*m ^2) % MOMENTO DE INERCIA DE MEDIA ESFERA case 8 R = input('Ingrese el el radio de la media esfera , ejemplo 2: '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X , ejemplo 3: '); % metros (m)

Escuela de Ingeniería Mecánica 52 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 53: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ dy = input('Ingrese la distancia del centro de masa al eje Y , ejemplo 1: '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z , ejemplo 9: '); % metros (m) IX =0.259*m*R^2 + m*(dx)^2; %( kg*m ^2) IY =0.259*m*R^2 + m*(dy)^2; %( kg*m ^2) IZ= (2/5)*m*R^2 + m*(dz)^2; %( kg*m ^2) otherwise disp('¡figura no conocida!') end % salida XG =input('Ingrese la distancia del centro de masa al plano ZY , ejemplo 5: '); % kilogramos (kg) YG =input('Ingrese la distancia del centro de masa al plano XZ , ejemplo 5: '); % kilogramos (kg) ZG =input('Ingrese la distancia del centro de masa al plano XY , ejemplo 5: '); % kilogramos (kg) IXY = 0 + m*XG*YG; %( kg*m ^2) IYZ = 0 + m*YG*ZG; %( kg*m ^2) IZX = 0 + m*ZG*XG; %( kg*m ^2) ux = input('Ingrese el cos director respecto al eje x , ejemplo 0.3: '); uy = input('Ingrese el cos director respecto al eje y , ejemplo 0.7: '); uz = input('Ingrese el cos director respecto al eje z , ejemplo 0.9: '); IU=IX*ux^2+IY*uy^2+IZ*uz^2-2*IXY*ux*uy-2*IYZ*uy*uz-2*IZX*uz*ux; %( kg*m ^2) disp(IU);end

2.2. PROGRAMACIÓN DE CANTIDAD DE MOVIMIENTO ANGULAR

A. EJECUCIÓN DEL PROGRAMA

1. Ejecutamos el archivo function: Cantidad_De_Movimiento_Angular.m

Escuela de Ingeniería Mecánica 53 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 54: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 54 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 55: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

2. El programa nos pide datos genéricos como masa, momentos de inercia respecto al centro de masa (Obtenidos del ejemplo anterior) y productos de inercia (Obtenidos del ejemplo anterior o si existe simetría, todos son 0).

3. Según la necesidad se escoge lo requerido

4. Dado la naturaleza el problema, se selecciona análisis de impactos, ya que en este caso tenemos un proyectil que choca con una placa. Posteriormente se seleccionan las condiciones iniciales que tiene el cuerpo rígido que estamos analizando.

Escuela de Ingeniería Mecánica 55 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 56: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

5. Si la respuesta es “Si” a cualquiera de las preguntas el programa le pedirá que ingrese los vectores velocidad angular y aceleración angular respectivos.Nótese que en este caso en la primera pregunta la respuesta fue “No”, por consiguiente el programa no requiere que se ingrese el vector velocidad con el cual el cuerpo rígido se traslada. Luego, en la segunda pregunta, la respuesta también es “No”, porque el cuerpo no está rotando en sí mismo.

Si la respuesta hubiera sido “Si” en las preguntas:

6. Dado que el análisis se hace respecto a un punto diferente del centro de masa, se debe tener en cuenta nuevos momentos de inercia respecto a este punto y si fuera el caso, productos de inercia (si es que no hay simetría respecto a los nuevos ejes).

Escuela de Ingeniería Mecánica 56 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 57: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

7. Dado que existe un impacto entre el proyectil y la placa, hacemos click en “Si”

Posteriormente el programa nos pedira datos acerca de las condiciones del objeto que impactara sobre nuestro cuerpo rigido. Estos datos, son la velocidad y la masa.

8. Ahora viene una parte importante en el el problema, si es el caso de que el proyectil se incrusta en la barra, se considera despreciable la masa que aporte al cuerpo rigido que estamos analizando, sin embargo, el impacto le proporciona un impulso a la placa, lo que hara qie ésta gire con una nueva velocidad angular.

Escuela de Ingeniería Mecánica 57 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 58: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

9. Finalmente, obtenemos los siguientes resultados:

10. ¿Qué pasaria si el proyectil en ves de incrustarse, atravieza la placa?Si el proyectil atravieza la placa y consideramos que la direccion ed la velocidad de salida es igual a la de entrada, entonces obtendremos los siguietes datos:

Escuela de Ingeniería Mecánica 58 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 59: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 59 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 60: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 60 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 61: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 61 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 62: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 62 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 63: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

B. CODIFICACIÓN DEL PROGRAMA

% MA - Programa que calcula los momentos de inercia angular y ademas% resuelve problemas aplicando el principio de impulso y cantidad de% movimiento.% Por: grupo n°1% Al:% ------------------------------------------------------------------------clc; clear all; close all;%INGRESO DE DATOS DEL PROBLEMA:%Condiciones Iniciales del cuerpo Rigido;M=input('ingrese la masa del cuerpo rigido, ejemplo 20: ');I=input('ingrese los momentos de inercia del cuerpo rigido, respecto al centro de masa, ejemplo [Ix Iy Iz]: ');PI=input('Ingrese los productos de inercia, respecto al centro de masa, ejemplo [Ixy Iyz Izx]: ');DG=menu('¿QUE DESEA OBTENER?','Cantidad de Movimiento Respecto al Centro de Masa', 'Cantidad de Movimiento Respecto a un Punto Arbitrario', 'Analisis de Impactos');switch DG case 1 D1=menu('¿El cuerpo esta girando?', 'Si', 'No'); switch D1 case 1 W=input('Ingrese el vector velocidad angular, ejemplo [Wx Wy Wz]: '); case 2 W = [0 0 0]; end HG=W.*I; disp('La cantidad de movimiento angular, respecto al centro de masa es: '); disp(HG); case 2 D=menu('¿El cuerpo se esta tasladando?', 'Si', 'No'); switch D case 1 VG=input('Ingrese el vector velocidad con el que el cuerpo se traslada, ejemplo[-65 49 28]: '); case 2 VG=[0 0 0]; end D1=menu('¿El cuerpo esta girando?', 'Si', 'No'); switch D1 case 1 W=input('Ingrese el vector velocidad angular, ejemplo [Wx Wy Wz]: '); case 2 W = [0 0 0]; end %Punto de analisis del Movimiento G=[0 0 0]; %Coordenadas del centro de masa PA=input('Ingrese las coordenadas del punto donde se analizará el movimiento, ejemplo[2 6 7]: '); R=PA-G;

Escuela de Ingeniería Mecánica 63 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 64: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ HG=W.*I; HPA=cross(R,M*VG)+HG; %Salida disp('La cantidad de movimiento angular, respecto al punto desde donde se analaliza el movimiento es: '); disp(HPA) case 3 D=menu('¿El cuerpo se esta tasladando?', 'Si', 'No'); switch D case 1 VG=input('Ingrese el vector velocidad con el que el cuerpo se traslada, ejemplo[-65 49 28]: '); case 2 VG=[0 0 0]; end D1=menu('¿El cuerpo esta girando?', 'Si', 'No'); switch D1 case 1 W=input('Ingrese el vector velocidad angular, ejemplo [Wx Wy Wz]: '); case 2 W = [0 0 0]; end %Punto de analisis del Movimiento G=[0 0 0]; %Coordenadas del centro de masa PA=input('Ingrese las coordenadas del punto donde se analizará el movimiento, ejemplo[2 6 7]: '); R=PA-G; %Momentos y productos de inercia respecto a los ejes que pasan por en punto %de analisis: x=input('Distancia en el eje X entre el centro de masa esta el punto donde pasan los nuevos ejes, ejemplo -0.5: '); y=input('Distancia en el eje Y entre el centro de masa esta el punto donde pasan los nuevos ejes, ejemplo -0.5: '); z=input('Distancia en el eje Z entre el centro de masa esta el punto donde pasan los nuevos ejes, ejemplo -0.5: '); Ix=I(:,1)+M*(y^2+z^2); Iy=I(:,2)+M*(x^2+z^2); Iz=I(:,3)+M*(x^2+y^2); DS=menu('¿Existen Simetrias respecto a los nuevos ejes?', 'Si', 'No'); switch DS case 1 Ixy=PI(:,1)+M*(x*y); Iyz=PI(:,2)+M*(y*z); Ixz=PI(:,3)+M*(x*z); case 2 Ixy=0; Iyz=0; Ixz=0; end %Cuerpo Impactante D2=menu('¿Hay algun impacto?', 'Si', 'No'); switch D2 case 1

Escuela de Ingeniería Mecánica 64 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 65: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ m=input('¿Cual es la masa del cuerpo impactante?, ejemplo 23: '); V=input('ingrese el vector velocidad del cuerpo impactante, ejemplo [23 56 98]: '); case 2 m=0; V=[0 0 0]; end D3=menu('¿Que pasa con el cuerpo impactante?', 'Atravieza el primer cuerpo rigido', 'Se incrusta'); switch D3 case 1 Vs=input('¿Con que vector velocidad sale del primer cuerpo rigido, ejemplo [-59 78 -106]?: '); case 2 Vs=[0 0 0]; end %Operaciones: %Cantidad de Movimiento: HCI=cross(R,(m*V)); %Cantidad de Movimiento del cuerpo impactante HG=W.*I; %Cantidad de Movimiento del cuerpo rigido respecto a su centro de masa HPA=cross(R,M*VG)+HG; %Cantidad de Movimiento del cuerpo Rigido respecto al punto de analisis HCS=cross(R,m*Vs); %Cantidad de Movimeinto del cuerpo impactante al salida %Principio de impulso y Cantidad de Moviminento: A=HCI+HPA-HCS; W=inv([Ix,-Ixy,-Ixz;-Ixy,+Iy,-Iyz;-Ixz,-Iyz,+Iz])*A(:); %Eje de Giro: w=[W(1,1),W(2,1),W(3,1)]; uw=w/norm(w); %Salida disp('La nueva velocidad angular del cuerpo rigido es:'); disp(w); disp('El eje de giro es:'); disp(uw);end

Escuela de Ingeniería Mecánica 65 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 66: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________2.3. PROGRAMACIÓN DE LA ENERGÍA CINÉTICA

A. EL DIAGRAMA DE FLUJO CORRESPONDIENTE A LA FIGURA: SWITCH

¿Cómo utilizar la programación SWITCH?

1. Al comienzo se evalúa la EXPRESIÓN.2. Si EXPRESIÓN toma el valor (o valores) especiados junto a la primera clausula

CASE, se ejecuta el conjunto de instrucciones de este caso y después se abandona la estructura SWITCH, continuando por la instrucción siguiente al END.

3. Se repite el procedimiento anterior, de forma ordenada, para cada una de las clausulas CASE que siguen.

4. Si la cláusula OTHERWISE está presente y la EXPRESIÓN no ha tomado ninguno de los valores anteriormente especiados, se ejecuta el conjunto de instrucciones correspondiente.

5. Obsérvese que se ejecuta, como máximo el conjunto de instrucciones de uno de los casos, es decir, una vez que se ha verificado un caso y se ha ejecutado su conjunto de instrucciones, no se testea el resto de casos, ya que se abandona la estructura. Obviamente, si la cláusula OTHERWISE no está presente, puede ocurrir que no se dé ninguno de los casos.Como ejemplo de utilización, se presenta el mismo proceso del Algoritmo, pero utilizando la sentencia SWITCH.

Escuela de Ingeniería Mecánica 66 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 67: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 67 Dr. Jorge A. Olortegui Yume, Ph.D.

Figura: Diagrama de Flujo para la Programación de la Energía Cinética

Page 68: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________Switch Calcular la Energía Cinética Caso 1 Calcular la Energía Cinética respecto a su Centro de Masa Switch Calcular la EC respecto a su Centro de Masa con y sin Radios de Giro Caso 1 Calcular la EC respecto a su Centro de Masa con Radios de Giro Caso 2 Calcular la EC respecto a su Centro de Masa sin Radios de Giro Otherwise Otro Caso End Caso 2 Calcular la Energía Cinética respecto a un Punto Fijo Switch Calcular la EC respecto a su Centro de Masa con y sin Radios de Giro Caso 1 Calcular la EC respecto a un Punto Fijo con Radios de Giro Caso 2 Calcular la EC respecto a un Punto Fijo sin Radios de Giro Otherwise Otro Caso End Otherwise Otro CasoEnd

B. EJECUCION DEL PROGRAMA

SOLUCION EN MATLAB (Capturas de Pantalla)

Escuela de Ingeniería Mecánica 68 Dr. Jorge A. Olortegui Yume, Ph.D.

Figura: Dinámica, R.C. Hibbeler, 12º Edición

DATOS:

m = 10kg

RDisco = 0.15m

w= [6i + 10j + 15k] rad/s

rG /O= [0i + 0.6j + 0k] m

Ω = [6i + 10j + 0k] rad/s

Page 69: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 69 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 70: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Tablero de Comandos de Matlab

Ingrese la masa del disco en kilogramos (ejemplo 10): 10

Ingrese el radio del disco en metros (ejemplo 8): 0.15

Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): 0

Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): 0.6

Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): 0

Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): 6

Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): 10

Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): 15

Ingrese la rotación del eje respecto al eje x en radianes/segundos (ejemplo 2): 6

Ingrese la rotación del eje respecto al eje y en radianes/segundos (ejemplo 6): 10

Ingrese la rotación del eje respecto al eje z en radianes/segundos (ejemplo 9): 0

T = 81.2812

SOLUCIÓN ESCRITA

1er Paso: Hallando los momentos de inercia.

Ix = Iy = 0.25m*r^2 = 0.25*10*0.15^2 = 0.05625kg.m2Iz = 0.5*m*r^2 = 0.5*10*0.15^2 = 0.1125kg.m2

2do Paso: Hallando la velocidad angular total.

w = w1+ w2 + w3 = [6i + 10j + 15k] rad/s

Escuela de Ingeniería Mecánica 70 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 71: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

3er Paso: Hallando el momento angular del centro de masa.

Hx = Ix.wx = 0.05625 (6) = 0.3375kg.m2Hy = Iy.wy = 0.05625 (10) = 0.5625kg.m2Hz = Iz.wz = 0.1125 (15) = 1.6875kg.m2

4to Paso: Hallando la velocidad del centro de masa de la rueda.

V G= Ω x rG /O= (6i + 10j) x (0.6j) = [3.6k] m/s

5to Paso: Hallando el momento angular respecto al punto fijo O.

Ho = rG /O x m. V G + HG = (0.6j) x 10(3.6k) + (0.3375i + 0.5625j + 0.6875k) = [21.9i + 0.5625j + 1.6875k] kg.m2/s

6to Paso: Hallando la energía cinética.

T = 0.5w.Ho = 0.5 (6i +10j + 15k) . (21.9375i + 0.5625j + 1.6875k) = 81.3 J

C. CODIFICACIÓN DEL PROGRAMA

% E.C- Programa que calcula la energia cinetica respecto a su centro de masa y un punto fijo. % Por: Grupo N°1% Al: 14/07/14% ------------------------------------------------------------------------clc; clear all; close all;%INGRESO DE DATOS DEL PROBLEMA:arreglo = menu('ENERGIA CINETICA','Centro de Masa','Punto Fijo');switch arreglo

Escuela de Ingeniería Mecánica 71 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 72: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ case 1 % ENERGIA CINETICA RESPECTO A SU CENTRO DE MASA------------------------------------------------------------------------------- arreglo1 = menu('¿Tienes como datos los radios de giro?','Si','No'); switch arreglo1 case 1 % ENERGIA CINETICA RESPECTO A SU CENTRO DE MASA CON RADIOS DE GIRO----------------------------------------------------- m = input('Ingrese la masa del cuerpo en kilogramos (ejemplo 3): '); % kilogramos (kg) Kx = input('Ingresa el radio de giro respecto al eje x en metros (ejemplo 4): '); % metros (m) Ky = input('Ingresa el radio de giro respecto al eje y en metros (ejemplo 6): '); % metros (m) Kz = input('Ingresa el radio de giro respecto al eje z en metros (ejemplo 8): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad del cuerpo respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad del cuerpo respecto al eje y en metros/segundos (ejemplo 6): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad del cuerpo respecto al eje z en metros/segundos (ejemplo 8): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5); IGX =(m*Kx^2); IGY =(m*Ky^2); IGZ =(m*Kz^2); Hx = (IGX*WX); Hy = (IGY*WY); Hz = (IGZ*WZ); T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) case 2 % ENERGIA CINETICA RESPECTO A SU CENTRO DE MASA SIN RADIOS DE GIRO----------------------------------------------------------- arreglo2 = menu('ENERGIA CINETICA','Anillo','Barra ','Cilindro', 'Cono','Cuadrilatero','Disco','Esfera','Media esfera'); switch arreglo2 % ENERGIA CINETICA DE UN ANILLO case 1 m = input('Ingrese la masa del anillo en kilogramos (ejemplo 3): '); % kilogramos (kg) R = input('Ingrese el radio del anillo en metros (ejemplo 2): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad del anillo respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad del anillo respecto al eje y en metros/segundos (ejemplo 6): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad del anillo respecto al eje z en metros/segundos (ejemplo 8): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5);

Escuela de Ingeniería Mecánica 72 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 73: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ IGX =((1/2)*m*R^2); IGY =((1/2)*m*R^2); IGZ = (m*R^2); Hx = (IGX*WX); Hy = (IGY*WY); Hz = (IGZ*WZ); T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) % ENERGIA CINETICA DE UNA BARRA case 2 m = input('Ingrese la masa de la barra en kilogramos (ejemplo 3): '); % kilogramos (kg) L = input('Ingrese la longitud de la barra en metros , ejemplo 10: '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la barra respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la barra respecto al eje y en metros/segundos (ejemplo 4): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la barra respecto al eje z en metros/segundos (ejemplo 6): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5); IGX = ((1/12)*m*L^2); %( kg*m ^2) IGY = ((1/12)*m*L^2); %( kg*m ^2) IGZ = (0); %( kg*m ^2) Hx = (IGX*WX); Hy = (IGY*WY); Hz = (IGZ*WZ); T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) % ENERGIA CINETICA DE UN CILINDRO case 3 m = input('Ingrese la masa del cilindro en kilogramos (ejemplo 7): '); % kilogramos (m) R = input('Ingrese el radio del cilindro en metros (ejemplo 9): '); % metros (m) L = input('Ingrese la longitud del cilindro en metros (ejemplo 3): ');% metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s)

Vx = input('Ingrese la velocidad del cilindro respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad del cilindro respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad del cilindro respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5); IGX = ((1/12)*m*(3*R^2+L^2)); %( kg*m ^2) IGY = ((1/12)*m*(3*R^2+L^2)); %( kg*m ^2) IGZ = ((1/2)*m*R^2); %( kg*m ^2) Hx = (IGX*WX);

Escuela de Ingeniería Mecánica 73 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 74: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ Hy = (IGY*WY); Hz = (IGZ*WZ); T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) % ENERGIA CINETICA DE UN CONO case 4 m = input('Ingrese la masa del cono en kilogramos (ejemplo 4): '); % kilogramos (kg) R = input('Ingrese el radio del cono en metros (ejemplo 6): '); % metros (m) H = input('Ingrese la altura del cono en metros (ejemplo 3): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad del cono respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad del cono respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad del cono respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5); IGX = ((3/80)*m*(4*R^2+H^2)); %( kg*m ^2) IGY = ((3/80)*m*(4*R^2+H^2)); %( kg*m ^2) IGZ = ((3/10)*m*R^2); %( kg*m ^2) Hx = (IGX*WX); Hy = (IGY*WY); Hz = (IGZ*WZ); T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) % ENERGIA CINETICA DE UN CUADRILATERO case 5 m = input('Ingrese la masa del cuadrilatero en kilogramos (ejemplo 5): '); % kilogramos (kg) a = input('Ingrese la longitud del lado respecto al eje y en metros (ejemplo 3): '); % metros (m) b = input('Ingrese la longitud del lado respecto al eje x en metros (ejemplo 8): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad del cuadrilatero respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s)

Vy = input('Ingrese la velocidad del cuadrilatero respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad del cuadrilatero al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5); IGX = ((1/12)*m*b^2); %( kg*m ^2) IGY = ((1/12)*m*a^2); %( kg*m ^2) IGZ = ((1/12)*m*(a^2+b^2)); %( kg*m ^2) Hx = (IGX*WX); Hy = (IGY*WY); Hz = (IGZ*WZ);

Escuela de Ingeniería Mecánica 74 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 75: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) % ENERGIA CINETICA DE UN DISCO case 6 m = input('Ingrese la masa del disco en kilogramos (ejemplo 10): '); % kilogramos (kg) R = input('Ingrese el radio del disco en metros (ejemplo 8): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad del disco respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad del disco respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad del disco respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5); IGX = ((1/4)*m*R^2); %( kg*m ^2) IGY = ((1/4)*m*R^2); %( kg*m ^2) IGZ = ((1/2)*m*R^2); %( kg*m ^2) Hx = (IGX*WX); Hy = (IGY*WY); Hz = (IGZ*WZ); T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) % ENERGIA CINETICA DE UNA ESFERA case 7 m = input('Ingrese la masa de la esfera en kilogramos (ejemplo 7): '); % kilogramos (kg) R = input('Ingrese el radio de la esfera en metros (ejemplo 5): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5); IGX = ((2/5)*m*R^2); %( kg*m ^2) IGY = ((2/5)*m*R^2); %( kg*m ^2) IGZ = ((2/5)*m*R^2); %( kg*m ^2) Hx = (IGX*WX); Hy = (IGY*WY); Hz = (IGZ*WZ); T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) % ENERGIA CINETICA DE MEDIA ESFERA case 8 m = input('Ingrese la masa de la media esfera en kilogramos (ejemplo 8): '); % kilogramos (kg) R = input('Ingrese el radio de la media esfera en metros (ejemplo 2): '); % metros (m)

Escuela de Ingeniería Mecánica 75 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 76: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la media esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la media esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la media esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vg = ((Vx^2+Vy^2+Vz^2)^0.5); IGX = (0.259*m*R^2); %( kg*m ^2) IGY = (0.259*m*R^2); %( kg*m ^2) IGZ = ((2/5)*m*R^2); %( kg*m ^2) Hx = (IGX*WX); Hy = (IGY*WY); Hz = (IGZ*WZ); T = 0.5*(m*Vg^2+WX*Hx+WY*Hy+WZ*Hz) otherwise disp('figura no conocida!!!!') end end case 2 % ENERGIA CINETICA RESPECTO A UN PUNTO FIJO----------------------------------------------------------------------------------- arreglo3 = menu('¿Tienes como datos los radios de giro?','Si','No'); switch arreglo3 case 1 % ENERGIA CINETICA RESPECTO A UN PUNTO FIJO CON RADIOS DE GIRO-------------------------------------------------------- m = input('Ingrese la masa del cuerpo en kilogramos (ejemplo 3): '); % kilogramos (kg) Kx = input('Ingresa el radio de giro respecto al eje x en metros (ejemplo 4): '); % metros (m) Ky = input('Ingresa el radio de giro respecto al eje y en metros (ejemplo 6): '); % metros (m) Kz = input('Ingresa el radio de giro respecto al eje z en metros (ejemplo 8): '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad del cuerpo respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s)

Escuela de Ingeniería Mecánica 76 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 77: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ Vy = input('Ingrese la velocidad del cuerpo respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad del cuerpo respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Hgx = (m*Vz*dy-m*Vy*dz); Hgy = (m*Vx*dz-m*Vz*dx); Hgz = (m*Vy*dx-m*Vx*dy); IX =(m*Kx^2); IY =(m*Ky^2); IZ =(m*Kz^2); Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) case 2 % ENERGIA CINETICA RESPECTO A UN PUNTO FIJO SIN RADIOS DE GIRO-------------------------------------------------------------- arreglo4 = menu('ENERGIA CINETICA','Anillo','Barra ','Cilincro', 'Cono','Cuadrilatero','Disco','Esfera','Media esfera'); switch arreglo4 % ENERGIA CINETICA DE UN ANILLO case 1 m = input('Ingrese la masa del anillo en kilogramos (ejemplo 3): '); % kilogramos (kg) R = input('Ingrese el radio del anillo en metros (ejemplo 2): '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s)

Vy = input('Ingrese la velocidad de la esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Hgx = (m*Vz*dy-m*Vy*dz); Hgy = (m*Vx*dz-m*Vz*dx); Hgz = (m*Vy*dx-m*Vx*dy); IX =((1/2)*m*R^2); IY =((1/2)*m*R^2); IZ = (m*R^2);

Escuela de Ingeniería Mecánica 77 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 78: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) % ENERGIA CINETICA DE UNA BARRA case 2 m = input('Ingrese la masa de la barra en kilogramos (ejemplo 3): '); % kilogramos (kg) L = input('Ingrese la longitud de la barra en metros (ejemplo 10): '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Hgx = (m*Vz*dy-m*Vy*dz); Hgy = (m*Vx*dz-m*Vz*dx); Hgz = (m*Vy*dx-m*Vx*dy); IX =((1/12)*m*L^2); %( kg*m ^2) IY = ((1/12)*m*L^2); %( kg*m ^2) IZ = (0); %( kg*m ^2) Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) % ENERGIA CINETICA DE UN CILINDRO case 3 m = input('Ingrese la masa del cilindro en kilogramos (ejemplo 7): '); % kilogramos (m) R = input('Ingrese el radio del cilindro en metros (ejemplo 9): '); % metros (m) L = input('Ingrese la longitud del cilindro en metros (ejemplo 3): ');% metros (m)

Escuela de Ingeniería Mecánica 78 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 79: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Hgx = (m*Vz*dy-m*Vy*dz); Hgy = (m*Vx*dz-m*Vz*dx); Hgz = (m*Vy*dx-m*Vx*dy); IX =((1/12)*m*(3*R^2+L^2)); %( kg*m ^2) IY =((1/12)*m*(3*R^2+L^2)); %( kg*m ^2) IZ= ((1/2)*m*R^2); %( kg*m ^2) Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) % ENERGIA CINETICA DE UN CONO case 4 m = input('Ingrese la masa del cono en kilogramos (ejemplo 3): '); % kilogramos (kg) R = input('Ingrese el radio del cono en metros (ejemplo 6): '); % metros (m) H = input('Ingrese la altura del cono en metros (ejemplo 3): '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m)

dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s)

Escuela de Ingeniería Mecánica 79 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 80: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Hgx = (m*Vz*dy-m*Vy*dz); Hgy = (m*Vx*dz-m*Vz*dx); Hgz = (m*Vy*dx-m*Vx*dy); IX = ((3/80)*m*(4*R^2+H^2)); %( kg*m ^2) IY = ((3/80)*m*(4*R^2+H^2)); %( kg*m ^2) IZ = ((3/10)*m*R^2); %( kg*m ^2) Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) % ENERGIA CINETICA DE UN CUADRILATERO case 5 m = input('Ingrese la masa del cuadrilatero en kilogramos (ejemplo 5): '); % kilogramos (kg) a = input('Ingrese la longitud del lado respecto al eje y en metros (ejemplo 3): '); % metros (m) b = input('Ingrese la longitud del lado respecto al eje x en metros (ejemplo 8): '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Hgx = (m*Vz*dy-m*Vy*dz); Hgy = (m*Vx*dz-m*Vz*dx);

Escuela de Ingeniería Mecánica 80 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 81: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ Hgz = (m*Vy*dx-m*Vx*dy); IX = ((1/12)*m*b^2); %( kg*m ^2) IY = ((1/12)*m*a^2); %( kg*m ^2) IZ = ((1/12)*m*(a^2+b^2)); %( kg*m ^2) Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) % ENERGIA CINETICA DE UN DISCO case 6 m = input('Ingrese la masa del disco en kilogramos (ejemplo 10): '); % kilogramos (kg) R = input('Ingrese el radio del disco en metros (ejemplo 8): '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vgx = (Wy*dz-Wz*dy); Vgy = (Wz*dx-Wx*dz); Vgz = (Wx*dy-Wy*dx); Hgx = (m*Vgz*dy-m*Vgy*dz); Hgy = (m*Vgx*dz-m*Vgz*dx); Hgz = (m*Vgy*dx-m*Vgx*dy); IX = ((1/4)*m*R^2); %( kg*m ^2) IY = ((1/4)*m*R^2); %( kg*m ^2) IZ = ((1/2)*m*R^2); %( kg*m ^2) Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) % ENERGIA CINETICA DE UNA ESFERA case 7 m = input('Ingrese la masa de la esfera en kilogramos (ejemplo 7): '); % kilogramos (kg) R = input('Ingrese el radio de la esfera en metros (ejemplo 5): '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m)

Escuela de Ingeniería Mecánica 81 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 82: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Vx = input('Ingrese la velocidad de la esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Hgx = (m*Vz*dy-m*Vy*dz); Hgy = (m*Vx*dz-m*Vz*dx); Hgz = (m*Vy*dx-m*Vx*dy); IX = ((2/5)*m*R^2); %( kg*m ^2) IY = ((2/5)*m*R^2); %( kg*m ^2) IZ = ((2/5)*m*R^2); %( kg*m ^2) Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) % ENERGIA CINETICA DE MEDIA ESFERA case 8 m = input('Ingrese la masa de la media esfera en kilogramos (ejemplo 8): '); % kilogramos (kg) R = input('Ingrese el radio de la media esfera en metros (ejemplo 2): '); % metros (m) dx = input('Ingrese la distancia del centro de masa al eje X en metros (ejemplo 2): '); % metros (m) dy = input('Ingrese la distancia del centro de masa al eje Y en metros (ejemplo 8): '); % metros (m) dz = input('Ingrese la distancia del centro de masa al eje Z en metros (ejemplo 6): '); % metros (m) WX = input('Ingrese la velocidad angular respecto al eje X en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) WY = input('Ingrese la velocidad angular respecto al eje Y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) WZ = input('Ingrese la velocidad angular respecto al eje Z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s) Wx = input('Ingrese la rotacion del eje respecto al eje x en radianes/segundos (ejemplo 2): '); % radianes/segundos (rad/s) Wy = input('Ingrese la rotacion del eje respecto al eje y en radianes/segundos (ejemplo 6): '); % radianes/segundos (rad/s) Wz = input('Ingrese la rotacion del eje respecto al eje z en radianes/segundos (ejemplo 9): '); % radianes/segundos (rad/s)

Escuela de Ingeniería Mecánica 82 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 83: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ Vx = input('Ingrese la velocidad de la esfera respecto al eje x en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vy = input('Ingrese la velocidad de la esfera respecto al eje y en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Vz = input('Ingrese la velocidad de la esfera respecto al eje z en metros/segundos (ejemplo 2): '); % metros/segundos (m/s) Hgx = (m*Vz*dy-m*Vy*dz); Hgy = (m*Vx*dz-m*Vz*dx); Hgz = (m*Vy*dx-m*Vx*dy); IX = (0.259*m*R^2); %( kg*m ^2) IY = (0.259*m*R^2); %( kg*m ^2) IZ = ((2/5)*m*R^2); %( kg*m ^2) Hx = (IX*WX); Hy = (IY*WY); Hz = (IZ*WZ); Hox = (Hgx+Hx); Hoy = (Hgy+Hy); Hoz = (Hgz+Hz); T = 0.5*(WX*Hox+WY*Hoy+WZ*Hoz) otherwise disp('figura no conocida!!!!') end endend

2.4. PROGRAMACIÓN DE LAS ECUACIONES DEL MOVIMIENTO

Escuela de Ingeniería Mecánica 83 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 84: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

2.5. PROGRAMACIÓN DEL MOVIMIENTO GIROSCÓPICO

A. ¿QUÉ ES EL MOVIMIENTO GIROSCÓPICO?

Escuela de Ingeniería Mecánica 84 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 85: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________Este tipo de movimiento esta desarrollado por las ecuaciones que definen el movimiento de un

cuerpo simétrico con respecto a un eje y que gira en torno a un punto fijo.

El movimiento del cuerpo se analizará mediante los angulos de Euler θ,Ψ,Φ. Para ver como

definen la posición de un cuerpo, se analizará en las siguientes imágenes.

Entonces vemos que la velocidad angular del cuerpo es:

w=wxi + wyj + wzk

w=

y la velocidad angular de los ejes es

Ω= Ωxi + Ωyj + Ωzk

Escuela de Ingeniería Mecánica 85 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 86: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Ω =

Hacemos que los ejes x,y,z representen los ejes de inercia del cuerpo, y entonces los momentos inercia

seran Ixx=Iyy=I e Izz=Iz

Como Ω ≠ w, se utilizan estas ecuaciones :

Al reemplazar en las ecuaciones las respectivas componentes angulares seran :

Debido a la complejidad de las ecuaciones diferenciales de segundo grado no lineales, se prefiere usar un

caso especial, en el cual angulo de nutacion θ,el angulo de precesión Φ y el angulo de rotacion Ψ son

constantes.

Por lo tanto , nos queda :

∑ Mx=−I ø2 sinθ∗cosθ+ I z ø sin θ ¿¿¿¿¿

∑ My=0

∑ Mz=0

Simplificando : ∑ Mx= ø ¿

Escuela de Ingeniería Mecánica 86 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 87: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________La importancia que el efecto de rotacion Ψ tiene en un momento respecto al eje x se demuestra en el

ejercicio de rueda con giro sin desplazamiento, donde θ=90.

Se obtiene

∑ Mx=¿ I z ωz Ωy ¿

B. CODIFICACIÓN DEL PROGRAMA

%MOVIMIENTO GIROSCOPICO

g=9.81; % sea g la aceleracion de la gravedad en m/s^2

Imagen=imshow('MOV_GIROSCOPICO_IMG1.jpg')

seleccion1=menu('Tipo de Problema','Cuerpo General','rueda giratoria sin delizamiento');

switch seleccion1

Escuela de Ingeniería Mecánica 87 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 88: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ case 1

Imagen2=imshow('MOV_GIROSCOPICO_CUERPO_GENERAL.jpg')

arreglo1=menu('El cuerpo tiene forma conocida?','Si','No');

switch arreglo1

case 1

opcion1=menu('Diga que figura es','Cono');

Imagen3=imshow('MOV_GIROSCOPICO_TROMPO.jpg')

switch opcion1

case 1

opcion11=menu('QUE DESEE HALLAR?','Momento debido al movimiento?','ws')

switch opcion11

case 1

m=input('ingrese la masa en kg del cuerpo:');

theta=input('identifique el angulo de nutacion en grados sexagesimales:');

ws=input('ingrese el spin del cuerpo en rad/s:');

wp=input('ingrese la velocidad angular de precesion del cuerpo en rad/s:');

r=input('ingrese el radio del cono en metros:');

h=input('ingrese la altura del cono:');

ROG=G_CONO(h);

I=I_axial_cono(m,r);

I_ext=I_cono(m,r,h);

Momento=Mov_Momento(m,theta,wp,ws,I_ext,I)

case 2

m=input('ingrese la masa en kg del cuerpo:');

theta=input('identifique el angulo de nutacion en grados sexagesimales:');

wp=input('ingrese la velocidad angular de precesion del cuerpo en rad/s:');

r=input('ingrese el radio del cono en metros:');

h=input('ingrese la altura del cono:');

ROG=G_CONO(h);

I=I_axial_cono(m,r)

I_ext=I_cono(m,r,h)

Escuela de Ingeniería Mecánica 88 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 89: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ Mpeso=M_peso(m,ROG,g,theta)

ws=calc_ws(Mpeso,I,I_ext,theta,wp)

end

end

case 2

Imagen4=imshow('MOV_GIROSCOPICO.jpg')

opcion2=menu('QUE LE PIDE EL PROBLEMA?','Momento debido al movimiento?','ws');

switch opcion2

case 1

m=input('ingrese la masa en kg del cuerpo:');

theta=input('identifique el angulo de nutacion en grados sexagesimales:');

ws=input('ingrese el spin del cuerpo en rad/s:');

wp=input('ingrese la velocidad angular de precesion del cuerpo en rad/s:');

kext=input('ingrese el radio de giro del eje exterior:');

kaxial=input('ingrese el radio de giro del eje axial:');

I=Ik(m,kaxial);

I_ext=Ikext(m,kext);

Momento=Mov_Momento(m,theta,wp,ws,I_ext,I)

case 2

m=input('ingrese la masa en kg del cuerpo:');

ROG=input('ingrese la distancia del centro de masa al O :');

theta=input('identifique el angulo de nutacion en grados sexagesimales:');

wp=input('ingrese la velocidad angular de precesion del cuerpo en rad/s:');

kext=input('ingrese el radio de giro del eje exterior:');

kaxial=input('ingrese el radio de giro del eje axial:');

Mpeso=M_peso(m,ROG,g,theta);

I=Ik(m,kaxial);

I_ext=Ikext(m,kext);

ws=calc_ws(Mpeso,I,I_ext,theta,wp )

end

Escuela de Ingeniería Mecánica 89 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 90: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

end

case 2

Imagen5=imshow('MOV_RUEDA_SIN_DESL.jpg')

opcion3=menu('QUE LE PIDE EL PROBLEMA?','Momento debido al movimiento?','ws','La fuerza

normal')

switch opcion3

case 1

m=input('ingrese la masa en kg del cuerpo:');

K_G=input('ingrese el radio de giro de la rueda:');

wp=input('ingrese la velocidad angular de precesion del cuerpo en rad/s:');

r=input('ingrese el radio de la rueda en metros:');

d=input('ingrese la distancia del centro de masa respecto a O, en metros:');

Momento=M_rueda_sin_desl(m,K_G,d,wp,ws)

ws=ws_rueda(r,d,wp);

N=F_normal(m,K_G,d,wp,ws,g);

case 2

m=input('ingrese la masa en kg del cuerpo:');

K_G=input('ingrese el radio de giro de la rueda:');

wp=input('ingrese la velocidad angular de precesion del cuerpo en rad/s:');

r=input('ingrese el radio de la rueda en metros:');

d=input('ingrese la distancia del centro de masa respecto a O, en metros:');

ws=ws_rueda(r,d,wp)

Momento=M_rueda_sin_desl(m,K_G,d,wp,ws);

N=F_normal(m,K_G,d,wp,ws,g);

case 3

m=input('ingrese la masa en kg del cuerpo:');

K_G=input('ingrese el radio de giro de la rueda:');

wp=input('ingrese la velocidad angular de precesion del cuerpo en rad/s:');

r=input('ingrese el radio de la rueda en metros:');

d=input('ingrese la distancia del centro de masa respecto a O, en metros:');

ws=ws_rueda(r,d,wp);

Escuela de Ingeniería Mecánica 90 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 91: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ Momento=M_rueda_sin_desl(m,K_G,d,wp,ws);

N=F_normal(m,K_G,d,wp,ws,g)

end

end

C. EJECUCIÓN DE PROGRAMA

Ejemplo 1

SOLUCION EN MATLAB

Iniciamos abriendo nuestro archivo ejecutable Mov_Movimiento (fue descrito en la pag. anterior).

Escuela de Ingeniería Mecánica 91 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 92: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Al iniciar el programa nos da la opcion de elegir el tipo de problema que tenemos, si es de cuerpo general

o si es una rueda con giro sin deslizamiento

A

continuacion desarrollaremos un ejm para ver el funcionamiento del programa:

Escuela de Ingeniería Mecánica 92 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 93: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Como nuestro problema es un cuerpo general, clickeamos en la 1ra opcion y continuamos con lo

requerido.

Continuando con el desarrollo del ejm, tenemos la masa , los radios de giro , la distancia , angulo de

nutacion y velocidad angular de precesion. Ademas como nuestro problema nos pide hallar la velocidad

angular spin (ws).

Escuela de Ingeniería Mecánica 93 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 94: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Ingresamos los valores del ejm a nuestro problema y obtenemos nuestra respuesta

VALIDACION ESCRITA

Escuela de Ingeniería Mecánica 94 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 95: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________Ejemplo 2

SOLUCION EN MATLAB

Para este problema usaremos nuestra opción de ruda giratoria sin deslizamiento.

Clickeamos la 3ra opción para encontrar N.

Escuela de Ingeniería Mecánica 95 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 96: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Cambiamos las magnitudes, ya que el programa funciona para sistema kgf.

MASA:

30 pounds =

13.6077711 kilograms

Radio de giro (Kg)

1.2 feet =

0.36576 meters

Distancia AB:

3 feet =

0.9144 meters

Radio de la Rueda:

1.8 feet =

0.54864 meters

Escuela de Ingeniería Mecánica 96 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 97: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Ingresamos nuestros nuevos datos:

Escuela de Ingeniería Mecánica 97 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 98: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

2.6. PROGRAMACIÓN DEL MOVIMIENTO SIN PAR DE TORSIÓN

A. ¿QUÉ ES EL MOVIMIENTO SIN PAR DE TORSIÓN?

Cuando la única fuerza externa que actúa en un cuerpo es provocada por la gravedad, el

movimiento general de un cuerpo se conoce como movimiento sin par de torsión. Este tipo de

movimiento es característico de los planetas, satélites artificiales y proyectiles, siempre que se

ignore la fricción del aire.

Para describir las características de este movimiento, se supondrá que la distribución de la masa

del cuerpo es axialmente simétrica. El satélite que se muestra en la siguiente imagen es un

claro ejemplo de como es este cuerpo, donde el eje “z” representa el eje de simetría axial. El eje

de coordenadas se localiza sobre el centro de masa G. Como la única fuerza presente es la de la

gravedad, la suma de momentos con respecto al centro de masa es cero.

∑ MG=0

∑ MG=H g

Esto quiere decir:

HG=constante

En el instante considerado, se supondrá que el

marco de referencia inercial está orientado de modo

que el eje “Z” positivo está dirigido a lo largo de Hg y

que el eje “y” queda en el plano formado por los ejes

“z” y “Z”, según observamos en la figura. El angulo

entre estos ejes es ϴ, y por consiguiente con esta

selección de ejes la cantidad de movimiento angulas

puede expresarse como

HG=HG sinϴ+ HGcosϴ

Escuela de Ingeniería Mecánica 98 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 99: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________HG=I w x i+ I w y j+ I z w z k

Al igualar las componentes de las dos ecuaciones anteriores, obtenemos:

w x=0w y=HG sinϴ

Iw z=

HGcosϴ

I z

O bien:

w=HG sinϴ

Ij+

HGcosϴ

I z

k

Si de la misma manera, igualamos los componentes de la velocidad angular, con las obtenidas

del movimiento giroscópico:

ϴ=0 ø sinϴ=HG sinϴ

Iø cosϴ+Ψ =

HGcosϴ

I z

Al resolver, obtenemos que:

ϴ=0 ø=HG

IΨ=

(I −I z)I∗I z

HG cosϴ

Por lo tanto, para el movimiento sin par de torsión de un cuerpo axialmente simétrico, el ángulo

ϴ formado entre el vector de cantidad de movimiento angular y la rotación del cuerpo permanece

constante. Además, la cantidad de movimiento angular HG , la precesión ø y la rotación Ψ del

cuerpo permanecen constantes en todo momento durante el movimiento.

Al despejar HG de la segunda y tercera ecuación obtenemos la siguiente relación entre la

rotación y precesión:

Ψ =(I−I z)

I z

∗ø∗cosϴ

Escuela de Ingeniería Mecánica 99 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 100: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 100 Dr. Jorge A. Olortegui Yume, Ph.D.

Precesión Regular

Precesión Retrógrada

Precesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión RegularPrecesión Regular

Precesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión RetrógradaPrecesión Retrógrada

Page 101: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

B. CODIFICACIÓN DEL PROGRAMA

%ParLibre

%IMAGEN DE GUIA PARA INGRESAR LOS DATOS DEL PROBLEMA

Imagen=imshow('parlibre.jpg');

%INGRESO DATOS DE USUARIO

seleccion1=menu('¿Qué es lo que necesita calcular?', 'Cantidad de Movimiento

Angular Hg', 'Precesión = eje "Z" (fiP)', 'Spin = eje "z" (psiP)');

switch seleccion1

case 1

opcion1=menu('¿Con qué dato cuenta? distinto de la masa y los

radios de giro','W de precesión(fiP)','W de

spin(psiP)');

switch opcion1

case 1

fiP=input('ingrese la W de precesión(fiP) en rad/s (Ejm:

13 ): ');

M=input('ingrese la masa del cuerpo en Kg (Ejm: 56) : ');

R=input('ingrese el radio de giro respecto a su ejes

transversales "x" y "y" en metros ( Ejm: 4 ):

');

Hg = CalculodeHg( fiP,M,R )

case 2

psiP=input('ingrese la W de spin(psiP) en rad/s (Ejm: 14

): ');

M=input('ingrese la masa del cuerpo en Kg (Ejm: 56) : ');

Rz=input('ingrese el radio de giro respecto a su eje de

simetria axial "z" en metros ( Ejm: 3 ): ');

R=input('ingrese el radio de giro respecto a su ejes

transversales "x" y "y" en metros ( Ejm: 4 ):

');

Tetha=input('ingrese el angulo entre el eje axial "z" y

el eje "Z" ( Ejm: 43 ): ');

Hg = CalculodeHg2( psiP,M,R,Rz,Tetha )

end

case 2

opcion2=menu('¿Con qué dato cuenta? distinto de la masa y los

radios de giro','Modulo de la Cantidad de

Escuela de Ingeniería Mecánica 101 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 102: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Movimiento Angular Hg','W spin = eje "z" (psiP)');

switch opcion2

case 1

Hg=input('Ingrese el Modulo de la Cantidad de Movimiento

en Kg*m^2/s (Ejm: 0.0345 ): ');

M=input('ingrese la masa del cuerpo en Kg (Ejm: 56) : ');

R=input('ingrese el radio de giro respecto a su ejes

transversales "x" y "y" en metros ( Ejm: 4 ):

');

fiP = CalculodefiP( Hg,M,R )

case 2

psiP = input('ingrese la W de spin(psiP) en rad/s (Ejm:

14 ): ');

M = input('ingrese la masa del cuerpo en Kg (Ejm: 56) :

');

Rz = input('ingrese el radio de giro respecto a su eje

de simetria axial "z" en metros ( Ejm: 3 ):

');

R = input('ingrese el radio de giro respecto a su ejes

transversales "x" y "y" en metros ( Ejm: 4 ):

');

Tetha = input('ingrese el angulo entre el eje axial "z" y

el eje "Z" ( Ejm: 43 ): ');

fiP = CalculodefiP2( psiP,M,R,Rz,Tetha )

end

case 3

opcion3=menu('¿Con qué dato cuenta? distinto de la masa y los

radios de giro?','Modulo de la Cantidad de

Movimiento Angular Hg','W precesión = eje "Z"

(fiP)');

switch opcion3

case 1

Hg = input('Ingrese el Modulo de la Cantidad de

Movimiento en Kg*m^2/s (Ejm: 0.0345 ): ');

M = input('ingrese la masa del cuerpo en Kg (Ejm: 56) :

');

Rz = input('ingrese el radio de giro respecto a su eje

Escuela de Ingeniería Mecánica 102 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 103: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

de simetria axial "z" en metros ( Ejm: 3 ):

');

R = input('ingrese el radio de giro respecto a su ejes

transversales "x" y "y" en metros ( Ejm: 4 ):

');

Tetha = input('ingrese el angulo entre el eje axial "z" y

el eje "Z" ( Ejm: 43 ): ');

psiP = CalculodepsiP( Hg,M,R,Rz,Tetha )

case 2

fiP = input('ingrese la W de precesión(fiP) en rad/s

(Ejm: 14 ): ');

M = input('ingrese la masa del cuerpo en Kg (Ejm: 56) :

');

Rz = input('ingrese el radio de giro respecto a su eje

de simetria axial "z" en metros ( Ejm: 3 ):

');

R = input('ingrese el radio de giro respecto a su ejes

transversales "x" y "y" en metros ( Ejm: 4 ):

');

Tetha = input('ingrese el angulo entre el eje axial "z" y

el eje "Z" ( Ejm: 43 ): ');

psiP = CalculodepsiP2( fiP,M,R,Rz,Tetha )

end

end

Escuela de Ingeniería Mecánica 103 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 104: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

C. EJECUCIÓN DE PROGRAMA

SOLUCION EN MATLAB

Escuela de Ingeniería Mecánica 104 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 105: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

En todos los problemas de este tipo, se conocen la masa del cuerpo y los radio de giro respecto

del eje de simetría axial “z” y respecto de los ejes transversales de simetría “x” y “y”; además se

conoce al menos uno de los siguientes datos: velocidad de precesión (sobre el eje “Z”);

velocidad de spin (sobre el eje “z”) o el módulo de la cantidad de movimiento angula.

Ejercicio para desarrollar:

Comenzaremos por calcular el módulo de la cantidad de movimiento angular

Escuela de Ingeniería Mecánica 105 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 106: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Como se puede observar, el programa necesita de otro dato diferente de la masa y radios de

giros, el problema nos brinda el valor de la velocidad de precesión.

Damos click en W de precesión (fiP=ø)

Escuela de Ingeniería Mecánica 106 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 107: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Como podemos observar, el programa nos pedirá que ingresemos los datos que tenemos del

problema. A continuación calcularemos la velocidad spin, para ello seleccionamos la opción de

Spin = eje “z” (psiP=Ψ )

En la siguiente ventana seleccionamos el dato conocido que tenemos, en nuestro caso la

velocidad de precesión:

Escuela de Ingeniería Mecánica 107 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 108: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

En este caso, a diferencia del anterior, el problema necesita de los demás datos que el problema

nos brinda, en el cálculo anterior no todos fueron necesarios para los cálculos.

Escuela de Ingeniería Mecánica 108 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 109: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

VALIDACIÓN ESCRITA

En esta sección presentaremos el mismo ejercicio resuelto por el programa, pero resuelto a

mano, con la finalidad de verificar si el programa está haciendo los cálculos de manera correcta.

Como podemos observan, los resultados obtenidos tanto en el desarrollo computacional y el

Escuela de Ingeniería Mecánica 109 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 110: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________3.1. PROGRAMACIÓN DE VIBRACIONES AMORTIGUADAS

A. EL DIAGRAMA DE FLUJO CORRESPONDIENTE

Este diagrama se repite para los tres casos:

Escuela de Ingeniería Mecánica 110 Dr. Jorge A. Olortegui Yume, Ph.D.

Figura: diagrama de flujo para movimiento libre amortiguado

Page 111: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Figura: diagrama de flujo para movimiento libre amortiguado

Escuela de Ingeniería Mecánica 111 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 112: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Figura: diagrama de flujo para movimiento libre amortiguado

B. CODIFICACIÓN DEL PROGRAMA

switch case 1 %Sumatoria de fuerzas switch case 1 % EJE X

if n==1 (CASO 1) elseif n==2 (CASO 2) elseif n==3 (CASO 3) elseif n==4 (CASO 4)end if m==1 (CASO 1) elseif m==2 (CASO 2) elseif m==3 (CASO 3) elseif m==4 (CASO 4)end case 2 % EJE Y if n==1 (CASO 1) elseif n==2 (CASO 2) elseif n==3 (CASO 3) elseif n==4 (CASO 4) end if m==1 (CASO 1) elseif m==2 (CASO 2) elseif m==3 (CASO 3) elseif m==4(CASO 4)

Escuela de Ingeniería Mecánica 112 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 113: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ end end case 2 % sumatoria de momentos if n==1 (CASO 1) elseif n==2 (CASO 2) elseif n==3 (CASO 3) elseif n==4 (CASO 4) end if m==1 (CASO 1) elseif m==2 (CASO 2) elseif m==3 (CASO 3) elseif m==4 (CASO 4) end

VIENE: de tres casos: sumatoria en eje x, sumatoria en eje y, sumatoria de momentos

% Determinar la ecuación y el tipo de amortiguamiento

if E > 1 (CASO 1)

elseif E==1 (CASO 2) elseif 0<E && E<1 (CASO 3) elseif E==0 (CASO 4) end

C. EJECUCIÓN DE PROGRAMA

SOLUCIÓN EN MATLAB

Escuela de Ingeniería Mecánica 113 Dr. Jorge A. Olortegui Yume, Ph.D.

DATOS:

m = 25kg

n° de resortes empleados : 3

n° de amortiguadores empleados:2

Page 114: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

1. Primero ejecutaremos el archivo function: amort (movimiento libre amortiguado), nos aparece una ventana de presentación del mismo.

Escuela de Ingeniería Mecánica 114 Dr. Jorge A. Olortegui Yume, Ph.D.

DATOS:

m = 25kg

n° de resortes empleados : 3

n° de amortiguadores empleados:2

Page 115: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

2. Se observa en la figura del problema q el cuerpo comenzara a oscilar hacia arriba y hacia abajo es decir en el eje “y” , por lo tanto escogemos tipo de resolución : Sumatoria de fuerzas , EJE Y.

3. Después de especificar el caso en el que estamos trabajando, procedemos a colocar adecuadamente los datos. obteniendo así un movimiento sobre amortiguado

4. ¿Qué pasaría si disminuimos la constante de amortiguamiento hasta 10N.s/m?

Se ingresan los mismos datos cambiando el valor de C

5. Obteniendo así un movimiento sub amortiguado , cuya grafica es :

Escuela de Ingeniería Mecánica 115 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 116: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

Escuela de Ingeniería Mecánica 116 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 117: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

3.2. PROGRAMACIÓN DE VIBRACIONES NO AMORTIGUADAS

A. MARCO TEORICO

La vibración libre ocurre cuando el movimiento se mantiene por fuerzas gravitacionales o elásticas, como el movimiento oscilatorio de un péndulo o la vibración de una barra elástica. El movimiento no amortiguado es el más simple de movimiento vibratorio, representada en la figura 3.1.

Entonces, el movimiento de vibración ocurre cuando el bloque se suelta desde una posición desplazada x de modo que el resorte tira del bloque. Éste alcanzará una velocidad de modo que dejará su posición de equilibrio cuando x=0, y siempre que la superficie de soporte esté lisa, el bloque oscilará de un lado a otro.

La trayectoria del movimiento dependiente del tiempo del bloque puede determinarse con la ecuación de movimiento al bloque cuando está en la posición desplazada x. El diagrama de cuerpo libre se muestra en la figura 3.2. La fuerza de restauración elástica F=kx siempre está dirigida hacia la posición de equilibrio, mientras que se supone que la aceleración a actúe en la dirección del desplazamiento positivo. Como a = d2x/dt2 = x’’, tenemos:

+ ∑x

¿max : -kx = mx’’

De esta igualdad nos damos cuenta de que la aceleración es proporcional al desplazamiento del bloque. El movimiento descrito de esta manera se llama movimiento armónico simple. Al reordenar los términos en una “forma estándar” obtenemos:

Escuela de Ingeniería Mecánica 117 Dr. Jorge A. Olortegui Yume, Ph.D.

Figura 3.1

Figura 3.2

Page 118: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________X’’ + wn

2x = 0

La contante wn se llama frecuencia natural, y en este caso es:

wn = (k/m)

Esta ecuación también puede obtenerse si consideramos que el bloque, como podemos ver en las figuras 3.3 y 3.4.

+∑y

¿may : -W – ky + W = my’’

O bien

y’’ + wn2y = 0

La solución general de esta ecuación y de la anterior (para movimiento horizontal), viene a ser esta nueva ecuación, la cual será la ecuación de movimiento:

x(t) = Xsen( wnt + )

Si reemplazamos las condiciones iniciales del sistema, obtenemos:

Xo = Xsen & vo = Xwncos

Entonces dividiendo ambas ecuaciones tendremos que:

tan = (wnxo)/vo X = ((wnxo)2 + vo2) /wn

Escuela de Ingeniería Mecánica 118 Dr. Jorge A. Olortegui Yume, Ph.D.

Figura 3.3

Figura 3.4

Page 119: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________ B. EJECUCIÓN DEL PROGRAMA

SOLUCIÓN CON MATLAB

Escuela de Ingeniería Mecánica 119 Dr. Jorge A. Olortegui Yume, Ph.D.

Ejemplo: Se suspende un bloque de 6 kg de un resorte cuya rigidez es de k = 200 N/m. Si al bloque se le imprime una velocidad hacia arriba de 0.4 m/s cuando está a 75 mm por encima de su posición de equilibrio, determine la ecuación que describe el movimiento, la frecuencia natural y su ángulo de desfase. Suponga que el desplazamiento positivo es hacia abajo.

DATOS:

m = 6kg

k = 200 N/m

v0 = -0.4 m/s

x0 = -0.075 m

Page 120: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

En esta segundo captura de pantalla podemos observar como el programa nos pide que le ingresemos los datos que no da el problema y a continuación halla las distintas variables como por ejemplo: - wn : velocidad angular natural

- T : periodo de oscilación

- X : amplitud

- fi : ángulo de desfase

- x1: es la posición para un determinado instante

En esta tercera captura de pantalla podemos ver la gráfica de la ecuación de movimiento y encima de esta la ecuación de movimiento, además del instante en el cual se analizó la ecuación.

Escuela de Ingeniería Mecánica 120 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 121: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________

SOLUCIÓN ESCRITA

DATOS:

m = 6kgk = 200 N/mv0 = -0.4 m/sx0 = -0.075 m

Tenemos que:

wn = (k/m) , reemplazando los valores tendríamos que :

wn = (200/6)

wn = 5.7735 rad/s

Sabemos también que:

tan = (wnxo)/vo reemplazando los datos, tenemos que:

tan = (5.7735*-0.075)/-0.4

= 0.825 rad

Y por último, para poder encontrar la ecuación del movimiento necesitamos la amplitud, entonces:

X = ((wnxo)2 + vo2) /wn reemplazando los valores obtendríamos:

X = ((5.7735*-0.075)2 + (-0.4)2) /5.7735

X = 0.102 m

Por lo tanto la ecuación de movimiento seria la siguiente:

X = 0.102sen(5.7735t+0.825)

Escuela de Ingeniería Mecánica 121 Dr. Jorge A. Olortegui Yume, Ph.D.

Page 122: Programación Del Curso Dinámica II en Matlab

_____________________________________________________________________________Laboratorio de Dinámica II Universidad Nacional de Trujillo

PROGRAMACIÓN DEL CURSO DINÁMICA II EN MATLAB_____________________________________________________________________________CONCLUSIONES

1. Debido a la gran cantidad de problemas diferentes, los programas hechos no son lo suficientemente flexibles para adaptarse a cualquier tipo de problemas, de tal forma que su uso está un tanto limitado

2. La interface gráfica de usuario (G.U.I.) resulta bastante útil a la hora de ubicarse en el ingreso de datos y facilita esto en gran medida, sin embargo, la interface trabaja en un entorno diferente al workspace de matlab. El grupo desconoce algún método para exportar e importar datos entre estos dos entornos, por lo que se limitó el uso de (G.U.I.) a solo presentaciones

3. El grupo desconoce, alguna forma para ejecutar archivos del tipo script desde archivos scrpts, por lo que obtamos en usar (G.U.I.) , de esta forma englobamos un archivo scipt en un archivo función que puede ser ejecutado a través de un archivo script administrador

4. El uso de la herramienta simmechanis, requiere conocimientos de programación en simulink, el máximo alcance que tuvo el grupo fue el de resolver un problema único pero no generalizado, por lo que se desistió.

5. Como bien es sabido los datos obtenidos en este tipo de análisis (Cinética y Cinemática del cuerpo Rígido) son instantáneos, pero a través de matlab podemos extrapolar esta información a más casos cambiando de parámetro, de tal forma que obtengamos bastantes valores instantáneos, de esta forma podemos transformar nuestro Modelo matemático en una simulación matemática, ya que se tendría una solución continua en cada instante de un intervalo de tiempo

Escuela de Ingeniería Mecánica 122 Dr. Jorge A. Olortegui Yume, Ph.D.