Commit Graph

355 Commits

Author SHA1 Message Date
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
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 cc0126636c report save success
save does not hang, it just did not report save success. Closes #33

Reviewed-on: M-Labs/thermostat#44
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-07 18:01:43 +08:00
topquark12 45b7c4e669 add documentation about PID setup and using Python tools
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-07 14:48:39 +08:00
topquark12 73dd6d9154 add PID autotune code
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-06 11:02:52 +08:00
topquark12 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
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 9852b32646 command_parser, main: implement ShowCommand::Ipv4
Fixes Gitea issue #30
2020-12-20 20:44:10 +01:00
Astro 22b0c9fcad main: don't re- set_ipv4_config every tick 2020-12-20 20:43:20 +01:00
Astro e13ed37271 pid: fix tests 2020-12-20 20:24:24 +01:00
Astro 5987d9c881 README: rlwrap nc, 60 Hz 2020-12-18 21:27:09 +01:00
Astro 7c55e34145 pytec: remove obsolete conversions 2020-12-18 19:37:25 +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 980d27ebfc pytec: remove client-side interval calculation 2020-12-18 15:44:11 +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 93ea46d512 README: doc postfilter
Fixes Gitea issue #21
2020-12-16 20:47:18 +01:00
Astro dc41473493 update dependencies 2020-12-16 19:21:23 +01:00
Astro 7a28cb1cd4 shell.nix: use rustPlaform from <nix-scripts> by default
Fixes Gitea issue #25
2020-12-13 20:42:29 +01:00
Astro c3dd03dcf3 update cargoSha256 2020-12-13 02:41:58 +01:00
Astro b2f455b2cf config: save/store pid_engaged
Fixes Gitea issue #17
2020-12-13 02:33:59 +01:00
Astro 2e7be3fe01 shell.nix: add df-util 2020-12-13 02:31:19 +01:00
Astro ff91dd7baa Cargo.toml: obtain sfkv and stm32f4xx-hal via git 2020-12-13 02:29:35 +01:00
Astro ecc00a6aeb init_log: delint 2020-12-13 02:24:29 +01:00
Astro 97813f917d flash_store: get to a working state 2020-12-13 01:17:03 +01:00
Astro 880a887c40 new flash-based ipv4 config with additional mask_len, gateway 2020-12-12 23:44:16 +01:00
Astro 383ebcd8e4 rewrite config for sfkv-based flash_store 2020-12-12 01:25:07 +01:00
Sebastien Bourdeauducq 088bd6eb76 README: cleanup build and flashing instructions 2020-12-09 10:16:40 +08:00
Sebastien Bourdeauducq 35d1e2e205 Revert "not yet ready note"
This reverts commit 7af5d8582d.

M-Labs/thermostat#23 (comment)
2020-12-09 10:02:36 +08:00
Astro 1090d0f5b5 Merge pull request 'flashing with dfu-util' (#20) from jbqubit/thermostat:flashdoc into master
Update based on two issues.
M-Labs/thermostat#10
https://github.com/sinara-hw/Thermostat/issues/87/

Reviewed-on: M-Labs/thermostat#20
2020-12-09 08:16:45 +08:00
Astro 23d0c470e5 pytec: rename test.py to example.py 2020-12-09 01:08:34 +01:00
Astro 5c8bb47e11 command_parser: require the explicit `i_set` symbol 2020-12-09 01:07:08 +01:00
Astro b92a5f18cd README: fix units 2020-12-09 00:56:17 +01:00
Astro c125e20bdb shell.nix: init 2020-12-09 00:46:31 +01:00
Joe Britton 7af5d8582d not yet ready note 2020-12-08 12:00:00 -05:00
Joe Britton fca2de665c flashing with dfu-util 2020-12-08 11:07:48 -05:00
Astro ffcc3f661b README: add pid units 2020-12-07 23:18:44 +01:00
Astro 2a6f8ed874 pytec: use py3 dict methods
Fixes Gitea issue #14
2020-12-07 16:57:50 +01:00
Astro 5e8bf0e765 README: add Debugging and Flashing
Fixes Gitea issue #10
2020-12-07 00:22:00 +01:00
Astro 5ddd4d250e channels: swap adc inputs
Fixes Gitea issue #12
2020-12-07 00:22:00 +01:00
Joe Britton af0d78237f Clarify purpose of GND pin adjacent to TECn+/-. 2020-12-06 15:11:42 +08:00
Astro ae77a5c163 update cargoSha256 2020-10-30 15:50:14 +01:00
Astro ffb70bde0a command_parser: fix input_remain match 2020-10-30 15:04:14 +01:00
Astro d517dd75fe update dependencies 2020-10-30 15:03:57 +01:00