Enrera
Mòdul 6
Simulacions amb l' Interactive Physics
  Pràctica
1
2
3
4
5
   
Exercicis
Exercicis
 
 
  Objectius
   
 

En aquest últim mòdul aprendreu a utilitzar fórmules, a controlar amb elles les propietats dels objectes, a personalitzar mesuradors i controls i a produir camps de forces qualssevol.

   
  Conceptes
   

Com heu vist als mòduls anteriors, és possible generar una varietat molt gran de simulacions amb l'Interactive Phisics. La possibilitat d'incorporar-hi fórmules augmenta encara molt més les possibilitats: amb elles podreu personalitzar controls d'entrada, mesuradors, cossos, forces globals i marcs de referència.
Es poden utilitzar fórmules en lloc de nombres en qualsevol entrada de la finestra de Propiedades. D'aquesta manera, podem fer, per exemple, que la massa depengui del temps, o que la fricció depengui de la posició.
Amb les fórmules podem modificar les dades que apareixen als mesuradors; d'aquesta manera, a més dels mesuradors que l'IP dóna per defecte, podem fer mesuradors per a l'energia potencial elàstica, per a l'energia mecànica, o per a qualsevol magnitud de la qual siguem capaços d'escriure la fórmula.
L'opció Mundo | Campo de fuerzas | A la medida ens permet introduir camps de forces que obeeixin a (gairebé) qualsevol equació i que afectin els objectes individualment o per parelles.
També és possible aconseguir que la posició i la rotació d'objectes estiguin donats per fórmules o que aquestes defineixin sistemes de referència no estàndard.

Les fórmules tenen un aspecte i un tractament similar al que tenen un full de càlcul com l'Excel o els llenguatges de programació. Si coneixeu el llenguatge de fórmules que s'utilitza en aquests entorns, el que segueix us resultarà familiar. Si no heu treballat mai amb funcions o amb objectes i propietats no us preocupeu, preneu aquesta secció com un primer contacte i a les pràctiques tindreu l'oportunitat de familiaritzar-vos amb els elements bàsics d'aquest llenguatge.

Els elements que poden formar part d'una fórmula són: nombres, operadors, identificadors, campsi funcions.

Nombres

  • Els nombres s'entren de la manera habitual, utilitzant el punt com a separador i la lletra e per a la notació científica ( per exemple, s'hi escriu 1.6e-19 per al valor 1,6x10-19) . Tots els angles han d'expressar-se en radiants.
    La variable t o time conté el valor del temps en cada instant.

Operadors

  • Els operadors que poden utilitzar-se són els següents:
    +
    suma  
    >
    major que
    -
    resta (i signe negatiu)
    <
    menor que
    *
    multiplicació
    >=
    major o igual que
    /
    divisió
    <=
    menor o igual que
    %
    mòdul (residu de la divisió entera)
    =
    igual que
    ^
    potència
    <>
    diferent que
 

A l'esquerra s'han presentat els operadors numèrics, que produeixen un nombre a partir d'altres dos nombres segons les regles de l'aritmètica i que poden combinar-se amb parèntesis.
A la dreta apareixen els operadors lògics. Els operadors lògics comparen dos nombres i tornen el valor 1 si la comparació resulta certa i 0 si resulta falsa.
Per treballar amb vectors, a més dels operadors per sumar o restar vectors +, - i per a multiplicar un nombre per un vector * , també es disposa de l'operador | |, que ens dóna el mòdul del vector.

Identificadors

  • Cada objecte a l'espai de treball té un identificador. Quan passem el cursor sobre un objecte, a la part inferior esquerra de la pantalla apareix el seu identificador (també apareix a les finestres Propiedades, Apariencia i Geometría quan el tenim seleccionat). L'identificador d'un objecte indica la classe a la qual pertany i un nombre entre claudàtors [].

Hi ha 5 classes d'objectes:

Body: Cossos (cercles , rectangles, polígons...)

Point: Punts (extrems de restriccions i punts aïllats)

Constraint: Restriccions (molles, cordes, articulacions...)

Input: Controls d'entrada (botons, lliscadors i caixes de text)

Output: Mesuradors

Camps

  • Les propietats de cada objecte es corresponen als Camps (Si alguna vegada heu utilitzat llenguatges de programació adreçada a objectes, com p.ex. VisualBasic, notareu que el tractament que es fa dels objectes i de les propietats és molt semblat):

    Per utilitzar el valor d'alguna propietat d'un objecte, s'escriu l'identificador de l'objecte seguit d'un punt i del nom del camp, per exemple:

Body[1].mass ens donarà la massa del cos 1

Constraint[13].length ens donarà la llargada de la restricció 13

Es poden encadenar els camps, escrivint-los un a continuació de l'altre, per obtenir subcamps, per exemple:

Body[2].v.x ens dóna la component x de la velocitat del cos 2

Point[11].body.cofm.p.y ens dóna la component y de la posició del centre de masses del cos al qual està adherit el punt 11.

A continuació, es presenta una llista exhaustiva dels camps que admet l'Interactive Physics, especificant a quin objecte es refereixen i la classe de dada que retornen.

 
Objecte al qual s'apliquen
Camp
Propietat
Classe de dada que retornen
Cos (Body) .p posició vector
.v velocitat vector
.a acceleració vector
.mass massa nombre
.moment moment d'inèrcia nombre
.charge càrrega elèctrica nombre
.staticfric coeficient de fregament estàtic nombre
.kineticfric coeficient de fregament cinètic nombre
.elasticity coeficient d'elasticitat nombre
.cofm centre de masses punt
.width amplada nombre
.height altura nombre

.radius

