Está en la página 1de 19

Grado en Ingeniera

Mecanica (2 curso)
Curso 2011-12

Universidad
P
ublica de Navarra
Nafarroako
Unibertsitate Publikoa

Practica 2.
Ecuaciones de enlace con

3D_Mec

Juan Miguel Aguinagalde


Pamplona, marzo de 2012

Indice
1 Resumen.

2 Caso planteado.

3 Texto 3D_Mec.
3.1 Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Codigo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6
6
7

1.

Resumen.

Practica 1.

En esta practica se simulara con 3D_Mec la cinematica de un sistema plano que incluye Ecuaciones de Enlace Geometrico y Ecuaciones de Enlace Cinem
atico (incluida la condicion de no
deslizamiento).
Finalizadas esta practica y la anterior se habran visto ya las instrucciones para

definir constantes, par


ametros, y variables, coordenadas,

derivar
magnitudes
escalares
(coordenadas y velocidades generalizadas),

asignar valores iniciales a cualquier variable,

definir puntos, bases y referencias,

calcular vectores de posicion,

calcular velocidades angulares,


escribir informacion en la ventana de salida de texto de la aplicacion, Ventana de Salida,

(operacion muy u
til para realizar comprobaciones),

dibujar referencias,

dibujar vectores,

dibujar solidos sencillos (paraleleppedos, . . . ),

realizar la simulacion (integracion en el tiempo),

dibujar solidos complejos como union de los solidos sencillos que los forman (paraleleppedos,
cilindros, anillos y/o esferas),
escribir texto en la ventana grafica de la aplicacion, OpenGL Output,
derivar vectores (operacion imprescindible en el calculo de velocidades y aceleraciones),
calcular velocidades y aceleraciones por composicion,
resolver el Problema de Posici
on (Ecuaciones de Enlace Geometrico),
resolver el Problema de Velocidad (Ecuaciones de Enlace Cinem
atico para las velocidades) y
resolver el Problema de Aceleraci
on (Ecuaciones de Enlace Cinem
atico para las aceleraciones).

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 1 de 19

Dis
Dis
Dis
2
2
Dis
Dis
Dis2
2
2
2
J
J
J
J
J
J

C
C
C
C
C
C

V
V
(C)
(C)
VSue
Sue
Sue
Sue
Sue(C)
Sue
Sue
Sue
Barr
Barr
Barr
2
2
2
Barr
Barr
Barr2
2
2
2
2

A
A
A
(C)
(C)
Sue
Sue
A
A
ASue
(C)
(C)
(C)
Sue
Sue
Sue (C)

zz

A
A
ASue
(B)
(B)
(B)
Sue
Sue
Sue
Sue(B)
A
A
A
(B)
(B)
Sue
Sue
Sue

Imp
Imp
Imp
Imp
Imp
Imp
O
O
O
O
O
O

A
A
A
A
A
A

Dis
Dis
Dis
1
1
Dis
Dis
Dis1
1
1
1
Barr
Barr
Barr
1
1
1
Barr
Barr
Barr1
1
1
1
1

B
B
B
B
B
B

xx
IIIIII

V
(B)
(B)
(B)
VSue
V
V
V
(B)
(B)
Sue
Sue
Sue(B)

Sue
Sue
Sue
Sue
Sue

Sue
Sue
Sue
Sue

Figura 1: Posicion inicial del sistema.

Para los que esten interesados, los documentos


http://www.imem.unavarra.es/mecanica-2ii/download/GuionPractica-1_2002-03.pdf,
http://www.imem.unavarra.es/mecanica-2ii/download/GuionPractica-2_2002-03.pdf y
http://www.imem.unavarra.es/mecanica-2ii/download/GuionPFinal_2002-03.pdf

son una buena fuente para el aprendizaje de

2.

3D_Mec.

Caso planteado.

El sistema plano a simular (figuras 1, 2, 3 y 4) consta de los solidos Imp, Barr1 , Dis1 , Barr2
y Dis2 (impulsor, barra y disco 1 y barra y disco 2 respectivamente). No existe deslizamiento en los
puntos I (contacto entre Sue y Dis1 ) y J (contacto entre Sue y Dis2 ).

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 2 de 19

Dis
Dis
Dis
2
2
Dis
Dis
Dis2
2
2
2
J
J
J
J
J
J

C
C
C
C
C
C

V
(C)
V
(C)
(C)
VSue
V
V
V
(C)
(C)
Sue
Sue
Sue(C)
Sue
Sue
Sue
Sue
Sue
Sue
Sue
Sue

Barr
Barr
Barr
2
2
2
Barr
Barr
Barr2
2
2
2
2

A
A
A
(C)
(C)
Sue
Sue
A
A
ASue
(C)
(C)
(C)
Sue
Sue
Sue (C)

zz

ASue
(B)
A
(B)
A
(B)
A
A
A
(B)
(B)
Sue
Sue
Sue(B)

Imp
Imp
Imp
Imp
Imp
Imp
O
O
O
O
O
O

A
A
A
A
A
A

Dis
Dis
Dis
1
1
Dis
Dis
Dis1
1
1
1
Barr
Barr
Barr
1
1
1
Barr
Barr
Barr1
1
1
1
1

B
B
B
B
B
B

xx
IIIIII

