Compare commits

..

2 Commits

Author SHA1 Message Date
ee094241bb PyThermostat: Add entry points for runnables
Forms a more convienient interface.
2024-11-18 17:51:18 +08:00
0ff0dbc3ec PyThermostat: Add main function to plot.py 2024-11-18 17:51:18 +08:00
6 changed files with 8 additions and 27 deletions

View File

@ -239,22 +239,6 @@ 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 ultimately be limited by the `max_i_pos` and `max_i_neg` values.
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 pythermostat/pythermostat/plot.py
python pythermostat/plot.py
```
![default view](./assets/default%20view.png)
@ -49,7 +49,7 @@ A PID auto tuning utility is provided in the PyThermostat library. The auto tuni
To run the auto tuning utility, run
```shell
python pythermostat/pythermostat/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

@ -1,6 +1,5 @@
import math
import logging
import time
from collections import deque, namedtuple
from enum import Enum
@ -237,14 +236,13 @@ def main():
tec = Client()
data = tec.get_report()
data = next(tec.report_mode())
ch = data[channel]
tuner = PIDAutotune(target_temperature, output_step,
lookback, noiseband, ch['interval'])
while True:
data = tec.get_report()
for data in tec.report_mode():
ch = data[channel]
@ -257,8 +255,6 @@ def main():
tec.set_param("output", channel, "i_set", tuner_out)
time.sleep(0.05)
tec.set_param("output", channel, "i_set", 0)

View File

@ -11,11 +11,12 @@ setup(
packages=find_packages(),
entry_points={
"gui_scripts": [
"thermostat_plot = pythermostat.plot:main",
"thermostat_plot = plot:main",
],
"console_scripts": [
"thermostat_autotune = pythermostat.autotune:main",
"thermostat_test = pythermostat.test:main",
"thermostat_autotune = autotune:main",
"thermostat_test = test:main",
]
},
py_modules=["autotune", "plot", "test"],
)