- added Pid

- added Temp Controller
- added Kalman
This commit is contained in:
jens
2020-11-26 19:57:28 +01:00
parent f384110d76
commit bf205742b1
7 changed files with 255 additions and 46 deletions
+41
View File
@@ -0,0 +1,41 @@
from components.pid import Pid
from components.pid import Kalman
class TempController:
def __init__(self, params):
self.dt = params['dt']
self.pid_hold = Pid()
self.pid_rate = Pid()
self.theta_ist = 0
self.theta_soll = 0
self.heatrate_ist = 0
self.heatrate_soll = 0
self.params = params
def set_theta_ist(self, value):
self.theta_ist = value
def set_heatrate_ist(self, value):
self.heatrate_ist = value
def set_theta_soll(self, value):
self.theta_soll = value
def set_heatrate_soll(self, value):
self.heatrate_soll = value
def process(self):
theta_err = self.theta_soll - self.theta_ist
heatrate_err = self.heatrate_soll - self.heatrate_ist
self.pid_hold.process(self.dt, self.params['Hold']['Pid'], theta_err)
self.pid_rate.process(self.dt, self.params['Heat']['Pid'], heatrate_err)
def get_power_hold(self):
power_hold = 200 + self.params['P_max'] * self.pid_hold.get_y()
return max(self.params['P_min'], min(self.params['P_max'], power_hold))
def get_power_heat(self):
power_heat = 1500 + self.params['P_max'] * self.pid_rate.get_y()
return max(self.params['P_min'], min(self.params['P_max'], power_heat))