Compare commits

...

2 Commits

Author SHA1 Message Date
3797dce518 README: Add PID Output Clamping section
Explains the need of having separate "max_i_pos/output_max" and
"max_i_neg/output_min" values; They serve different purposes.
2024-11-18 17:19:45 +08:00
6b8a5f5bb8 Rename the Pytec library to PyThermostat
Pytec is a misnomer, as the Thermostat is not limited to just
controlling TEC modules. The library also interfaces with and controls
the Thermostat itself, and not the TEC module directly.

See M-Labs/thermostat#149 (comment)
2024-11-18 16:22:57 +08:00
10 changed files with 24 additions and 8 deletions

View File

@ -239,6 +239,22 @@ of channel 0 to the PID algorithm:
output 0 pid output 0 pid
``` ```
### PID output clamping
It is possible to clamp the PID algorithm output independently of channel output limits. This is desirable when e.g. there is a need to keep the current value above a certain threshold in closed-loop mode.
Note that the actual output will still be ultimately limited by the `max_i_pos` and `max_i_neg` values, and will not exceed them.
Set PID maximum output of channel 0 to 1.5 A.
```
pid 0 output_max 1.5
```
Set PID minimum output of channel 0 to 0.1 A.
```
pid 0 output_min 0.1
```
## LED indicators ## LED indicators
| Name | Color | Meaning | | Name | Color | Meaning |

View File

@ -13,7 +13,7 @@ When tuning Thermostat PID parameters, it is helpful to view the temperature, PI
To use the Python real-time plotting utility, run To use the Python real-time plotting utility, run
```shell ```shell
python pytec/plot.py python pythermostat/plot.py
``` ```
![default view](./assets/default%20view.png) ![default view](./assets/default%20view.png)
@ -44,12 +44,12 @@ Below are some general guidelines for manually tuning PID loops. Note that every
## Auto Tuning ## Auto Tuning
A PID auto tuning utility is provided in the Pytec library. The auto tuning utility drives the the load to a controlled oscillation, observes the ultimate gain and oscillation period and calculates a set of PID parameters. A PID auto tuning utility is provided in the PyThermostat library. The auto tuning utility drives the the load to a controlled oscillation, observes the ultimate gain and oscillation period and calculates a set of PID parameters.
To run the auto tuning utility, run To run the auto tuning utility, run
```shell ```shell
python pytec/autotune.py python pythermostat/autotune.py
``` ```
After some time, the auto tuning utility will output the auto tuning results, below is a sample output After some time, the auto tuning utility will output the auto tuning results, below is a sample output

View File

@ -58,10 +58,10 @@
auditable = false; auditable = false;
}; };
pytec = pkgs.python3Packages.buildPythonPackage { pythermostat = pkgs.python3Packages.buildPythonPackage {
pname = "pytec"; pname = "pythermostat";
version = "0.0.0"; version = "0.0.0";
src = "${self}/pytec"; src = "${self}/pythermostat";
propagatedBuildInputs = propagatedBuildInputs =
with pkgs.python3Packages; [ with pkgs.python3Packages; [
@ -72,7 +72,7 @@
in in
{ {
packages.x86_64-linux = { packages.x86_64-linux = {
inherit thermostat pytec; inherit thermostat pythermostat;
default = thermostat; default = thermostat;
}; };

View File

@ -1,7 +1,7 @@
from setuptools import setup, find_packages from setuptools import setup, find_packages
setup( setup(
name="pytec", name="pythermostat",
version="0.0", version="0.0",
author="M-Labs", author="M-Labs",
url="https://git.m-labs.hk/M-Labs/thermostat", url="https://git.m-labs.hk/M-Labs/thermostat",