Commit Graph

55 Commits (26ad2f0119ef0d24ca6b4f9d962b7c57942639f9)

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 16844a1dc1 dac: fix inconsistent current output behavior due to repeated sampling of noisy vref 2021-01-25 13:51:50 +08:00
topquark12 9e4d06fdbc clarify comment 2021-01-11 16:24:43 +08:00
topquark12 193d54a0a6 pid: anti-windup when compliance voltage reached 2021-01-11 14:00:52 +08:00
topquark12 3067b356c5 channels: add methods to retrieve actual voltage and current of TEC 2021-01-08 16:18:20 +08:00
topquark12 3ba2cc9ddc channels: voltage measurement refalect actual voltage across TEC 2021-01-08 15:52:35 +08: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 5ddd4d250e channels: swap adc inputs
Fixes Gitea issue #12
2020-12-07 00:22:00 +01:00
Astro 6fd5328042 channels: rm debug output 2020-10-01 02:09:43 +02:00
Astro 6e0cf26d6a export postfilter + s-h as json 2020-09-30 22:53:21 +02:00
Astro d4901cbab1 channels: add dac_value to Report 2020-09-30 22:53:03 +02:00
Astro 62d89a68a1 pwm: export summary as json 2020-09-30 22:10:42 +02:00
Astro 11f2ebe961 channels: DRY get_center(), update vref if used 2020-09-30 19:14:15 +02:00
Astro 445cde6ae8 channels: add test report_to_json 2020-09-30 18:01:18 +02:00
Astro 6951489545 channels: add pid_output to Report 2020-09-30 18:00:16 +02:00
Astro 9e5a58cafd main: switch reports to json serialization 2020-09-27 23:58:03 +02:00
Astro 61d2cd6ecf channels: init i_set at centerpoint 2020-09-25 22:56:23 +02:00
Astro f3ec96f425 channels: fix doc 2020-09-25 22:55:48 +02:00
Astro a2caac0fe5 channels: power_down TEC when thermistor is not connected to ADC 2020-09-25 00:01:08 +02:00
Astro 58e648b5e0 pid::Parameters, CenterPoint: demote f32 fields to save config space 2020-09-24 20:47:02 +02:00
Astro c5c0ce5625 channels: rm debug output 2020-09-24 19:49:11 +02:00
Astro a84242fb1f implement setting i_set centerpoint 2020-09-23 22:30:04 +02:00
Astro a4dde1b8ca delint 2020-09-18 00:55:53 +02:00
Astro ba84295ec5 reconnect the pid controller 2020-09-18 00:09:30 +02:00
Astro 1157b73f7f max_i_pos/max_i_neg: remove vref from calculation
full duty pwm is at vref already
2020-09-17 01:03:57 +02:00
Astro f76ee9a607 separate adc and max vref 2020-09-16 23:31:49 +02:00
Astro fc0ca8b581 calculate i_set current 2020-09-16 22:22:48 +02:00
Astro 8c80062da8 use proper units for pwm pins 2020-09-16 22:06:15 +02:00
Astro 7d45d5ad32 adc: complete temperature calculation 2020-09-16 20:50:23 +02:00
Astro dda1f2f0b4 use ThermodynamicTemperature 2020-09-16 18:40:07 +02:00
Astro b1b6d1ea94 fixes 2020-09-14 00:12:28 +02:00
Astro b80fcc430b channel_state: move adc_calibration into ChannelState 2020-09-13 23:15:48 +02:00
Astro bb26490153 unit: replace with uom 2020-09-13 23:13:51 +02:00
Astro c11b71cc0d adc: don't calibrate but convert using ChannelCalibration 2020-09-09 23:10:33 +02:00
Astro 9a912392be channels: fix dac calibration 2020-09-06 19:28:33 +02:00
Astro 3c94342448 replace tec_u_meas_adc with pins_adc 2020-05-28 02:06:32 +02:00
Astro 5418488a2f replace channel[01].adc with pins_adc 2020-05-28 02:01:55 +02:00
Astro 35af543e33 channels: fix/optimize calibrate_dac_value() 2020-05-20 23:09:24 +02:00
Astro cca0a77657 keep shdn high all the time 2020-05-20 23:07:03 +02:00
Astro d326517453 channels: remove unneccessary pub qualifiers 2020-05-20 21:27:22 +02:00
Astro e6e150dac3 add Channels::calibrate_dac_value() 2020-05-19 00:15:39 +02:00
Astro 70127491f6 add vref_pin 2020-05-18 22:46:09 +02:00
Astro 3d6e1f18a6 add tec_u_meas 2020-05-18 21:38:13 +02:00
Astro 0bc0af7487 rename dac_loopback to dac_feedback 2020-05-17 02:18:25 +02:00
Astro 34c2da4484 ad7172: fix calibration 2020-05-17 02:11:53 +02:00
Astro ba860e52ac control i_set dac in volts 2020-05-17 01:27:47 +02:00
Astro fb5c7a84e9 add units::Volts, use for stm32f4 adc 2020-05-17 00:13:52 +02:00
Astro 7f8dd62a36 add itec_pin 2020-05-16 23:59:31 +02:00
Astro a317eb60fd rename ref_adc to dac_loopback 2020-05-16 19:36:00 +02:00