- Pid: D-Part need not to be error based

- increased pot delay to 30 s
This commit is contained in:
jens
2020-12-20 18:23:14 +01:00
parent d3e61ab72f
commit 5f60312d4e
2 changed files with 11 additions and 11 deletions
+5 -5
View File
@@ -9,7 +9,7 @@ class Pid:
self.yi = 0
# Differentiator
self.err = 0
self.d = 0
# Anti windup
self.y_min = -1.0
@@ -29,10 +29,10 @@ class Pid:
def reset(self):
self.yi = 0
self.err = 0
self.d = 0
self.awu = 0
def process(self, err):
def process(self, err, d):
dt = self.params['dt']
kp = self.params['kp'] * self.k
ki = self.params['ki'] * self.k
@@ -40,10 +40,10 @@ class Pid:
kt = self.params['kt'] * self.k
self.yi = self.yi + ki*dt * err + kt*dt * self.awu
yd = kd/dt*(err - self.err)
yd = kd/dt*(d - self.d)
yp = kp * err
self.err = err
self.d = d
y = yp + self.yi + yd
+6 -6
View File
@@ -92,8 +92,8 @@ class TempController(AttributeChange):
state_next = States.HOLD
self.pid_hold.reset()
self.pid_hold.process(theta_err)
self.pid_rate.process(heatrate_err)
self.pid_hold.process(theta_err, -self.theta_ist)
self.pid_rate.process(heatrate_err, -self.heatrate_ist)
self.y = self.pid_rate.get_y()
@@ -123,10 +123,10 @@ if __name__ == '__main__':
},
"Heat": {
"dt": 1.0,
"kp": 0.1,
"kp": 0.2,
"ki": 0.01,
"kd": 0.0,
"kt": 1.0
"kd": 2.0,
"kt": 1.5
}
}
@@ -136,7 +136,7 @@ if __name__ == '__main__':
"C" : 4190,
"M" : 20,
"L" : 0.05,
"Td" : 12,
"Td" : 30,
"kn" : 0.2
}