V
VSue
(B)
(B)
(B)
V
V
V
(B)
(B)
Sue
Sue
Sue
Sue(B)
Sue
Sue
Sue

Sue
Sue
Sue
Sue
Sue
Sue

Sue
Sue
Sue
Sue

Figura 2: Posicion inicial del sistema.

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 3 de 19

A
A
A
(C)
(C)
Sue
Sue
ASue
(C)
A
(C)
A
(C)
Sue (C)
Sue
Sue

J
J
J
J
J
J

C
C
C
C
C
C
Dis
Dis
Dis
2
2
2
Dis
Dis
Dis2
2
2
2
2

zz

Barr
Barr
Barr
2
2
2
Barr
Barr
Barr2
2
2
2
2

V
V
VSue
(C)
(C)
(C)
V
V
V
(C)
(C)
Sue(C)
Sue
Sue
Sue
Sue
Sue
Sue

Dis
Dis
Dis
1
1
Dis
Dis
Dis1
1
1
1

A
A
A
A
A
A
Barr
Barr
Barr
1
1
1
Barr
Barr
Barr1
1
1
1
1

B
B
B
B
B
B

Imp
Imp
Imp
Imp
Imp
O
O
O
O
O
O

A
A
ASue
(B)
(B)
(B)
Sue
Sue
Sue (B)
A
(B)
A
(B)
A
Sue
Sue

xx

V
VSue
(B)
(B)
(B)
V
V
V
(B)
(B)
Sue(B)
Sue
Sue
Sue
Sue
Sue
Sue

Sue
Sue
Sue
Sue
Sue
Sue

IIIIII

Sue
Sue
Sue
Sue

Figura 3: Sistema tras un tiempo de simulacion.

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 4 de 19

A
A
A
(C)
(C)
Sue
Sue
ASue
(C)
A
(C)
A
(C)
Sue (C)
Sue
Sue

J
J
J
J
J
J

C
C
C
C
C
C
Dis
Dis
Dis
2
2
2
Dis
Dis
Dis2
2
2
2
2

zz

Barr
Barr
Barr
2
2
2
Barr
Barr
Barr2
2
2
2
2

V
V
VSue
(C)
(C)
(C)
V
V
V
(C)
(C)
Sue
Sue
Sue(C)
Sue
Sue
Sue
Sue

Dis
Dis
Dis
1
1
Dis
Dis
Dis1
1
1
1

A
A
A
A
A
A
Barr
Barr
Barr
1
1
1
Barr
Barr
Barr1
1
1
1
1

B
B
B
B
B
B

Imp
Imp
Imp
Imp
Imp
O
O
O
O
O
O

A
A
ASue
(B)
(B)
(B)
Sue (B)
Sue
Sue
A
A
A
(B)
(B)
Sue
Sue

xx

V
VSue
(B)
(B)
(B)
V
V
V
(B)
(B)
Sue(B)
Sue
Sue
Sue
Sue
Sue
Sue

Sue
Sue
Sue
Sue
Sue
Sue

IIIIII

Sue
Sue
Sue
Sue

Figura 4: Sistema tras un tiempo de simulacion.

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 5 de 19

3.

Texto

3.1.

3D_Mec.

Variables.

La lista siguiente proporciona el significado de las variables fundamentales utilizadas en el texto


3D_Mec:
Parametros:
b
= b (longitud de Imp).
a1
= a1 (longitud de Barr1 ).
a2
= a2 (longitud de Barr2 ).
d
= d (distancia de la articulacion fija a la pared).
R
= R (radio de Dis1 y Dis2 ).
rBarr = radio de los cilindros y esferas utilizados en la representacion de los solidos.
rAniInt = radio interior de los anillos.
rAniExt = radio exterior de los anillos.
rmAni = radio medio de los anillos.
SueX SueY SueZ = dimensiones del suelo[1] .
ParedX ParedY ParedZ = dimensiones de la pared[2] .
Coordenadas, velocidades y aceleraciones generalizadas.
psi, teta1, fi1, teta2, fi2 = , 1 , 1 , 2 , 2 (coordenadas generalizadas).
1 , 1 , 2 , 2 (velocidades generalizadas).
psi, teta1, fi1, teta2, fi2 = ,
1 , 1 , 2 , 2 (aceleraciones generalizadas).
psi, teta1, fi1, teta2, fi2 = ,

Puntos, vectores de posicion:


O
A
B
C
I
J

=
=
=
=
=
=

punto
punto
punto
punto
punto
punto

O (predefinido en 3D_Mec, pertenece a la referencia abs).


A.
B (centro de Dis1 ).
C (centro de Dis2 ).
I (punto de contacto entre Sue y Dis1 ).
J (punto de contacto entre Sue y Dis2 ).

OB = OB

OC = OC

BIg = BIg

CJg = CJg

n
oT 0

0
OIgZ = OIg
x yz
1 x yz

Bases:
xyz
Babc
Buvw

= x yz (base predefinida en 3D_Mec con la orientacion de la referencia abs).


= abc (base con la orientacion de Imp).
= uv w (base con la orientacion de Barr1 ).

[1]

Dimensiones del paraleleppedo utilizado en la ventana gr


afica de

3D_Mec,

OpenGL Output, para representar al suelo.

[2]

