54 lines
2.7 KiB
Markdown
54 lines
2.7 KiB
Markdown
---
|
|
title: "rtint-gui: Desktop GUI for Real-Time Control"
|
|
summary: "A desktop application to acquire signals, identify plant dynamics and design feedback control on a real-time target."
|
|
tags: ["Software", "Control"]
|
|
status: "Active"
|
|
date: 2026-09-01
|
|
repo: "https://gitlab.esrf.fr/dehaeze/real-time-interface-gui"
|
|
docs: "https://dehaeze.gitlab-pages.esrf.fr/real-time-interface-gui/"
|
|
pypi: "https://pypi.org/project/rtint-gui/"
|
|
---
|
|
<!-- TODO: confirm public URL -->
|
|
<!-- TODO: add GUI screenshots (e.g. Signal Analysis, Dynamical Identification, Feedback Control Design) -->
|
|
|
|
## Overview
|
|
|
|
`rtint-gui` is a desktop application for working with a real-time target that runs a Resyst server.
|
|
It is built on top of [rtint]({{< relref "real-time-interface" >}}), which handles the communication with the target, and follows the usual steps of a control task:
|
|
|
|
1. **Connect** to a running server.
|
|
2. **Acquire** signals from the target.
|
|
3. **Analyse** the records as time traces and spectra (PSD / ASD).
|
|
4. **Identify** the plant dynamics by measuring frequency responses.
|
|
5. **Design** feedback control from the identified dynamics.
|
|
|
|
Each step is a page of the application.
|
|
|
|
## Pages
|
|
|
|
- **Signal Analysis**: choose counters and model signals, set a duration, watch the acquisition live, then compute power spectra with configurable window, overlap and averaging.
|
|
- **Dynamical Identification**: excite the plant with a generator and estimate its frequency response (Bode plot, coherence, and an RGA plot for multi-input multi-output systems). Open-loop and closed-loop identification are supported.
|
|
- **Transfer Function Analysis**: overlay measured responses with the Bode plots of the filters running on the target, and with their products.
|
|
- **Feedback Control Design**: from an identified plant and the filters used as controller, compute characteristic loci, sensitivity and complementary sensitivity, the modulus margin and a Nyquist stability verdict.
|
|
- **Filters, motors, EtherCAT, parameters and more**: inspect and edit what the real-time model exposes.
|
|
|
|
Results are saved as MATLAB `.mat` files, so they can be reopened in MATLAB or Python.
|
|
The analysis pages also work offline on previously saved data, without a target.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
pipx install rtint-gui # or: uv tool install rtint-gui
|
|
rtint-gui
|
|
```
|
|
|
|
Python 3.12 or 3.13 is required.
|
|
The interface uses PySide6 and pyqtgraph.
|
|
Running `rtint-gui --offline` starts it without a real-time target.
|
|
|
|
The [documentation](https://dehaeze.gitlab-pages.esrf.fr/real-time-interface-gui/) has a guide for each page and a description of the `.mat` file format.
|
|
|
|
## Related
|
|
|
|
- [rtint]({{< relref "real-time-interface" >}}): the Python package this application is built on.
|