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