Dimensiones del paraleleppedo utilizado en la ventana gr


afica de

3D_Mec,

OpenGL Output, para representar la pared.

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 6 de 19

Buvw = u v w (base con la orientacion de Dis1 ).


B123
= 1 2 3 (base con la orientacion de Barr2 ).
B123 = 1 2 3 (base con la orientacion de Dis2 ).
Referencias:
abs
= referencia
Sue
= referencia
Imp
= referencia
Barra1 = referencia
Disco1 = referencia
Barra2 = referencia
Disco2 = referencia

absoluta [3] (coincide con Sue en este caso).


Sue.
Imp.
Barr1 .
Dis1 .
Barr2 .
Dis2 .

Vectores velocidad y aceleracion:

OmSue(Imp)

= Sue (Imp)

OmSue(Barra1) = Sue (Barr1 )

OmSue(Disco1) = Sue (Dis1 )

OmSue(Barra2) = Sue (Barr2 )

OmSue(Disco2) = Sue (Dis2 )


VSue(B), ASue(B)

= VSue (B), ASue (B)

VSue(C), ASue(C)

= VSue (C), ASue (C)

VSue(IDis1), ASue(IDis1) = VSue (IDis1 ), ASue (IDis1 )

VSue(JDis2), ASue(JDis2) = VSue (JDis2 ), ASue (JDis2 )

3.2.
1

C
odigo.

REM (c) Copyleft Juan Miguel Aguinagalde 2012.

Las lneas que comiencen por REM son ignoradas por


fichero comentarios aclaratorios.

3D_Mec.

De este modo es posible incluir en el

2
3

REM Pi:=3.141592654

La asignacion Pi:=3.141592654 definira Pi. Se incluye como comentario ya que Pi no se utiliza


para nada en el fichero 3D_Mec (mas adelante se explica el motivo). Esta ah solo para recordar el
valor de .
4
5
6
7

REM Par
ametros.
REM ~~~~~~~~~~~

b:=2

:= es el operador de asignacion. La asignacion b:=..., como todas, realiza dos operaciones: define b
y le da un valor inicial (2 en este caso).
[3]

La referencia abs esta predefinida en


(xyz y O tambien estan predefinidos en

3D_Mec;

tiene la misma orientaci


on que la base xyz y O es uno de sus puntos

3D_Mec).

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 7 de 19

10
11
12

a1:=6
a2:=8
d:=12
R:=2

13
14
15

REM Coordenadas, Velocidades y Aceleraciones Generalizadas.


REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

16
17

psi:=3.14159265358/6

La asignacion psi:=3.14159265358/6, igual que las demas, realiza dos operaciones: define psi y le
da un valor inicial (/6 en este caso). Si psi representa a una coordenada, es decir, puede
variar con el tiempo, no se puede definir con la asignaci
on aparentemente equivalente
psi:=Pi/6. Si se definiera as, 3D_Mec entendera que psi toma siempre el valor Pi/6 y, por tanto,
solo podra variar con el tiempo si lo hiciera Pi/6. Este comportamiento de 3D_Mec no es mas que una
consecuencia logica de la coherencia que 3D_Mec mantiene en todo momento con todas las variables
de modo que cualquier asignacion realizada entre ellas se mantiene hasta el final.
18
19
20

teta1:=3.14159265358/9
fi1:=0

21

D(psi):=psi

