Compare commits

...

3 Commits

Author SHA1 Message Date
b234e9fe14 README: Add PID Output Clamping section 2024-11-18 15:38:39 +08:00
8dd58b364d README: Fix limits section 2024-11-18 14:01:51 +08:00
ae0d593139 pytec: Stop using client report mode in plot.py
Report mode has been removed from the client, stop using it.
2024-11-18 13:57:54 +08:00
2 changed files with 24 additions and 8 deletions

View File

@ -189,31 +189,30 @@ Testing heat flow direction with a low set current is recommended before install
### Limits
Each MAX1968 TEC driver has analog/PWM inputs for setting
Each channel has maximum value settings, for setting
output limits.
Use the `output` command to see current settings and maximum values.
Use the `output` command to see them.
| Limit | Unit | Description |
| --- | :---: | --- |
| `max_v` | Volts | Maximum voltage |
| `max_i_pos` | Amperes | Maximum positive current |
| `max_i_neg` | Amperes | Maximum negative current |
| `i_set` | Amperes | (Not a limit; Open-loop mode) |
Example: set the maximum voltage of channel 0 to 1.5 V.
```
output 0 max_v 1.5
```
Example: set the maximum negative current of channel 0 to -3 A.
Example: set the maximum negative current of channel 0 to -2 A.
```
output 0 max_i_neg 3
output 0 max_i_neg 2
```
Example: set the maximum positive current of channel 1 to 3 A.
Example: set the maximum positive current of channel 1 to 2 A.
```
output 0 max_i_pos 3
output 1 max_i_pos 2
```
### Open-loop mode
@ -240,6 +239,20 @@ 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.
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

@ -1,3 +1,4 @@
import time
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
@ -47,7 +48,8 @@ quit = False
def recv_data(tec):
global last_packet_time
for data in tec.report_mode():
while True:
data = tec.get_report()
ch0 = data[0]
series_lock.acquire()
try:
@ -61,6 +63,7 @@ def recv_data(tec):
if quit:
break
time.sleep(0.05)
thread = Thread(target=recv_data, args=(tec,))
thread.start()