Commit Graph

30 Commits

Author SHA1 Message Date
topquark12 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: #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
topquark12 c4e3be1d05 fix pid.rs test, exclude dfu from test 2021-01-16 11:04:24 +08:00
topquark12 193d54a0a6 pid: anti-windup when compliance voltage reached 2021-01-11 14:00:52 +08:00
topquark12 1539b624bd pid: more sensible default parameters 2021-01-08 11:31:33 +08:00
topquark12 5c84b7438b Integral rescaling 2021-01-08 11:25:01 +08:00
topquark12 e94601f54f pid: fix derivative calculation
Reviewed-on: #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
topquark12 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
topquark12 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
Sebastien Bourdeauducq 50a1b9f52d pid: partial -> proportional 2020-12-26 11:01:40 +08:00
Astro e13ed37271 pid: fix tests 2020-12-20 20:24:24 +01:00
Astro b176fc2788 pid: doc parameters 2020-12-18 16:29:53 +01:00
Astro b717ac5495 pid: update default gain parameters 2020-12-18 16:27:47 +01:00
Astro e9e46b29cf pid: integrate time_delta to free gain parameters from sampling period
Fixes Gitea issue #22
2020-12-18 15:40:05 +01:00
Astro b7e6cdbec2 pytec: measure interval 2020-12-16 22:14:21 +01:00
Astro a943308203 pid: never reset 2020-10-13 23:55:22 +02:00
Astro d574ccb5f4 pid: change signedness from heating to cooling 2020-10-11 23:12:18 +02:00
Astro 83a266852a pid: move ki coefficient inside integration 2020-10-11 01:59:39 +02:00
Astro 62d89a68a1 pwm: export summary as json 2020-09-30 22:10:42 +02:00
Astro 5521563c91 pid: export summary as json 2020-09-30 20:06:47 +02:00
Astro 3b050347d4 config: add test_encode_decode 2020-09-24 21:35:15 +02:00
Astro 58e648b5e0 pid::Parameters, CenterPoint: demote f32 fields to save config space 2020-09-24 20:47:02 +02:00
Astro 5d0d75d395 config: encode with serde_cbor 2020-09-24 01:18:33 +02:00
Astro 7361619a53 pid: update default parameters 2020-09-18 00:41:32 +02:00
Astro ba84295ec5 reconnect the pid controller 2020-09-18 00:09:30 +02:00
Astro fb81380955 fix tests
run with `cargo test --target=x86_64-unknown-linux-gnu`
2020-09-17 01:48:27 +02:00
Astro ba860e52ac control i_set dac in volts 2020-05-17 01:27:47 +02:00
Astro 163bb38f68 simplify pid, keep last_output 2020-03-19 22:00:22 +01:00
Astro da4aaf4ff6 implement all the tcp commands 2020-03-19 18:34:57 +01:00
Astro 0f4442b124 switch pid+steinhart_hart parameters from f32 to f64 2020-03-18 21:56:52 +01:00
Astro 1ad821299b build mods pid + steinhard_hart 2020-03-18 21:51:30 +01:00