La asignacion D(psi):=psi define psi como la derivada temporal de psi. A partir de ahora, el
valor de psi se correspondera, en todo momento, con la derivada temporal de psi. Por otro lado,
definir la derivada temporal de psi indica que psi es una coordenada, no un parametro como a1 o
ametros).
R; es as como 3D_Mec distingue entre variables y constantes (coordenadas y par
22
23
24
25

D(teta1):=teta1
D(fi1):=fi1
D(psi):=psi

La asignacion D(psi):=psi define psi como la derivada temporal de psi. Todas las consideraciones realizadas a raz de la asignacion D(...):=psi son aplicables aqu.
26
27
28
29
30

D(teta1):=teta1
D(fi1):=fi1
REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Definir las coordenadas, velocidades y aceleraciones generalizadas correspondientes a los solidos Barr2
y Dis2 .

33
34
35

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS ------

36
37

REM Valor inicial de las velocidades y aceleraciones generalizadas.

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 8 de 19

38
39

psi:=2

La asignacion psi:=2 no define nada (psi ya ha sido definida). El objeto de esta asignacion es dar
a psi un valor inicial (el valor inicial por defecto es 0). Cuando 3D_Mec necesite el valor de psi y
este no venga dado por alguna asignacion o ecuacion previa, utilizara su valor inicial.
40
41
42
43
44
45
46
47
48
49
50
51
52

teta1:=1
fi1:=1
psi:=0
teta1:=0
fi1:=0
REM Puntos, bases y referencias.
REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
REF(Sue,O,xyz)
BASE(Babc,xyz,1,psi)

La instruccion BASE(Babc, xyz, 1, psi) define la base Babc como aquella cuya orientacion se alcanza
girando la base xyz alrededor de su eje no 1 el angulo psi.
53

REF(Imp,O,Babc)

La instruccion REF(Imp, O, Babc) define la referencia Imp dando uno de sus puntos, O, y su orientacion, la de la base Babc.
54
55

POINT(A,O,{[0,b,0]}Babc)

La instruccion POINT(A, O, {[0,b,0]}Babc) defineel punto A como el punto obtenido a partir de O

con el vector de posicion {[0,b,0]}Babc, es decir,


56
57
58
59
60
61
62
63
64

0
b
.

0
abc

BASE(Buvw,xyz,1,-teta1)
REF(Barra1,A,Buvw)
POINT(B,A,{[0,a1,0]}Buvw)
BASE(Buvw,xyz,1,fi1)
REF(Disco1,B,Buvw)
REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Definicion de Barr2 . Previamente ser


a necesario definir la base correspondiente a su orientacion, 1 2 3 .

67
68
69

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS ------

70
71
72

REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 9 de 19

Definicion de Dis2 . Previamente ser


a necesario definir su centro, punto C, y la base correspondiente
a su orientacion, 1 2 3 .

75
76
77
78

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS ------

79
80
81

REM Dibujo del mecanismo.


REM ~~~~~~~~~~~~~~~~~~~~~

82
83
84

rBarr:=R/10
rAniInt:=1.2*rBarr
rAniExt:=2*rBarr
rmAni:=(rAniInt+rAniExt)/2

85
86
87

VISUAL(-20,10,10,0,8,5)

La instruccion VISUAL(...) permite dar valores iniciales a los controles de la ventana OpenGL Visual
Dialog de 3D_Mec. Los valores, (-20, 10, 10, 0, 8, 5) en este caso, estan dados en el mismo orden en
que figuran los correspondientes controles en la citada ventana (phi, theta, rho, x, y y z) y pueden
obtenerse observando la cabecera de la ventana grafica, OpenGL Output.
88
89
90
91
92
93

POINT(PTxt,O,{[-d/2,0,6*R]}xyz)
REM Referencia (o s
olido) Sue.
DRAW_REFERENCE(Sue,4,RGB(0.7,0.7,0.7,1))

La instruccion DRAW_REFERENCE(Sue, 4, RGB(0.7,0.7,0.7,1)) dibuja la referencia Sue con un


tama
no 4 utilizando para los ejes el color dado por RGB(0.7,0.7,0.7,1) (ver explicacion acerca de
la instruccion RGB(...)). Para representar referencias, 3D_Mec utiliza el punto y la base utilizados
en su definicion (instrucciones POINT(...) y BASE(...) respectivamente). La referencia abs es la
excepcion; abs esta predefinida en 3D_Mec y se representa siempre con los ejes de la base xyz en el
punto O (base y punto tambien predefinidos en 3D_Mec correspondientes siempre a abs). Los ejes de
la base se identifican con el color de la flecha: x es la roja, y la verde y z la azul.
94
95
96
97
98
99
100
101
102

SueX:=d/2
SueY:=d
SueZ:=d/10
POINT(CentroSue,O,{[0,SueY/2,-R-SueZ/2]}xyz)
POINT(PunCilSueIni,O,{[-6*rBarr,0,0]}xyz)
POINT(PunCilSueFin,O,{[6*rBarr,0,0]}xyz)

103
104
105

ParedX:=SueX
ParedY:=SueZ
ParedZ:=3*SueY/4
POINT(CentroPared,O,{[0,d+ParedY/2,3*ParedZ/4]}xyz)

106
107

RGB(0.7,0.7,0.7,0.5)

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 10 de 19

RGB(...) es la instruccion de 3D_Mec que define colores. Los tres primeros parametros dan la cantidad
de rojo, verde y azul del color deseado. El valor extremo RGB(0,0,0) sera el negro. En este ejemplo,
RGB(0.7, 0.7, 0.7, 0.5), el valor dado a dichos parametros se ha limitado al rango 01, pero la
instruccion admite valores mayores. El cuarto parametro es opcional y permite dar la opacidad del
objeto; si no se especifica, o vale 1, el objeto es opaco; a medida que su valor disminuye, el objeto
se hace mas transparente. Cuando, como en este caso, la instruccion RGB(...) figura aislada, todas
las sentencias de dibujo del tipo DRAW_...(...) que figuren a continuacion la utilizaran como valor
por defecto del color y opacidad del objeto dibujado.
108

DRAW_PARALLELEPIPED(CentroSue,xyz,SueX,SueY,SueZ,0)

La instruccion DRAW_PARALLELEPIPED(...) dibuja paraleleppedos. Los valores proporcionados a la


instruccion, (CentroSue, xyz, SueX, SueY, SueZ, 0) en este caso, se interpretan de la siguiente
manera:
CentroSue es el punto situado en el centro geometrico del paraleleppedo.
xyz es la base que da la orientacion del paraleleppedo.
SueX, SueY y SueZ son las dimensiones del paraleleppedo seg
un las 3 direcciones de la base dada.
0 es un parametro auxiliar (para mas informacion cons
ultese el manual de usuario de 3D_Mec).
109
110

DRAW_PARALLELEPIPED(CentroPared,xyz,ParedX,ParedY,ParedZ,0)
DRAW_CYLINDER_P(PunCilSueIni,PunCilSueFin,rBarr,1)

La instruccion DRAW_CYLINDER_P(...) dibuja cilindros. Los valores proporcionados a la instruccion,


(PunCilSueIni, PunCilSueFin, rBarr, 1) en este caso, se interpretan de la siguiente manera:
PunCilSueIni es el punto situado en el centro de una base del cilindro.
PunCilSueFin es el punto situado en el centro de la otra base.
rBarr es el radio del cilindro.
1 es un parametro auxiliar (para mas informacion cons
ultese el manual de usuario de 3D_Mec).
111
112

DRAW_CYLINDER(PunCilSueIni,xyz,rBarr,-R-SueZ,3,1)
DRAW_CYLINDER(PunCilSueFin,xyz,rBarr,-R-SueZ,3,1)

La instruccion DRAW_CYLINDER(...) dibuja cilindros. Los valores proporcionados a la instruccion,


(PunCilSueFin, xyz, rBarr, -R-SueZ, 3, 1) en este caso, se interpretan de la siguiente manera:
PunCilSueFin es el punto situado en el centro de la base del cilindro.
xyz es la base correspondiente a la orientacion del cilindro.
rBarr es el radio del cilindro.
-R-SueZ es la longitud del cilindro (si se da un valor negativo, el cilindro se dibuja en el sentido
negativo del correspondiente eje).
3 indica que el eje del cilindro se corresponde con la direccion 3 de la base dada (xyz en este caso).
1 es un parametro auxiliar (para mas informacion cons
ultese el manual de usuario de 3D_Mec).
113
114

DRAW_SPHERE(PunCilSueIni,xyz,rBarr)
DRAW_SPHERE(PunCilSueFin,xyz,rBarr)

La instruccion DRAW_SPHERE(...) dibuja esferas. Los valores proporcionados a la instruccion en este


caso, (PunCilSueFin, xyz, rBarr), se interpretan de la siguiente manera:
Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 11 de 19

PunCilSueFin es el centro de la esfera.


xyz es la base utilizada para orientar la esfera.
rBarr es el radio de la esfera.
115
116
117
118

REM Referencia (o s
olido) Imp.
DRAW_REFERENCE(Imp,3*b/4,RGB(0.39,0.74,0.61,1))

119
120
121

POINT(PunImpIni,O,{[0,rmAni,0]}Babc)

122
123

RGB(0.39,0.74,0.61,0.5)
DRAW_EMPTY_CYLINDER_ARC(O,Babc,rAniExt,rAniInt,-2*rBarr,2*rBarr,0,360,1)

La instruccion DRAW_EMPTY_CYLINDER_ARC(...) dibuja un arco de tubo cilndrico. Los valores proporcionados a la instruccion, (O, Babc, rAniExt, rAniInt, -2*rBarr, 2*rBarr, 0, 360, 1) en
este caso, se interpretan de la siguiente manera:
O es un punto situado en el eje del arco de tubo cilndrico.
Babc es la base correspondiente a la orientacion del arco de tubo cilndrico.
rAniExt es el radio exterior.
rAniInt es el radio interior.
-2*rBarr es la distancia a la que se encuentra el inicio del arco de tubo cilndrico medida sobre su
eje desde el punto O.
2*rBarr es la distancia a la que se encuentra el final del arco de tubo cilndrico (medida igual).
0 y 360 son los angulos inicial y final, en grados, que limitan el arco (si toman los valores 0 y 360,
respectivamente, se representa un tubo cerrado).
1 indica que el eje del arco de tubo cilndrico se corresponde con la direccion 1 de la base dada
(Babc).
124
125
126

DRAW_CYLINDER_P(PunImpIni,A,rBarr,1)
DRAW_CYLINDER(A,Babc,rBarr,6*rBarr,1,1)
DRAW_SPHERE(A,Babc,rBarr)

127
128
129

REM Referencia (o s
olido) Barra1.

130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151

DRAW_REFERENCE(Barra1,3*a1/4,RGB(0.9,0.3,0.9,1))
DespX1:=4*rBarr
POINT(ADespX,A,{[DespX1,0,0]}Buvw)
POINT(BDespX1,B,{[DespX1,0,0]}Buvw)
POINT(PunBarra1Ini,ADespX,{[0,rmAni,0]}Buvw)
POINT(PunBarra1Fin,BDespX1,{[0,-rmAni,0]}Buvw)
RGB(0.9,0.3,0.9,0.5)
DRAW_CYLINDER_P(PunBarra1Ini,PunBarra1Fin,rBarr,1)
DRAW_EMPTY_CYLINDER_ARC(ADespX,Buvw,rAniExt,rAniInt,-2*rBarr,2*rBarr,0,360,1)
DRAW_EMPTY_CYLINDER_ARC(BDespX1,Buvw,rAniExt,rAniInt,-2*rBarr,2*rBarr,0,360,1)
REM Referencia (o s
olido) Disco1.
DRAW_REFERENCE(Disco1,1.5*R,RGB(1,0.45,0.13,1))
RGB(1,0.45,0.13,0.5)
DRAW_CYLINDER(B,Buvw,R,rBarr/2,1,1)
DRAW_CYLINDER(B,Buvw,R,-rBarr/2,1,1)
DRAW_CYLINDER(B,Buvw,rBarr,6*rBarr,1,1)
DRAW_CYLINDER(B,Buvw,rBarr,-6*rBarr,1,1)

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 12 de 19

152
153
154

REM Referencia (o s
olido) Barra2.

155
156

REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Dibujo de la referencia Barr2 y representacion esquematica del solido como union de solidos sencillos
(cilindros, anillos . . . ).

159
160
161
162

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS ------

163
164
165

REM Referencia (o s
olido) Disco2.

166

REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Dibujo de la referencia Dis2 y representacion esquematica del solido como union de solidos sencillos
(cilindros, anillos . . . ).

169
170
171
172
173
174
175

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS -----REM Dibujo de vectores de posici
on.
OB:=P(O,B)

La instruccion P(O, B) proporciona el vector de posicion que parte del punto O y acaba en B, OB.
Los puntos O y B deben estar ya definidos; el punto O, predefinido en 3D_Mec, es la excepcion.
176
177

PRINT(OB)
PRINT({OB}Babc)

Las instrucciones PRINT(...) seguidas de la instruccion PAUSE son un ejemplo de la forma en que
se puede ir comprobando el fichero 3D_Mec en desarrollo. PRINT(...) admite como parametro casi
de todo. Si se trata de un vector, 3D_Mec da su proyeccion en una base cualquiera a no ser que se

especifique una en concreto. As por ejemplo, PRINT(OB) proporciona las componentes


n de oOB en

.
una base cualquiera elegida por 3D_Mec y PRINT({OB}Babc) fuerza a 3D_Mec a mostrar OB
abc
178
179
180
181
182

PRINT({OB}xyz)
PAUSE
REM DRAW_VECTOR(O,OB,1,RGB(1,1,0,0.2)) ERROR de representaci
on!
REM DRAW_VECTOR(O,P(O,B),1,RGB(1,1,0,0.2))

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 13 de 19

183
184
185

REM Velocidades y aceleraciones.


REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

186
187

REM Definici
on, escritura y dibujo de vectores velocidad angular.

188
189

OmSue(Barra1):=OM(Sue,Barra1)

La instruccion OM(Sue, Barra1) devuelve el vector velocidad angular de la referencia o solido Barra1

para un observador en la referencia Sue, Sue (Barr1 ). Los valores proporcionados a la instruccion
son entendidos como orientaciones por lo que pueden ser referencias o bases indistintamente.
190
191
192

OmSue(Disco1):=OM(Sue,Disco1)
PRINT(OmSue(Barra1))
PRINT(OmSue(Disco1))

193
194

DRAW_VECTOR(B,OmSue(Disco1),4,RGB(0,0,0,1))

La instruccion DRAW_VECTOR(...) dibuja vectores. Los valores proporcionados a la instruccion, (B,


OmSue(Disco1), 4, RGB(0,0,0,1)) en este caso, se interpretan de la siguiente manera:
B es el punto elegido como origen del vector.
OmSue(Disco1) es el vector a dibujar.
4 es el factor de escala utilizado en el dibujo del vector.
RGB(0,0,0,1) es el color y opacidad, si se indica, utilizados para dibujar el vector.
195
196
197

POINT(Ig,B,{[0,0,-R]}xyz)

198

VSue(B):=D(OB,Sue)

El operador D(...) permite derivar vectores para un observador dado; en este caso, D(OB, Sue)
calcula la derivada de OB para un observador en Sue. Es decir, la asignacion VSue(B):=D(OB,
Sue)


no es mas que la traduccion a la sintaxis de 3D_Mec de la ecuacion VSue (B) = d OB .
d t Sue
199

ASue(B):=D(VSue(B),Sue)

La asignacion ASue(B):=D(VSue(B),
Sue) es la traduccion a la sintaxis de

d VSue (B)
ASue (B) =
.
dt
Sue
200
201
202
203
204
205
206

3D_Mec

de la ecuacion

PRINT(VSue(B))
PRINT(ASue(B))
DRAW_VECTOR(Ig,VSue(B),1.5,RGB(0,0,1,1))
DRAW_VECTOR(B,ASue(B),1.2,RGB(1,0,0,1))

REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///


Calcular por derivaci
on, escribir y dibujar VSue (C) y ASue (C).

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 14 de 19

209
210
211
212

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS ------

213
214

BIg:=P(B,Ig)
VSue(IDis1):=VSue(B)+OmSue(Disco1)^BIg


Ecuacion VSue (IDis1 ) = VSue (B) + Sue (Dis1 ) BIg con la sintaxis de
215

3D_Mec.

ASue(IDis1):=ASue(B)+OmSue(Disco1)^(OmSue(Disco1)^BIg)+D(OmSue(Disco1),Sue)^BIg




Ecuacion ASue (IDis1 ) = ASue (B) + Sue (Dis1 ) Sue (Dis1 ) BIg + Sue (Dis1 ) BIg , sa

d Sue (Dis1 )
biendo que Sue (Dis1 ) =
, con la sintaxis de 3D_Mec.
dt
Sue

216
217
218
219
220

DRAW_VECTOR(Ig,VSue(IDis1),2,RGB(0,0,0,1))
DRAW_VECTOR(Ig,ASue(IDis1),1.2,RGB(1,0.66,0.29,1))
REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///


Calcular y dibujar VSue (JDis2 ) y ASue (JDis2 ).

223
224
225
226
227
228
229
230
231
232
233
234
235

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS -----N (ECUACIONES DE ENLACE GEOMETRICO, EEG).
REM PROBLEMA DE POSICIO
REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
REM
REM
REM
REM

La posici
on que se observa en la salida gr
afica es incorrecta puesto que no
se ha resuelto el problema de posici
on. Los vectores velocidad y aceleraci
on
dibujados son correctos para los valores iniciales dados, pero no tienen en
cuenta las condiciones de enlace.

DRAW_TEXT(PTxt,xyz,1,"EEG no aplicadas.",0.8,RGB(0,0,0,1))

La instruccion DRAW_TEXT(...) escribe el texto dado en la ventana grafica de 3D_Mec. Los valores
proporcionados a la instruccion, (PTxt, xyz, 1, "EEG no aplicadas.", 0.8, RGB(0,0,0,1)) en
este caso, se interpretan de la siguiente manera:
PTxt es el punto elegido para situar el texto.
xyz es una base auxiliar que indica, junto con el siguiente valor, el plano del espacio en el que se
desea escribir el texto.
1 indica que el texto se escribira en el plano perpendicular al eje 1 de la base dada (xyz).
EEG no aplicadas. es el texto a escribir.
0.8 es el tama
no del fuente utilizado para escribir el texto.
RGB(0,0,0,1) es el color del texto.
Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 15 de 19

236
237

PAUSE
UNDRAW_LAST_OBJECT

La instruccion UNDRAW_LAST_OBJECT hace lo que su propio nombre indica. En la simulacion se utiliza


para escribir mensajes diferentes en la misma ubicacion sin que se superpongan.
238
239
240
241
242
243

OIg:=P(O,Ig)
OIgZ:={OIg}xyz*{[0,0,1]}xyz
REM ---- COMIENZO DE INSTRUCCIONES INCOMPLETAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Completar la instrucci
on NON_LINEAR_EQUATION_SYSTEM() escribiendo en la ventana todas las coordenadas generalizadas elegidas como dependientes.

246
247
248
249
250
251

NON_LINEAR_EQUATION_SYSTEM(teta1, ..................................................................................................................)
REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\
REM ----- FINAL DE INSTRUCCIONES INCOMPLETAS ----OIgZ=-R
REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Escribir las restantes Ecuaciones de Enlace Geometrico.

253
254
255
256

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS -----END

Entre la instruccion NON_LINEAR_EQUATION_SYSTEM(teta1) (el problema de posicion es, en general,


no-lineal) y END se resuelve el problema de posicion. Con 3D_Mec no es necesario desarrollar las
ecuaciones de enlace geometrico; es suficiente plantearlas. En este caso, el planteamiento consiste
en escribir entre dichas instrucciones, sin mas, OIgZ=-R; 3D_Mec se encarga del resto. En cuanto al
tratamiento que 3D_Mec hace de los sistemas de ecuaciones (lineales y no-lineales) es importante saber
lo siguiente:

3D_Mec garantiza el cumplimiento de todo sistema de ecuaciones a partir del momento en que queda
planteado.
La ventana de parametros de la instruccion NON_LINEAR_EQUATION_SYSTEM(...) (o, en sistemas de
ecuaciones lineales, LINEAR_EQUATION_SYSTEM(...)) debe incluir, en principio, la lista de variables
resueltas por el sistema de ecuaciones (las incognitas); dichas variables pasaran a ser dependientes
de las demas. En este ejemplo, se observa que es posible resolver el problema de posicion variando
psi o teta1; la eleccion es libre y solo depende de la variable que quiera utilizarse como independiente durante la simulacion cinematica. En simulaciones dinamicas, el sistema queda resuelto por
las correspondientes ecuaciones, es decir, su evolucion queda completamente determinada por el
estado posicion y velocidad inicial; el control de que grados de libertad controlan la simulacion
no es posible en ese caso.

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 16 de 19

Si se desea, se pueden incluir en la ventana de parametros de NON_LINEAR_EQUATION_SYSTEM(...)


(o, en su momento, LINEAR_EQUATION_SYSTEM(...)) todas las variables involucradas en el problema (psi, teta1 y fi1 en este ejemplo). En ese caso, 3D_Mec decide que variables pasan a depender
de las demas.
257
258
259
260
261
262
263
264
265

PRINT(psi)
PRINT(teta1)
PRINT(fi1)
REM
REM
REM
REM

TODAS las ecuaciones


variables que queden
son correctos ya que
para las velocidades

impuestas hasta este momento ser


an siempre satisfechas por las
despejadas. Los vectores velocidad y aceleraci
on dibujados no
no se han aplicado a
un las condiciones de enlace cinem
atico
y aceleraciones.

266
267
268

REM ECUACIONES DE ENLACE CINEM


ATICO, EEC, para velocidades.
REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

269
270
271

DRAW_TEXT(PTxt,xyz,1,"EEC (velocidad) no aplicadas.",0.8,RGB(0,0,0,1))


PAUSE
UNDRAW_LAST_OBJECT

272
273
274

REM ---- COMIENZO DE INSTRUCCIONES INCOMPLETAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Completar la instrucci
on LINEAR_EQUATION_SYSTEM() escribiendo en la ventana todas las velocidades
generalizadas elegidas como dependientes.

277
278
279
280

LINEAR_EQUATION_SYSTEM(teta1,fi1, .............................................................................................................. )
REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\
REM ----- FINAL DE INSTRUCCIONES INCOMPLETAS ----D(OIgZ)=0

La instruccion D(...) aqu utilizada realiza la derivada temporal del escalar (tambien podra ser
una 3-tupla) dado como argumento (OIgZ en este caso). Se trata de otro uso del operador D tambien
utilizado en la derivacion de vectores.
{VSue(IDis1)}xyz={[0,0,0]}xyz
REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

281
282
283

Escribir las restantes ecuaciones de enlace cinematico para las velocidades.

285
286
287
288

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS -----END

La instruccion LINEAR_EQUATION_SYSTEM(teta1,fi1) y las siguientes hasta la instruccion END,


exigen el cumplimiento de las ecuaciones de enlace cinematico para las velocidades. Si existen ecuaciones de enlace geometrico, su derivada debera figurar aqu. Si hay ecuaciones repetidas, no pasa
nada, 3D_Mec elimina automaticamente del conjunto las ecuaciones dependientes de las demas. Todas
las consideraciones acerca de los sistemas de ecuaciones y de los parametros de ventana de la sentencia inicial (LINEAR_EQUATION_SYSTEM(...) en este caso) hechas al resolver el problema de posicion
son aplicables aqu.
Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 17 de 19

289
290
291
292

PRINT(psi)
PRINT(teta1)
PRINT(fi1)

293
294
295

TICO, EEC, para aceleraciones.


REM ECUACIONES DE ENLACE CINEMA
REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

296
297

DRAW_TEXT(PTxt,xyz,1,"EEC (aceleracion) no aplicadas.",0.8,RGB(0,0,0,1))


PAUSE
UNDRAW_LAST_OBJECT

298
299
300
301

REM ---- COMIENZO DE INSTRUCCIONES INCOMPLETAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Completar la instrucci
on LINEAR_EQUATION_SYSTEM() escribiendo en la ventana todas las aceleraciones generalizadas elegidas como dependientes.

304
305
306
307
308
309
310

LINEAR_EQUATION_SYSTEM(teta1,fi1, .......................................................................................................... )
REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\
REM ----- FINAL DE INSTRUCCIONES INCOMPLETAS ----D(D(OIgZ))=0
D({VSue(IDis1)}xyz)={[0,0,0]}xyz
REM ---- COMIENZO DE INSTRUCCIONES ELIMINADAS ---REM \\\\\\\\\\\\\\\\\\\\\\\\/////////// ?/?/?///

Escribir las restantes ecuaciones de enlace cinematico para las aceleraciones.

312
313
314
315

REM /// ?/?/?///////////\\\\\\\\\\\\\\\\\\\\\\\\


REM ------ FINAL DE INSTRUCCIONES ELIMINADAS -----END

La instruccion LINEAR_EQUATION_SYSTEM(teta1,fi1) y las siguientes hasta la instruccion END,


exigen el cumplimiento de las ecuaciones de enlace cinematico para las aceleraciones. Si existen
ecuaciones que ligan el valor de las velocidades generalizadas (ecuaciones de enlace cinematico para
las velocidades) es evidente que sus derivadas temporales dan lugar a ecuaciones funcion de las
aceleraciones generalizadas; se trata de las ecuaciones de enlace cinematico para las aceleraciones.
Todas las consideraciones acerca de los sistemas de ecuaciones y de los parametros de ventana de la
sentencia inicial (LINEAR_EQUATION_SYSTEM(...) en este caso) hechas al resolver los problemas de
posicion y de velocidad son aplicables aqu.
316
317
318
319

PRINT(psi)
PRINT(teta1)
PRINT(fi1)

320
321
322

DRAW_TEXT(PTxt,xyz,1,"Va a comenzar el movimiento ...",0.8,RGB(0,0,0,1))


PAUSE
UNDRAW_LAST_OBJECT

323
324
325

DRAW_TEXT(PTxt,xyz,1,"t = $t$ s.",0.8,RGB(0,0,0,1))

326

REM Integraci
on.

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 18 de 19

327
328
329

REM ~~~~~~~~~~~~
RK4(0.02,100,0.02,0)

La instruccion RK4(...) integra en la variable tiempo las ecuaciones planteadas con el metodo de
Runge Kutta de orden 4. El resultado es la simulacion. Los valores proporcionados a la instruccion,
(0.02, 100, 0.02, 0) en este caso, se interpretan de la siguiente manera:
El primer valor, 0.02, es el incremento de tiempo con el que se realiza la integracion.
El segundo, 100, es el intervalo de tiempo a lo largo del cual se desea realizar la integracion (tiempo
de duracion de la simulacion).
El tercer valor, 0.02, es el incremento de tiempo con el que se actualiza la ventana grafica. El valor
0 hace que no se visualice la evolucion del sistema a lo largo de la integracion.
El u
ltimo valor, 0, esta relacionado con el control del fichero de estado (para mas detalles cons
ultese
el manual de 3D_Mec). Si vale 0, no se utiliza dicho fichero.

Practica 2. Ecuaciones de enlace con

3D_Mec.

Pag. 19 de 19

También podría gustarte