<![CDATA[Kinematics Simulator]]> false false false false false false true true true false ]]> ./kinematics/Screen Shot 2018-03-21 at 1.36.20 PM (2).png ./01authorlookang50x50.png;./01authorPacoEsquembre2011.png;./01authorwc_icon.png;./01authorFelix_J_Garcia_Clemente.png DESCRIPTION_EDITOR About true true _default_ About false

Topics

Kinematics
Speed, velocity and acceleration
Graphical analysis of motion

Description

This simulation has a drop-down menu for exploration of
(i) at rest  use of progressive mathematical model is encouraged X = 0 for example
(ii) moving with uniform velocity, use of progressive mathematical model is encouraged for example X = 1*t for a constant velocity motion of v =1 m/s
(iii) moving with non-uniform velocity (eg, constant acceleration) use of progressive mathematical model is encouraged for example X = 0.5*1*t^2 for a constant acceleration motion of a =1 m/s^2
When only the  velocity-time graph check-box is selected, it can be explored for the following cases too.
(i) at rest ,
(ii) moving with uniform velocity (eg, no acceleration) 
(iii) moving with uniform acceleration (eg, constant acceleration = 9.81 m/s^2)
(iv) moving with non-uniform acceleration


Sample Learning Goals

(e) plot and interpret a displacement-time graph and a velocity-time graph
(f) deduce from the shape of a displacement-time graph when a body is:
(i) at rest  example of progressive mathematical model is encouraged X = 0 
(ii) moving with uniform velocity  example of  progressive mathematical model is encouraged X = 1*t  for a constant velocity motion of v =1 m/s
(iii) moving with non-uniform velocity example of X = 0.5*1*t^2 for a constant acceleration motion of a =1 m/s^2
(g) deduce from the shape of a velocity-time graph when a body is:
(i) at rest
(ii) moving with uniform velocity
(iii) moving with uniform acceleration
(iv) moving with non-uniform acceleration

