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
```
### 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
| 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
```shell
python pytec/plot.py
python pythermostat/plot.py
```
![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
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
```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

View File

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

View File

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