Commit Graph

245 Commits

Author SHA1 Message Date
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
9852b32646 command_parser, main: implement ShowCommand::Ipv4
Fixes Gitea issue #30
2020-12-20 20:44:10 +01:00
22b0c9fcad main: don't re- set_ipv4_config every tick 2020-12-20 20:43:20 +01: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
b2f455b2cf config: save/store pid_engaged
Fixes Gitea issue #17
2020-12-13 02:33:59 +01:00
ecc00a6aeb init_log: delint 2020-12-13 02:24:29 +01:00
97813f917d flash_store: get to a working state 2020-12-13 01:17:03 +01:00
880a887c40 new flash-based ipv4 config with additional mask_len, gateway 2020-12-12 23:44:16 +01:00
383ebcd8e4 rewrite config for sfkv-based flash_store 2020-12-12 01:25:07 +01:00
5c8bb47e11 command_parser: require the explicit i_set symbol 2020-12-09 01:07:08 +01:00
5ddd4d250e channels: swap adc inputs
Fixes Gitea issue #12
2020-12-07 00:22:00 +01:00
ffb70bde0a command_parser: fix input_remain match 2020-10-30 15:04:14 +01:00
d517dd75fe update dependencies 2020-10-30 15:03:57 +01:00
a943308203 pid: never reset 2020-10-13 23:55:22 +02:00
c005784df5 steinhart_hart: rm outdated doc 2020-10-11 23:20:56 +02:00
d574ccb5f4 pid: change signedness from heating to cooling 2020-10-11 23:12:18 +02:00
6ba1459a3c main: send error on invalid command 2020-10-11 23:11:27 +02:00
a332b5fcdc main: fix saving new_ipv4_address 2020-10-11 01:59:39 +02:00
83a266852a pid: move ki coefficient inside integration 2020-10-11 01:59:39 +02:00
175b88d0e6 s/tecpak/thermostat/g 2020-10-11 01:59:39 +02:00
6fd5328042 channels: rm debug output 2020-10-01 02:09:43 +02:00
59103cb2a1 add support for ipv4 address reconfiguration 2020-10-01 01:34:46 +02:00
12e713dc19 init_log: bump max level to Debug for USB 2020-10-01 00:34:28 +02:00
438da74721 main: remove all plain-text responses 2020-09-30 23:53:13 +02:00
026dd1ed9c main: close tx half of sockets with closed rx half
fixes Gitea issue #9
2020-09-30 23:39:31 +02:00
d4e7036fab session: rename SessionOutput to SessionInput 2020-09-30 23:35:11 +02:00
6e0cf26d6a export postfilter + s-h as json 2020-09-30 22:53:21 +02:00
d4901cbab1 channels: add dac_value to Report 2020-09-30 22:53:03 +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
11f2ebe961 channels: DRY get_center(), update vref if used 2020-09-30 19:14:15 +02:00
4b75c6147d pytec plot: update legend, rm debug add pid_output 2020-09-30 19:13:50 +02:00
445cde6ae8 channels: add test report_to_json 2020-09-30 18:01:18 +02:00
6951489545 channels: add pid_output to Report 2020-09-30 18:00:16 +02:00
407c0998af ad7172: set output data rate to 10 Hz 2020-09-28 01:24:32 +02:00
9e5a58cafd main: switch reports to json serialization 2020-09-27 23:58:03 +02:00
aea306cf17 config: save postfilter setting 2020-09-26 01:40:01 +02:00
97a09e422b main: add support for disabling postfilters 2020-09-26 01:29:35 +02:00
61d2cd6ecf channels: init i_set at centerpoint 2020-09-25 22:56:23 +02:00
f3ec96f425 channels: fix doc 2020-09-25 22:55:48 +02:00
9f70ef2e0a main: power_down channels before sys_reset 2020-09-25 22:24:43 +02:00
83589610b5 implement reset command 2020-09-25 00:14:29 +02:00
a2caac0fe5 channels: power_down TEC when thermistor is not connected to ADC 2020-09-25 00:01:08 +02:00
20059aff5c channel_state: recognize unplugged thermistor 2020-09-24 23:34:09 +02:00
f690599f9e config: update tests 2020-09-24 23:21:54 +02:00
b3e9a1b636 init_log: set USB_LOGGER max level 2020-09-24 23:11:23 +02:00
bfbf037006 config: add load/save code 2020-09-24 23:10:47 +02:00
a1ad9b2456 main: load config from eeprom on boot 2020-09-24 23:08:42 +02:00
8d70c03520 config: finalize load/save 2020-09-24 23:04:29 +02:00
3b050347d4 config: add test_encode_decode 2020-09-24 21:35:15 +02:00
254c1c3d73 remove now unneeded uom feature use_serde 2020-09-24 21:33:42 +02:00
5a293a0ada config: convert steinhart_hart::Parameters to SteinhartHartConfig for f32 storage 2020-09-24 21:32:56 +02:00
daa398cb5e config: add pwm limits 2020-09-24 21:10:27 +02:00
17e89b2041 config: add test_fit_eeprom 2020-09-24 20:59:04 +02:00
58e648b5e0 pid::Parameters, CenterPoint: demote f32 fields to save config space 2020-09-24 20:47:02 +02:00
c5c0ce5625 channels: rm debug output 2020-09-24 19:49:11 +02:00
d3606d25b6 fix imports 2020-09-24 15:49:13 +08:00
d40a038c2f config: switch to postcard encoding 2020-09-24 02:06:53 +02:00
5d0d75d395 config: encode with serde_cbor 2020-09-24 01:18:33 +02:00
93f14523d7 command_parser: parse load/save 2020-09-24 01:17:50 +02:00
201701ee8b implement mac address generation with reading eui48 from i2c eeprom 2020-09-24 00:19:07 +02:00
a84242fb1f implement setting i_set centerpoint 2020-09-23 22:30:04 +02:00
b394cfa3d4 main: remove special handling for PwmPin::ISet 2020-09-23 20:50:50 +02:00
b9902929a9 test: #[allow(unused)] 2020-09-18 01:22:41 +02:00
edc675f5af command_parser: rename a test 2020-09-18 01:16:19 +02:00
a4dde1b8ca delint 2020-09-18 00:55:53 +02:00
7361619a53 pid: update default parameters 2020-09-18 00:41:32 +02:00
34543c8660 pid: only reset after target change 2020-09-18 00:24:00 +02:00
83a209397e fix tests 2020-09-18 00:23:30 +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
94e0525002 tec_u_meas: subtract vref offset 2020-09-17 01:20:47 +02:00
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
dd06ae1075 main: improve output 2020-09-16 23:32:48 +02:00
f76ee9a607 separate adc and max vref 2020-09-16 23:31:49 +02:00
fc0ca8b581 calculate i_set current 2020-09-16 22:22:48 +02:00
8c80062da8 use proper units for pwm pins 2020-09-16 22:06:15 +02:00
7d45d5ad32 adc: complete temperature calculation 2020-09-16 20:50:23 +02:00
dda1f2f0b4 use ThermodynamicTemperature 2020-09-16 18:40:07 +02:00
b1b6d1ea94 fixes 2020-09-14 00:12:28 +02:00
b80fcc430b channel_state: move adc_calibration into ChannelState 2020-09-13 23:15:48 +02:00
bb26490153 unit: replace with uom 2020-09-13 23:13:51 +02:00
4a1ce342a0 pins: enable pwm pins 2020-09-12 00:35:58 +02:00
10208e1ac0 main: bump WATCHDOG_INTERVAL to 1s
required for running Channels.calibrate_dac_value()
2020-09-10 23:28:00 +02:00
42587810cd usb: add serial logger 2020-09-10 23:17:31 +02:00
c11b71cc0d adc: don't calibrate but convert using ChannelCalibration 2020-09-09 23:10:33 +02:00
4e6aa5fe0c leds: init 2020-09-06 21:10:10 +02:00
9a912392be channels: fix dac calibration 2020-09-06 19:28:33 +02:00
50dcee0c8a pins: reuse definitions 2020-09-06 19:28:33 +02:00
f76ae453a9 ad5680: cap value to MAX_VALUE 2020-09-06 19:28:33 +02:00
a3df2bc685 update to newer stm32-eth 2020-09-03 21:38:56 +02:00
1711feae84 timer: define sleep() as pub 2020-05-31 19:54:18 +02:00
f9b55508dd ad5680: keep sync high for 1ms 2020-05-28 20:45:42 +02:00
cf03613ac5 main: fix peripheral params 2020-05-28 20:43:52 +02:00
3c94342448 replace tec_u_meas_adc with pins_adc 2020-05-28 02:06:32 +02:00