Version:

  1. http://weelookang.blogspot.sg/2013/12/ejss-kinematics-model.html      
]]>
20 5 t false VARIABLE_EDITOR Var Table true false VARIABLE_EDITOR secondcar true false VARIABLE_EDITOR shadows true false VARIABLE_EDITOR totaldistance true false VARIABLE_EDITOR caluate true false VARIABLE_EDITOR layout true false VARIABLE_EDITOR model true false VARIABLE_EDITOR force true false VARIABLE_EDITOR energy true false CODE_EDITOR undefined true false CODE_EDITOR color true false CODE_EDITOR zoom true false CODE_EDITOR Init Page true false CODE_EDITOR menufa=orcereset true false CODE_EDITOR shadows true false CODE_EDITOR axes true false CODE_EDITOR svgradial true false '+ ' '+ ' '+ ' '+ ' '+ ''; container.innerHTML = svggradient; document.body.appendChild(container); var container = document.createElement('div'); var svggradient = ''+ ' '+ ' '+ ' '+ ' '+ ''; container.innerHTML = svggradient; document.body.appendChild(container); //"url(#mygrandient1)" var container = document.createElement('div'); var svggradient = ''+ ' '+ ' '+ ' '+ ' '+ ''; container.innerHTML = svggradient; document.body.appendChild(container); //"url(#mygrandient2)" ]]> CODE_EDITOR message true false ODE_EDITOR Evol Page true false EVENT_EDITOR Event false false CROSSING_EVENT BISECTION 100 true prev &&t>(0)) { shadowVis[counter] = true; xShadows[counter] = x; yShadows[counter] = y; tShadows[counter]=t; vShadows[counter]=v; aShadows[counter]=a; // xMarkVert[counter] = x; // yMarkVert[counter] = y - 0.15; // xMarkHoriz[counter] = x - 0.15; // yMarkHoriz[counter] = y; //prev = Math.ceil(t); counter++; //} ]]> EVENT_EDITOR Shadows true false STATE_EVENT BISECTION 100 true EVENT_EDITOR stopleft true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR stopright true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest1 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest2 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest61 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest61 2 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest61 2 2 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest61 3 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest61 2 3 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest61 2 2 2 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest63 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest63 2 true false CROSSING_EVENT BISECTION 100 true EVENT_EDITOR concepttest63 2 2 true false CROSSING_EVENT BISECTION 100 true t dt v a vymodel vymodelay aymodel v2 a2 RungeKutta 10000 0.00001 false false false false CODE_EDITOR FixRel Page true false =0.0){ _pause(); text = "paused"; v=0; //cheating fore zero value } ]]> CODE_EDITOR forces true false CODE_EDITOR energy true false CODE_EDITOR model true false CODE_EDITOR max true false =xmax&&x<100) xmax = xmax+10; //if (x<=xmin&&x>-100) xmin = xmin-10; if (x>=80) { _pause(); text ="maximum position and paused"; } if (x<=-80) { _pause(); text ="minimum position and paused"; } //if (y>ymax) ymax = ymax*1.2; //if (y CODE_EDITOR shadows true false CODE_EDITOR totaldistance true false 0){ // to start adding only after t>0 dx = x-xo; totaldistance = totaldistance+Math.abs(dx); } ]]> CODE_EDITOR calculatex true false x) { texts = " displacement x is decreasing \nat constant rate"; } else if (vo===v&&xo===x&&booleanpause===false) { texts = " displacement x \nis constant "; } else { texts = "displacement x = "+_view._format(x-xs,"0.00")+" m"; } ]]> CODE_EDITOR calculatev true false v&&a===ao) { textv = "velocity v is decreasing and \nat "+_view._format(v,"0.00")+" m/s"; } else if (vo===v&&ao===a) { textv = "velocity v is constant \nat "+_view._format(v,"0.00")+" m/s"; } else { textv = "velocity v = "+_view._format(v,"0.00")+" m/s"; } if (( Math.abs(vo)=== Math.abs(v))){ textspeed = "speed |v| is constant at "+_view._format(Math.abs(v),"0.00")+" m/s"+" and \naverage speed ="+_view._format(averagespeed,"0.00")+" m/s"; } else if (( Math.abs(vo)< Math.abs(v))){ textspeed = "speed |v| is increasing and t "+_view._format(Math.abs(v),"0.00")+" m/s"+" and \naverage speed ="+_view._format(averagespeed,"0.00")+" m/s"; } else if (( Math.abs(v) - Math.abs(vo))<0){ textspeed = "speed |v| is decreasing and at "+_view._format(Math.abs(v),"0.00")+" m/s"+" and \naverage speed ="+_view._format(averagespeed,"0.00")+" m/s"; } else { textspeed = "speed |v| = "+_view._format(Math.abs(v),"0.00")+" m/s"+" and \naverage speed ="+_view._format(averagespeed,"0.00")+" m/s" ; } ]]> CODE_EDITOR calculatea true false 0) { texta = "acceleration a is accelerating \nat " +_view._format(a,"0.00")+" m/s²"; } else if (a<0) { texta = "acceleration a is negative \nat " +_view._format(a,"0.00")+" m/s²"; } else if (a>0) { texta = "acceleration a is positive \nat " +_view._format(a,"0.00")+" m/s²"; } else if (a===0){ texta = "acceleration a is zero \nat " +_view._format(a,"0.00")+" m/s²"; } else { texta = "acceleration a = "+_view._format(a,"0.00")+" m/s²"; } // xo = x; // move to prelim codes //vo = v; //ao=a; ]]> CODE_EDITOR storedvaluesxva true false CODE_EDITOR axes true false CODE_EDITOR table true false LIBRARY_EDITOR fullscreen true false LIBRARY_EDITOR storedata true false LIBRARY_EDITOR chengeOrientation 2 true false LIBRARY_EDITOR android true false -1; //&& ua.indexOf("mobile"); } ]]> HTML_VIEW_EDITOR HtmlView Page true false 0 208 0 800 600 true true Elements.Panel true Elements.Panel Elements.TwoStateButton true Elements.Panel true Elements.Panel Elements.ComboBox 0)? opts[0]:""; // selected option storedata(); if ( option=="user defined"){ } else if ( option=="acceleration a=1"){ x=0; v=0; a=1; showcar2=true; //showcar2=false; } else if ( option=="deceleration v=5,a=-1"){ x=0; v=5; a=-1; showcar2=false; } else if ( option=="negative acceleration a=-1"){ x=0; v=0; a=-1; showcar2=false; } else if ( option=="deceleration v=-4,a=1"){ x=0; v=-4; a=1; showcar2=false; } //["at rest v=0","uniform motion v=1","uniform motion v=2","uniform motion v=-1","uniform motion v=-2","simple acceleration","simple deceleration","negative acceleration","positive deceleration","x₀=10,v₀=0.75","x₀=5,v₀=2","ConcepTest 1","ConcepTest 2","user defined"] else if ( option=="at rest v=0"){ x=0; v=0; a=0; showcar2=false; } else if ( option=="uniform motion v=3"){ x=0; v=3; a=0; showcar2=false; } else if ( option=="constant speed s=2"){ x=0; v=2; a=0; showcar2=false; } else if ( option=="uniform motion v=2"){ x=0; v=2; a=0; showcar2=false; } else if ( option=="uniform motion v=-3"){ x=0; v=-3; a=0; showcar2=false; } else if ( option=="uniform motion v=-2"){ x=0; v=-2; a=0; showcar2=false; } else if ( option=="x₀=10,v₀=0.75"){ x=10; v=0.75; a=0; showcar2=false; } else if ( option=="x₀=5,v₀=2"){ x=5; v=2; a=0; showcar2=false; } else if ( option=="ConcepTest 1"){ //alert(option); _view.worldgraph.setSelectedOptions(["x vs t"]); world=false; xvst=true; vvst=false; avst=false; Width1 = "0%"; Width2 = "100%"; Widthv = "0%"; Widtha = "0%"; x=5; v=5; a=-1; showcar2=false; //set view to x vs t graph only } else if ( option=="ConcepTest 2"){ //alert(option); _view.worldgraph.setSelectedOptions(["x vs t"]); world=false; xvst=true; vvst=false; avst=false; Width1 = "0%"; Width2 = "100%"; Widthv = "0%"; Widtha = "0%"; x=0; v=5; a=0; showcar2=true; x2=0; v2=8; a2=-2; } else if ( option=="ConcepTest 6 1"){ //alert(option); x=0; v=4; a=0; showcar2=false; } else if ( option=="ConcepTest 6 2"){ // alert(option); x=0; v=-3; a=0; showcar2=false; } else if ( option=="ConcepTest 6 3"){ //alert(option); x=-18; v=6; a=0; showcar2=true; x2=-9; v2=3; a2=0; } xs=x; // for modelling pedaogogy to work vs=v; // dxShadows[1] = (v*1+0.5*a*1^2).toFixed(1); // set first position generalise solution // xanddxShadows[1] = (x+v*1+0.5*a*1^2).toFixed(1); //need for always syncing with initial x, v ,a for (var counter=0; counter Elements.ComboBox 0)? opts[0]:""; // selected option //["world","x vs t"," v vs t","a vs t","world and x vs t","world and v vs t","world and a vs t"] if ( option=="world"){ world=true; xvst=false; vvst=false; avst=false; Evst=false; Fvst=false; Width1 = "100%"; Width2 = "0%"; Widthv = "0%"; Widtha = "0%"; Widthe = "0%"; Widthf = "0%"; } else if ( option=="x vs t"){ world=false; xvst=true; vvst=false; avst=false; Evst=false; Fvst=false; Width1 = "0%"; Width2 = "100%"; Widthv = "0%"; Widtha = "0%"; Widthe = "0%"; Widthf = "0%"; } else if ( option=="v vs t"){ world=false; xvst=false; vvst=true; avst=false; Evst=false; Fvst=false; Width1 = "0%"; Width2 = "0%"; Widthv = "100%"; Widtha = "0%"; Widthe = "0%"; Widthf = "0%"; } else if ( option=="a vs t"){ world=false; xvst=false; vvst=false; avst=true; Evst=false; Fvst=false; Width1 = "0%"; Width2 = "0%"; Widthv = "0%"; Widtha = "100%"; Widthe = "0%"; Widthf = "0%"; } else if ( option=="E vs t"){ world=false; xvst=false; vvst=false; avst=false; Evst=true; Fvst=false; Width1 = "0%"; Width2 = "0%"; Widthv = "0%"; Widtha = "0%"; Widthe = "100%"; Widthf = "0%"; //disabledworld=false; } else if ( option=="FB Diagram"){ world=false; xvst=false; vvst=false; avst=false; Evst=false; Fvst=true; Width1 = "0%"; Width2 = "0%"; Widthv = "0%"; Widtha = "0%"; Widthe = "0%"; Widthf = "100%"; } else if ( option=="world and x vs t"){ world=true; xvst=true; vvst=false; avst=false; Evst=false; Fvst=false; Width1 = "50%"; Width2 = "50%"; Widthv = "0%"; Widtha = "0%"; Widthe = "0%"; Widthf = "0%"; } else if ( option=="world and v vs t"){ world=true; xvst=false; vvst=true; avst=false; Evst=false; Fvst=false; Width1 = "50%"; Width2 = "0%"; Widthv = "50%"; Widtha = "0%"; Widthe = "0%"; Widthf = "0%"; } else if ( option=="world and a vs t"){ world=true; xvst=false; vvst=false; avst=true; Evst=false; Fvst=false; Width1 = "50%"; Width2 = "0%"; Widthv = "0%"; Widtha = "50%"; Widthe = "0%"; Widthf = "0%"; } else if ( option=="world and FBD"){ world=true; xvst=false; vvst=false; avst=false; Evst=false; Fvst=true; Width1 = "50%"; Width2 = "0%"; Widthv = "0%"; Widtha = "0%"; Widthe = "0%"; Widthf = "50%"; } else if ( option=="world and E"){ world=true; xvst=false; vvst=false; avst=false; Evst=true; Fvst=false; Width1 = "50%"; Width2 = "0%"; Widthv = "0%"; Widtha = "0%"; Widthe = "50%"; Widthf = "0%"; } else if ( option=="show model"){ showmodel=true; } else if ( option=="hide model"){ showmodel=false; } //"show motion diagram","hide motion diagram","show displacement every sec","hide displacement every sec" else if ( option=="show motion diagram"){ showmotiondiagram =true; } else if ( option=="hide motion diagram"){ showmotiondiagram =false; } else if ( option=="show displacement every sec"){ showdisplacementeverysec =true; } else if ( option=="hide displacement every sec"){ showdisplacementeverysec =false; } ]]> Elements.TwoStateButton Elements.Button Elements.Button Elements.Button false Elements.Panel Elements.Label Elements.ComboBox 0)? opts[0]:""; // selected option functionY=option+""; xmodel=_view.fField.evaluate({ t : t, x : xmodel }); if (option=="show me"){ if (_view.comboBox.getProperty("SelectedOptions")=="ConcepTest 6 3") { functionY= "if(t<3,-18.00+6.00*t ,-22.5+9*t-0.5*t^2)"; } else { functionY= _view._format(xs,"0.00")+"+"+_view._format(vs,"0.00")+"*t + 0.5*" +_view._format(a,"0.00")+"*t^2"; } } _view._update(); ]]> Elements.Function true Elements.Panel true Elements.PlottingPanel false Elements.Group2D Elements.Shape2D Elements.Shape2D Elements.Shape2D Elements.Trace Elements.Text2D =20) x = 20; //selected[0]="user_defined"; ]]> Elements.Image2D Elements.Image2D true Elements.Group2D Elements.Text2D Elements.Image2D Elements.Image2D Elements.Shape2D =20) x2 = 20; //selected[0]="user_defined"; ]]> true Elements.Group2D Elements.Arrow2D false Elements.Group2D Elements.Text2D Elements.Shape2D Elements.Arrow2D false Elements.Group2D Elements.Text2D Elements.Shape2D false Elements.Group2D false Elements.Group2D Elements.TextSet2D false Elements.Group2D Elements.ArrowSet2D Elements.ShapeSet2D 0&&showmotiondiagram]]> false Elements.Group2D Elements.TextSet2D false Elements.Group2D Elements.ArrowSet2D false Elements.Group2D false Elements.Group2D Elements.TextSet2D false Elements.Group2D Elements.ArrowSet2D Elements.Group2D Elements.Shape2D =20) x = 20; //selected[0]="user_defined"; ]]> Elements.Shape2D =20) x = 20; //selected[0]="user_defined"; ]]> false Elements.Group2D Elements.Arrow2D false Elements.Group2D Elements.Text2D Elements.Shape2D Elements.Arrow2D false Elements.Group2D Elements.Text2D Elements.Shape2D Elements.Shape2D Elements.Shape2D Elements.Shape2D Elements.AnalyticCurve2D Elements.Trail2D false Elements.PlottingPanel Elements.Shape2D Elements.AnalyticCurve2D Elements.Trail2D 0]]> 0]]> false Elements.Group2D Elements.Shape2D =20) x2 = 20;]]> Elements.Trail2D 0]]> 0]]> Elements.ShapeSet2D Elements.Shape2D =20) x = 20; for (var counter=0; counter Elements.ArrowSet2D false Elements.PlottingPanel Elements.Shape2D Elements.AnalyticCurve2D false Elements.Group2D Elements.Trail2D 0]]> 0]]> Elements.Shape2D Elements.Trail2D 0]]> 0]]> Elements.ShapeSet2D Elements.Shape2D Elements.ArrowSet2D false Elements.PlottingPanel Elements.Shape2D Elements.AnalyticCurve2D false Elements.Group2D Elements.Trail2D 0]]> 0]]> Elements.Shape2D Elements.Trail2D 0]]> 0]]> Elements.ShapeSet2D Elements.Shape2D false Elements.PlottingPanel false Elements.Group2D Elements.Text2D Elements.Shape2D Elements.Trail2D 0]]> false Elements.Group2D Elements.Text2D Elements.Shape2D Elements.Trail2D 0]]> false Elements.Group2D Elements.Text2D Elements.Shape2D Elements.Trail2D 0]]> false Elements.PlottingPanel Elements.Shape2D false Elements.Group2D false Elements.Group2D Elements.Text2D Elements.Arrow2D false Elements.Group2D Elements.Text2D Elements.Arrow2D false Elements.Group2D Elements.Text2D Elements.Arrow2D false Elements.Panel Elements.DataTable