Commit Graph

33 Commits

Author SHA1 Message Date
d8ec083dbc Apply clippy suggestions 2024-10-14 13:25:49 +08:00
1962135e79 Apply cargo fmt 2024-10-14 13:25:49 +08:00
925601f4f5 rm pid setpoint change kick 2024-05-10 10:29:08 +08:00
26ad2f0119 rewrite PID
Rewrite of PID according to https://hackmd.io/IACbwcOTSt6Adj3_F9bKuw PID implementation.

To migrate:
- TEC+/- pin polarity has to be reversed.
- Some saved settings might be wiped upon flashing of new firmware, back up settings before upgrade
- Min / Max integral parameters no longer exist
- kp, ki, kd will likely need to be retuned

The software has been tested on hardware with good temperature control stability.

Reviewed-on: M-Labs/thermostat#68
Co-authored-by: topquark12 <aw@m-labs.hk>
Co-committed-by: topquark12 <aw@m-labs.hk>
2022-02-24 20:16:47 +08:00
c4e3be1d05 fix pid.rs test, exclude dfu from test 2021-01-16 11:04:24 +08:00
193d54a0a6 pid: anti-windup when compliance voltage reached 2021-01-11 14:00:52 +08:00
1539b624bd pid: more sensible default parameters 2021-01-08 11:31:33 +08:00
5c84b7438b Integral rescaling 2021-01-08 11:25:01 +08:00
e94601f54f pid: fix derivative calculation
Reviewed-on: M-Labs/thermostat#40
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2020-12-29 17:09:03 +08:00
8c9e12587f fix simulation math, provided simulation control loop is stable and passes test, reaching simulation cycle limit before settling fails test 2020-12-28 17:38:10 +08:00
7c013ff4a4 PID fixes
Flipped error calculation method to correct behavior of kP and kI terms.

Added anti integral windup to integral handling.

Changed how the i and integral term is calculated, to prevent old kI settings from affecting the current i term calculation when kI is being tuned. Especially noticable when kI is set from a non-zero value to zero.
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2020-12-26 11:47:21 +08:00
50a1b9f52d pid: partial -> proportional 2020-12-26 11:01:40 +08:00
e13ed37271 pid: fix tests 2020-12-20 20:24:24 +01:00
b176fc2788 pid: doc parameters 2020-12-18 16:29:53 +01:00
b717ac5495 pid: update default gain parameters 2020-12-18 16:27:47 +01:00
e9e46b29cf pid: integrate time_delta to free gain parameters from sampling period
Fixes Gitea issue #22
2020-12-18 15:40:05 +01:00
b7e6cdbec2 pytec: measure interval 2020-12-16 22:14:21 +01:00
a943308203 pid: never reset 2020-10-13 23:55:22 +02:00
d574ccb5f4 pid: change signedness from heating to cooling 2020-10-11 23:12:18 +02:00
83a266852a pid: move ki coefficient inside integration 2020-10-11 01:59:39 +02:00
62d89a68a1 pwm: export summary as json 2020-09-30 22:10:42 +02:00
5521563c91 pid: export summary as json 2020-09-30 20:06:47 +02:00
3b050347d4 config: add test_encode_decode 2020-09-24 21:35:15 +02:00
58e648b5e0 pid::Parameters, CenterPoint: demote f32 fields to save config space 2020-09-24 20:47:02 +02:00
5d0d75d395 config: encode with serde_cbor 2020-09-24 01:18:33 +02:00
7361619a53 pid: update default parameters 2020-09-18 00:41:32 +02:00
ba84295ec5 reconnect the pid controller 2020-09-18 00:09:30 +02:00
fb81380955 fix tests
run with `cargo test --target=x86_64-unknown-linux-gnu`
2020-09-17 01:48:27 +02:00
ba860e52ac control i_set dac in volts 2020-05-17 01:27:47 +02:00
163bb38f68 simplify pid, keep last_output 2020-03-19 22:00:22 +01:00
da4aaf4ff6 implement all the tcp commands 2020-03-19 18:34:57 +01:00
0f4442b124 switch pid+steinhart_hart parameters from f32 to f64 2020-03-18 21:56:52 +01:00
1ad821299b build mods pid + steinhard_hart 2020-03-18 21:51:30 +01:00