Closed phet-steele closed 8 years ago
All animation updates (including pendulum motion and timer tick) made through special "step" function. Precision of timer tick directly depend on frequency of "step" function calls. For my pc this precision can hesitate from 0.012s to 0.05s and it leads to different measurement results. For #93 same situation. We can try to split this tick into many small ticks within sim to increase precision (like it was made for gravity-and-orbits) but it probably kill performance, that critical for tablets. Should it be implemented?
Thanks for your input, @andrey-zelenkov. @ariel-phet, can you please take a look at this issue and comment? Would it be possible to split the tick in half rather than many small ticks? Perhaps that would improve the precision of the period timer without tanking performance.
After rewriting the core model, it's much much more consistent, but is still occasionally off. I haven't touched the period-recording code, so I'll take a look there next.
This is also super-obvious if you use the step button to move the model forwards.
Will plan to add precise emitted events from the pendulum model for when it crosses the 0-angle AND when it turns around (with computed timestamps and direction information).
PeriodTrace will be mostly rewritten to take those as input, storing the proper maximum angles.
Period testing with new method:
normal: (steps ~16ms, e.g. runge-kutta every 1.6ms) 2.5001977142680523 2.500197713160823 2.5001977164903697 2.500197714112651 2.500197714225982 2.5001977136204485
step button: (steps 250ms, runge-kutta steps 25ms at a time + interpolation of crossing time) 2.5001980285900767 2.5001980172768867 2.500198002549144 2.5001979917706394 2.5001979812211825 2.5001979709007127 2.5001979608091704
slow motion: (steps 2ms, runge-kutta every 0.2ms) 2.5001976759436797 2.5001976759447038 2.5001976759323385 2.50019767595233 2.5001976759450577
Thus even with 500ms (maximum step size, double the 'step button' size), it looks like we'll get acceptable consistency for the period trace to always report the same number (e.g. 2.5002 in this case).
Fixed, as described above.
Between multiple trials in the Lab screen using the period timer, the length of the period should be the same each time if conditions are not changed. However, each trial performed in 1.0.0-dev.4 returns a different period length.
1st Trial:
2nd Trial:
Additionally, under the same conditions as a trial in the flash version, the HTML5 version should match the flash's period time, but there are variations between the two.
Flash (with same conditions as above):
Tested on Win 8.1 browsers Troubleshooting information: Name: Pendulum Lab URL: http://www.colorado.edu/physics/phet/dev/html/pendulum-lab/1.0.0-dev.4/pendulum-lab_en.html Version: 1.0.0-dev.4 2015-06-04 17:46:07 UTC Features missing: touch User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 Language: en-US Window: 1366x633 Pixel Ratio: 1/1 WebGL: WebGL 1.0 GLSL: WebGL GLSL ES 1.0 Vendor: Mozilla (Mozilla) Vertex: attribs: 16 varying: 28 uniform: 1024 Texture: size: 16384 imageUnits: 16 (vertex: 16, combined: 32) Max viewport: 32767x32767 OES_texture_float: true Dependencies JSON: {"comment":"# pendulum-lab 1.0.0-dev.4 Thu Jun 04 2015 11:46:00 GMT-0600 (MDT)","assert":{"sha":"903564a25a0f26acdbd334d3e104039864b405ef","branch":"master"},"axon":{"sha":"7de4a27be4b322b71c5f5046df193a03ccf0f161","branch":"master"},"babel":{"sha":"8725cd18114c1307057c465a0762a3cf8f1cb1b9","branch":"master"},"brand":{"sha":"b3362651f1d7eddb7f8697d02400472f97f9d140","branch":"master"},"chipper":{"sha":"c7d6ea5f9bef6e3882309af56ad409908dd28878","branch":"master"},"dot":{"sha":"a6a50c92c4cda5f8a3371d8c357ea565b7e7bd6c","branch":"master"},"joist":{"sha":"55fd6884039c5ef2f2145093c8530beab5490233","branch":"master"},"kite":{"sha":"b915f3b160744e4833d177dc38e74e4cbc912883","branch":"master"},"pendulum-lab":{"sha":"2b4cf70e4a8a88b37882b1643d44155a806508ab","branch":"master"},"phet-core":{"sha":"23834d107dc1cb368c00901c76927b712b9caa10","branch":"master"},"phetcommon":{"sha":"bb92c52cd90fdaa0c2a746fea82594afd439b4db","branch":"master"},"scenery":{"sha":"f09eddb7393946fcbedb63ebf6b88d1785c91bfc","branch":"master"},"scenery-phet":{"sha":"7ffc5a1a36e0afe36d035d0367078b3558fd157f","branch":"master"},"sherpa":{"sha":"ae2168a85ceb4094c23cd47ba5fe8145375448eb","branch":"master"},"sun":{"sha":"c9087fbb0cdd83f79452330fec3b83f809e2c0d8","branch":"master"}}