Sign inSign up

tgrover24/looplab

By tgrover24

•Updated about 13 hours ago

PID tuning workbench for controls engineers, in the browser. Served by nginx on port 80.

Image
0

726

tgrover24/looplab repository overview

⁠LoopLab

LoopLab is a PID tuning workbench for controls engineers. It operates fully in the browser. This image serves LoopLab from a small nginx server. The server only sends the page. Each browser runs its own simulation, and the server keeps no data.

⁠What LoopLab does

  • Simulates a control loop at up to 100 times real time: the process, the valve, the sensor and the PID. The same scenario and seed always give the same run.
  • Shows the PID forms, gain units and labels of the vendor that you select: Rockwell PIDE, Siemens PID_Compact or the ISA ideal form.
  • Fits a process model to a bump test or to plant data from a historian (CSV or Excel).
  • Calculates tunings with SIMC, Lambda, IMC, Ziegler-Nichols, Cohen-Coon, AMIGO and Tyreus-Luyben, and step-tests them on a copy of the loop.
  • Shows the gain margin, the phase margin and Ms, Bode and Nyquist plots, a tuning map and a relay test.
  • Simulates cascade, feedforward and ratio control.
  • Gives lessons, a coach and a PID guide for new engineers.

⁠Run the container

docker run -d --name looplab -p 8080:80 --restart unless-stopped tgrover24/looplab:latest

Then open http://<server>:8080.

With Docker Compose:

services:
  looplab:
    image: tgrover24/looplab:latest
    ports:
      - "8080:80"
    restart: unless-stopped

If the repository is private, type docker login before you pull the image.

ItemValue
Container port80 (HTTP)
VolumesNone. The server keeps no data.
Environment variablesNone

⁠Tags

TagImage
latestThe newest release
0.10.0 and laterOne release each

⁠Install LoopLab as an app

Over HTTPS, Edge and Chrome can install LoopLab as an app. Use a reverse proxy with a certificate or a Cloudflare Tunnel for HTTPS. The installed app gets the newest page each time that it opens, and it opens a copy when there is no network. Over plain HTTP, LoopLab operates as a usual page and it needs the network.

⁠Data in the browser

The browser keeps the autosave, the lesson results and the imported lessons for each address. Thus http://tower:8080 and http://192.168.1.10:8080 have different data. Use one address. The data stays when you update the image.

A scenario link holds the scenario after the #. The browser does not send that part to the server.

⁠Unraid

In the Docker tab, set Advanced View, then set these values:

FieldValue
Icon URLhttp://<server IP>:8080/icon-512.png
WebUIhttp://[IP]:[PORT:80]/

To update, click Check for Updates in the Docker tab, then apply the update.

⁠LoopLab without a server

The same application is also one file, LoopLab.html. It opens from disk with no server and no network. Each release on GitHub has this file: github.com/tgrover24/LoopLab/releases⁠.

Tag summary

Content type

Image

Digest

sha256:972aee72c…

Size

25.4 MB

Last updated

about 13 hours ago

docker pull tgrover24/looplab