Compare commits

..

2 Commits

Author SHA1 Message Date
d815a9ae55 flake: Add pytec runnables to devShell
Makes it possible to directly run `autotune`, `plot` and `test` in the
devShell.
2024-11-18 18:02:48 +08:00
c9defac87c flake: Introduce pytec to PYTHONPATH in devShell
For easier testing of pytec client code in the shell.
2024-11-18 18:02:29 +08:00
3 changed files with 4 additions and 24 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

@ -74,9 +74,9 @@
for program in ${self}/pythermostat/*.py; do
if [ -x $program ]; then
progname=`basename -s .py $program`
outname=$out/bin/thermostat_$progname
outname=$out/bin/$progname
echo "#!${pkgs.bash}/bin/bash" >> $outname
echo "exec python -m $progname \"\$@\"" >> $outname
echo "exec python3 -m $progname \"\$@\"" >> $outname
chmod 755 $outname
fi
done

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)