From 7f3a3cf99a976ade3d25613c7eb1d09bc87bf975 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Tue, 23 Apr 2019 15:41:24 +0000 Subject: [PATCH] - better template git-svn-id: http://moon:8086/svn/projects/HendiControl@261 fda53097-d464-4ada-af97-ba876c37ca34 --- Control/brewpi/brewpi.json.templ | 55 +++++++++----------------------- Control/brewpi/controller.py | 6 ++-- 2 files changed, 18 insertions(+), 43 deletions(-) diff --git a/Control/brewpi/brewpi.json.templ b/Control/brewpi/brewpi.json.templ index 61652a6..b060d19 100644 --- a/Control/brewpi/brewpi.json.templ +++ b/Control/brewpi/brewpi.json.templ @@ -10,62 +10,37 @@ "plant_name" : "Mass", "useKalman" : true, "kalman" : { - "dt" : 1, - "var_P" : 0.0, - "var_Q" : 0.0000001, - "var_R" : 0.5, - "var_Z" : 0.1 - }, + "dt" : 1.0, + "var_P" : 0, + "var_Q" : 0.000001, + "var_R" : 1, + "var_Z" : 0.0 + }, "Hold" : { - "Acqu": { - "thresh_leave" : -100.0, - "Pid" : { - "kp" : 0.2, - "ki" : 0.001, - "kd" : 0.2, - "rho" : 0.99999 - } - }, - "Track": { - "thresh_leave" : 1.5, "Pid" : { "kp" : 0.4, - "ki" : 0.002, - "kd" : 0.2, + "ki" : 0.001, + "kd" : 0.1, "rho" : 0.9999 } - } }, "Heat" : { - "Acqu": { - "thresh_leave" : -100.0, "Pid" : { - "kp" : 0.2, + "kp" : 0.1, "ki" : 0.004, - "kd" : 4.0, - "rho" : 0.99999 + "kd" : 0.5, + "rho" : 0.999999 } - }, - "Track": { - "thresh_leave" : 0.5, - "Pid" : { - "kp" : 0.2, - "ki" : 0.004, - "kd" : 0.05, - "rho" : 0.9999 - } - } } }, - "WaterSim" : { "dt" : 1.0, - "theta_amb" : 15, + "theta_amb" : 20, "C" : 4190, - "M" : 25, - "L" : 0.15, - "Td" : 20, + "M" : 20, + "L" : 0.1, + "Td" : 30, "kn" : 0.2 }, diff --git a/Control/brewpi/controller.py b/Control/brewpi/controller.py index 8e9353c..6f737b7 100644 --- a/Control/brewpi/controller.py +++ b/Control/brewpi/controller.py @@ -229,11 +229,11 @@ class Controller(TimerListener): ovenStateNext = ovenStates.NOP if self.ovenState != ovenStates.NOP: - self.pid_hold.process(self.dt, self.params['Hold']['Acqu']['Pid'], ctrl_theta_err) - self.pid_rate.process(self.dt, self.params['Heat']['Acqu']['Pid'], ctrl_heatrate_err) + self.pid_hold.process(self.dt, self.params['Hold']['Pid'], ctrl_theta_err) + self.pid_rate.process(self.dt, self.params['Heat']['Pid'], ctrl_heatrate_err) power_hold = max(self.params['P_min'], min(self.params['P_max'], self.params['P_max'] * self.pid_hold.get_y())) - power_heat = max(self.params['P_min'], min(self.params['P_max'], self.params['P_max']*self.pid_rate.get_y())) + power_heat = max(self.params['P_min'], min(self.params['P_max'], self.params['P_max'] * self.pid_rate.get_y())) power_soll = min(power_hold, power_heat) self.plant.setPower(power_soll) power_ist = self.plant.getPower()