- improved timer
git-svn-id: http://moon:8086/svn/projects/HendiControl@120 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
@@ -21,6 +21,7 @@ class Controller():
|
|||||||
self.dt = params['dt']
|
self.dt = params['dt']
|
||||||
self.params = params
|
self.params = params
|
||||||
self.pid = Pid()
|
self.pid = Pid()
|
||||||
|
self.timer_ist = 0
|
||||||
self.theta_ist = 0
|
self.theta_ist = 0
|
||||||
self.heatrate_ist = 0
|
self.heatrate_ist = 0
|
||||||
self.theta_v = np.empty(0)
|
self.theta_v = np.empty(0)
|
||||||
@@ -29,7 +30,7 @@ class Controller():
|
|||||||
self.power_v = np.empty(0)
|
self.power_v = np.empty(0)
|
||||||
self.error_v = np.empty(0)
|
self.error_v = np.empty(0)
|
||||||
self.time = 0
|
self.time = 0
|
||||||
self.sim_warp_factor = 10
|
self.sim_warp_factor = 100
|
||||||
self.report_interval = 1.0
|
self.report_interval = 1.0
|
||||||
self.report_last_time = 0
|
self.report_last_time = 0
|
||||||
|
|
||||||
@@ -41,10 +42,13 @@ class Controller():
|
|||||||
now = time.time()
|
now = time.time()
|
||||||
if (now - self.report_last_time) >= self.report_interval:
|
if (now - self.report_last_time) >= self.report_interval:
|
||||||
|
|
||||||
self.log("Temp IST = {:0.2f} °C".format(self.theta_ist))
|
self.log("Temp IST = {:0.1f} °C".format(self.theta_ist))
|
||||||
self.log("Heatrate IST = {:0.2f} °C/min.".format(self.heatrate_ist))
|
self.log("Heatrate IST = {:0.1f} °C/min.".format(self.heatrate_ist))
|
||||||
self.log("Power = {:0.2f} W".format(self.plant.getPower()))
|
self.log("Power = {:0.0f} W".format(self.plant.getPower()))
|
||||||
# self.log("theta_err = {:0.2f} °C".format(theta_err))
|
if self.timer_ist > 0:
|
||||||
|
self.log("Rast remaining : {:0.2f} min.".format(self.timer_ist/60))
|
||||||
|
|
||||||
|
# self.log("theta_err = {:0.1f} °C".format(theta_err))
|
||||||
self.report_last_time = now
|
self.report_last_time = now
|
||||||
|
|
||||||
def start(self, recipe):
|
def start(self, recipe):
|
||||||
@@ -99,8 +103,8 @@ class Controller():
|
|||||||
self.log("Target temperature {} °C".format(theta_soll))
|
self.log("Target temperature {} °C".format(theta_soll))
|
||||||
|
|
||||||
# Timer
|
# Timer
|
||||||
timer_ist = 0
|
self.timer_ist = 0
|
||||||
timer_soll = 60*rast['time']/self.dt
|
timer_soll = 60*rast['time']
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
# The loop
|
# The loop
|
||||||
@@ -140,7 +144,8 @@ class Controller():
|
|||||||
pid_thresh_track = 0.5
|
pid_thresh_track = 0.5
|
||||||
if (theta_ist + 1.0) >= theta_soll:
|
if (theta_ist + 1.0) >= theta_soll:
|
||||||
ovenStateNext = ovenStates.HOLD
|
ovenStateNext = ovenStates.HOLD
|
||||||
timer_ist = 0
|
self.log("Enter rast of {} min.".format(timer_soll))
|
||||||
|
self.timer_ist = timer_soll
|
||||||
|
|
||||||
if self.ovenState == ovenStates.HOLD:
|
if self.ovenState == ovenStates.HOLD:
|
||||||
pid_err = theta_err_sm.get_y()
|
pid_err = theta_err_sm.get_y()
|
||||||
@@ -148,8 +153,7 @@ class Controller():
|
|||||||
pid_params_track = self.params['Hold']['Track']['Pid']
|
pid_params_track = self.params['Hold']['Track']['Pid']
|
||||||
pid_thresh_acqu = 0.2
|
pid_thresh_acqu = 0.2
|
||||||
pid_thresh_track = 0.5
|
pid_thresh_track = 0.5
|
||||||
timer_ist += self.dt
|
if self.timer_ist == 0:
|
||||||
if timer_ist >= timer_soll:
|
|
||||||
ovenStateNext = ovenStates.NOP
|
ovenStateNext = ovenStates.NOP
|
||||||
doLoop = False
|
doLoop = False
|
||||||
|
|
||||||
@@ -205,6 +209,11 @@ class Controller():
|
|||||||
self.theta_ist = theta_ist
|
self.theta_ist = theta_ist
|
||||||
self.heatrate_ist = heatrate_ist
|
self.heatrate_ist = heatrate_ist
|
||||||
|
|
||||||
|
if self.timer_ist > 0:
|
||||||
|
self.timer_ist -= self.dt
|
||||||
|
else:
|
||||||
|
self.timer_ist = 0
|
||||||
|
|
||||||
self.report()
|
self.report()
|
||||||
|
|
||||||
time.sleep(time_to_sleep)
|
time.sleep(time_to_sleep)
|
||||||
|
|||||||
Reference in New Issue
Block a user