radi d'un cercle nombre
.vertex[n] vèrtex (n) d'un polígon vector
Punt (Point) .p posició vector
.v velocitat vector
.a acceleració vector
.offset posició en les coordenades del cos al qual està adherit vector
.body cos al qual està adherit cos
.force força que actua sobre el cos en el punt vector
Restricció (Constraint) .length longitud actual nombre
.dp diferència de posició (dels extrems) vector
.dv diferència de velocitats vector
.da diferència d'acceleracions vector
.p1 primer extrem de la restricció punt
.p2 segon extrem de la restricció punt
.force força de la restricció vector
Mesuradors (Output) .x valor del mesurador al seu eix x nombre
.y1 valor del mesurador al seu eix y1 nombre
.y2 valor del mesurador al seu eix y2 nombre
.y3 valor del mesurador al seu eix y3 nombre
.y4 valor del mesurador al seu eix y4 nombre
Entrades (Input) No cal indicar cap camp valor al control, botó o quadre de text nombre
Vectors .x coordenada x nombre
.y coordenada y nombre
.r coordenada angular nombre

Podeu trobar més detalls sobre els camps admesos i el seu significat a l'apèndix B del manual de l'Interactive Physics.

Considereu en tots els casos les classes de dades que apareixen a les fórmules: per exemple, obtindreu missatges d'error si intenteu sumar un objecte amb un altre o un vector amb un nombre o si proposeu com a resultat per a un mesurador una dada diferent d'un nombre.

Funcions

  • El darrer element que trobem a les fórmules són les funcions (les mateixes que apareixen als llenguatges de programacio i als fulls de càlcul). Hi ha funcions matemàtiques i funcions de simulació. A partir d'unes variables (de 0 a 3), retornen un resultat. Per exemple:
    •   cos(0) ens torna el cosinus de 0 (=1).
    •   0.5*Body[1].mass*sqr(Body[1].v) ens torna la meitat de la massa del cos 1 multiplicada pel quadrat de la velocitat del cos 1 (=energia cinètica del cos 1).
    •   if( body[3].p.x<0, 99 , 123 ) ens torna el valor 99 si la coordenada x de la posició del cos 3 és menor que zero i 123 en un altre cas.

    Presentem a continuació una taula amb les funcions matemàtiques:

    (Si voleu saber més sobre les funcions us remetem de nou a l'apèndix B del manual de l'Interactive Physics.)

Nom

Operació

Exemple
Resultat de l'exemple
Sortida
pi

pi

pi
3.142
nombre
sqr(x)

quadrat

sqr(7)
49
nombre
sqr(v)

quadrat del mòdul

sqr(constraint[5].dp)
el quadrat de la distància entre els dos extrems de la restricció 5
nombre
sqrt(x)

arrel quadrada

sqrt(81)
9
nombre
pow(x,y)

potència

pow(10,3)
1000
nombre
abs(x)

valor absolut

abs(-33)
33
nombre
sign(x)

signe

sign(-33)
-1
-1 o +1
sin(x)

sinus

sin (pi/6)
0.500
nombre
cos(x)

cosinus

cos(0)
1
nombre
tan(x)

tangent

tan(pi)
0
nombre
asin(x)

arcsinus

asin(1)
1.571 (p/2)
nombre
acos(x)

arccosinus

acos(1)
0
nombre
atan(x)

arctangent

atan(1)
0.785 (p/4)
nombre
atan2(y,x)

arctangent generalitzat

atan(-1,0)
-1.571 (l'angle que forma el vector (0,-1) amb l'eix de les x)
nombre
vector(x,y)

vector

vector(2,5)
el vector (2,5)
vector
angle(v)

angle

angle(vector(1,1))
0.785 (p/4: l'angle que el vector (1,1) forma amb l'eix de les x)
nombre
mag(v)

mòdul del vector

mag(vector(3,4))
5
nombre
log(x)

logaritme decimal

log(100)
2
nombre
ln(x)

logaritme neperià

ln(10)
2.303
nombre
exp(x)

exponencial

exp(1)
2,718 (e)
nombre
floor(x)

part entera

floor(5.77)
5
nombre
ceil(x)

enter igual o superior

ceil(5.77)
6
nombre
rand

nombre aleatori

rand
un nombre aleatori entre 0 i 1
nombre
max(x,y)

màxim

max(3,17)
17
nombre
min(x,y)

mínim

min(22,19)
19
nombre
if(x,y,z)

si

if(t<10,5,1)
  • 5 quan t és menor que 10
  • 1 quan t és major o igual que 10
nombre
and(x,y)

i lògic

and(t>5,t<10)
  • quan t és major que 5 i menor que 10 dóna 1 (cert)
  • en altre cas dóna 0 (fals)
0 o 1
or(x,y)

o lògic

or(t<5,t>10)
  • quan t és menor que 5 o major que 10 dóna1 (cert)
  • en altre cas dóna 0 (fals)
0 o 1

 

Les funcions de simulació extreuen dades a partir d'una simulació. Algunes d'elles són:

frame: Indica el número de quadre actual.

frictionforce(cos1,cos2): Ens dóna la força de fregament del primer cos sobre el segon.

normalforce(cos1,cos2): La força de contacte entre els dos cossos.

length(cos1,cos2) : Dóna la distància entre els centres de massa de dos cossos.

section(cos,v): És l'amplada de la secció del cos en la direcció del vector v.

kinetic(): Dóna l'energia cinètica total de tots els cossos de la simulació.

Una relació completa de les funcions de simulació amb les seves descripcions podeu trobar-la al manual de l'Interactive Physics (B-22 a B-24).

 

   
  Pràctica 1