machines/projects/pid-controller/README.md
2024-08-18 07:19:14 +02:00

85 lines
2.5 KiB
Markdown

# Multichannel PID controller
Purpose of this PID controller is to lower overall amperage by cycling periodically through SSRs.
This is based on [osPID](http://ospid.com/blog/download/)
### Hardware
- [Controllino - Mega (Arduino compatible)](https://www.controllino.biz/product/controllino-mega/). [See PIN layout](./vendor/controllino/CONTROLLINO-MEGA-Pinout-1.jpg)
![](./vendor/controllino/mega.jpg)
- Optional: OLED & keypad control
- 8 channels
- Optional: Modbus
- TC sensor module, MAX6675 | MAX31855
## Features
### PID
- Autotune per PID
- Support for multiple TCs (see Marlin firmware)
### Configuration
- Set max Amp
- Set max/min heat time per cell/partition
## Milestones / Todos
- [x] Check/Simulate performance bottle necks for Mega
- [x] Temperature logger, serial & MaxC based
- [ ] Integrate PID/Auto-tune
- [ ] EEprom storage ?
- [x] Debug interface via RS485
- [x] Data - reader via RS232 (Matlab)
- [ ] Configuration (remote / local) -> Control-Freak - HMI
- [-] Model testing/verification
## Edge cases / Errors
- [ ] PID-Partition Timeout : PID didn't reach target with limits
- [ ] PID/Partition Overshooting : PID or operator malfunction
- [ ] PID Auto-tuning timeout : autotuning too long
- [ ] PID/Partition interference : partition overlap noise ?
## Modes
- [ ] Groups (partition groups)
- [ ] Serial (single linked partition group)
- [ ] Remote (HMI & control)
- [x] Master controller, only. Eg: control other PIDs via Modbus
## PP/PH
### New parameters
- [ ] Ramp-time
- [ ] Amp Budget
- [ ] Sub SP hold time
### New behaviours
- [ ] Currently there are multiple issues surfacing regarding the sheetpress. A profile should allow to have multiple target temperature points (eg: 1 hour to hold softening point, 30 mins for holding melting point rage, 10 mins for slightly over melting point : pressing phase) with a holding & ramp time each.
- [ ] The user should be able to adjust these profiles per flake size. For that we should also study the effects of various flake sizes regarding stresses created in the sheets.
### Modbus Implementation
- [-] Should implement broadcast queries : Status (Run/Alarm,...) , SP(s) & PV
### References
- [PID research](https://gitlab.com/plastichub/osr/research#pid-control)
### Hydra tests/experiments
- [x] calc. heat transfer, x & square (with screw | without screw | loaded)
- [x] Inkbird vs Rex
- [x] PID param transfer from E5 to Inkbird, Rexc : NO
- [x] test TC mount variants
- [x] different man. PID params (soak, hysteresis, ..)