BYU-PRISM / GEKKO

GEKKO Python for Machine Learning and Dynamic Optimization
https://machinelearning.byu.edu
Other
573 stars 102 forks source link

gekko with tclab, cannot understand tclab.setrate #121

Closed Tibalt closed 3 years ago

Tibalt commented 3 years ago

Hi, all I did not find a suitable place to file issue for tclab. so I put it here. The below code self explains.

I believe labtime.setrate(n) should make the simuation faster than real time for n times. But the actual result is not expected. I cannot find the source code for tclab so cannot dig further.

from tclab import labtime, clock
import time

time_start = time.time()
labtime_start = labtime.time()

def do(n):
    print("\nRate =", labtime.get_rate())
    for t in clock(n):
        t_real = time.time() - time_start
        t_lab  = labtime.time() - labtime_start
        print("real time = {0:4.1f}    lab time = {1:4.1f}".format(t_real, t_lab))

labtime.set_rate(2)
do(100)
Rate = 2
real time =  0.0    lab time =  0.0
real time =  0.4    lab time =  1.0
real time =  0.7    lab time =  2.0
real time =  1.0    lab time =  3.1
real time =  1.2    lab time =  4.0
real time =  1.4    lab time =  5.1
real time =  1.5    lab time =  6.1
real time =  1.6    lab time =  7.1
real time =  1.7    lab time =  8.2
real time =  1.8    lab time =  9.1
real time =  1.8    lab time = 10.3
real time =  1.9    lab time = 11.0
real time =  1.9    lab time = 12.4
real time =  1.9    lab time = 13.5
real time =  1.9    lab time = 14.2
real time =  2.0    lab time = 15.1
real time =  2.0    lab time = 16.9
real time =  2.0    lab time = 17.8
real time =  2.0    lab time = 18.7
real time =  2.0    lab time = 19.5
real time =  2.1    lab time = 20.4
real time =  2.1    lab time = 21.2
real time =  2.1    lab time = 22.1
real time =  2.1    lab time = 23.9
real time =  2.1    lab time = 24.8
real time =  2.1    lab time = 25.7
real time =  2.2    lab time = 26.5
real time =  2.2    lab time = 27.4
real time =  2.2    lab time = 28.2
real time =  2.2    lab time = 29.1
real time =  2.2    lab time = 30.9
real time =  2.3    lab time = 31.8
real time =  2.3    lab time = 32.7
real time =  2.3    lab time = 33.5
real time =  2.3    lab time = 34.4
real time =  2.3    lab time = 35.3
real time =  2.3    lab time = 36.2
real time =  2.3    lab time = 37.1
real time =  2.4    lab time = 38.9
real time =  2.4    lab time = 39.8
real time =  2.4    lab time = 40.6
real time =  2.4    lab time = 41.5
real time =  2.4    lab time = 42.4
real time =  2.5    lab time = 43.3
real time =  2.5    lab time = 44.1
real time =  2.5    lab time = 46.4
real time =  2.5    lab time = 47.7
real time =  2.5    lab time = 48.6
real time =  2.6    lab time = 49.5
real time =  2.6    lab time = 50.3
real time =  2.6    lab time = 51.2
real time =  2.6    lab time = 52.1
real time =  2.6    lab time = 53.9
real time =  2.7    lab time = 54.8
real time =  2.7    lab time = 55.7
real time =  2.7    lab time = 56.5
real time =  2.7    lab time = 57.4
real time =  2.7    lab time = 58.3
real time =  2.7    lab time = 59.2
real time =  2.8    lab time = 60.1
real time =  2.8    lab time = 61.0
real time =  2.8    lab time = 62.8
real time =  2.8    lab time = 63.6
real time =  2.8    lab time = 64.5
real time =  2.8    lab time = 65.4
real time =  2.9    lab time = 66.3
real time =  2.9    lab time = 67.1
real time =  2.9    lab time = 68.9
real time =  2.9    lab time = 69.8
real time =  2.9    lab time = 70.7
real time =  3.0    lab time = 71.6
real time =  3.0    lab time = 72.4
real time =  3.0    lab time = 73.3
real time =  3.0    lab time = 74.2
real time =  3.0    lab time = 75.1
real time =  3.0    lab time = 76.8
real time =  3.1    lab time = 77.7
real time =  3.1    lab time = 78.6
real time =  3.1    lab time = 79.5
real time =  3.1    lab time = 80.4
real time =  3.1    lab time = 81.3
real time =  3.1    lab time = 82.2
real time =  3.2    lab time = 83.1
real time =  3.2    lab time = 84.8
real time =  3.2    lab time = 85.7
real time =  3.2    lab time = 86.6
real time =  3.2    lab time = 87.5
real time =  3.2    lab time = 88.4
real time =  3.3    lab time = 89.2
real time =  3.3    lab time = 90.1
real time =  3.3    lab time = 91.9
real time =  3.3    lab time = 92.7
real time =  3.3    lab time = 93.6
real time =  3.4    lab time = 94.5
real time =  3.4    lab time = 95.4
real time =  3.4    lab time = 96.3
real time =  3.4    lab time = 97.2
real time =  3.4    lab time = 98.1
real time =  3.5    lab time = 99.9
APMonitor commented 3 years ago

Here is the source: https://github.com/jckantor/TCLab/blob/master/tclab/labtime.py

The rate is a speed up so 2 should be twice the clock time. However, this isn't happening with your example so you may need to debug and submit an issue.