Control Systems Toolbox
Toolbox scolastico per sistemi automatici
by Davide "the Prof." Bertolino · github.com/dadebertolino/controlsystemtoolbox · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/dadebertolino/controlsystemtoolbox/archive/refs/heads/main.zipReadme
⚙️ Control Systems Toolbox
Plugin WordPress per l'insegnamento dei Controlli Automatici e dell'Automazione.
9 simulatori interattivi, zero dipendenze, un unico shortcode per modulo. Installa, attiva, insegna.
Moduli
| # | Modulo | Shortcode | Categoria |
|---|---|---|---|
| 1 | Simulatore PID | [pid_simulator] |
Analisi Temporale |
| 2 | Diagrammi di Bode | [bode_diagram] |
Analisi in Frequenza |
| 3 | Diagramma di Nyquist | [nyquist_diagram] |
Analisi in Frequenza |
| 4 | Luogo delle Radici | [root_locus] |
Stabilità |
| 5 | Mappa Poli-Zeri | [polezero_map] |
Interattivo |
| 6 | Confronto Risposte | [response_compare] |
Analisi Temporale |
| 7 | Spazio di Stato ↔ FdT | [statespace] |
Modellazione |
| 8 | Algebra dei Blocchi | [block_algebra] |
Modellazione |
| 9 | Discretizzazione | [discretize] |
Modellazione |
Ogni modulo è indipendente e attivabile singolarmente dalla pagina di configurazione.
Installazione
- Scarica il file
control-systems-toolbox.zipdall'ultima release - In WordPress: Plugin → Aggiungi nuovo → Carica plugin → seleziona il .zip
- Attiva il plugin
- Vai in Impostazioni → CS Toolbox per abilitare i moduli e creare le pagine
Oppure clona il repo direttamente in wp-content/plugins/:
cd wp-content/plugins/
git clone https://github.com/TUO-USER/control-systems-toolbox.git
Utilizzo
Inserisci lo shortcode in qualsiasi pagina o post WordPress:
[pid_simulator]
Oppure usa il pulsante "Crea tutte le pagine" nella pagina di configurazione per generare automaticamente una pagina per ogni modulo abilitato.
Architettura
control-systems-toolbox/
├── control-systems-toolbox.php # Loader, admin page, shortcode registration
├── css/
│ └── cst-styles.css # Tema dark (~900 righe, variabili CSS)
├── js/
│ ├── cst-math.js # Math engine condiviso (34 KB, 1028 righe)
│ ├── cst-pid-simulator.js
│ ├── cst-bode-diagram.js
│ ├── cst-nyquist-diagram.js
│ ├── cst-root-locus.js
│ ├── cst-polezero-map.js
│ ├── cst-response-compare.js
│ ├── cst-statespace.js
│ ├── cst-block-algebra.js
│ └── cst-discretize.js
└── includes/
├── shared-styles.php # Enqueue CSS
├── shared-math.php # Enqueue math engine
├── pid-simulator.php
├── bode-diagram.php
├── nyquist-diagram.php
├── root-locus.php
├── polezero-map.php
├── response-compare.php
├── statespace.php
├── block-algebra.php
└── discretize.php
Math Engine (cst-math.js)
Il cuore del toolbox. 34 KB di JavaScript puro, nessuna libreria esterna.
Aritmetica polinomiale: moltiplicazione, addizione, divisione, valutazione complessa, conversione in stringa.
Ricerca radici: Durand-Kerner per radici complesse di polinomi arbitrari.
Simulazione temporale: Runge-Kutta 4° ordine, equazioni alle differenze per sistemi discreti.
Analisi in frequenza: risposta in frequenza, margini di guadagno e fase, conteggio avvolgimenti Nyquist.
Spazio di stato: conversione TF ↔ SS (CCF, OCF, Modale), Fadeev-LeVerrier, polinomio caratteristico.
Discretizzazione: ZOH esatto (esponenziale matriciale Padé(6,6) con scale-and-square), Tustin (bilineare), Backward Euler.
Algebra dei blocchi: serie, parallelo, retroazione positiva/negativa.
Pagina di configurazione
In Impostazioni → CS Toolbox trovi:
- Toggle on/off per ogni modulo (i moduli disabilitati non caricano JS)
- Creazione automatica pagine con shortcode pre-inserito
- Gestione pagine: visualizza, modifica, cestina
- Link rapido dalla pagina Plugin di WordPress
Requisiti
| Requisito | Versione minima |
|---|---|
| WordPress | 6.0 |
| PHP | 8.1 |
| MySQL / MariaDB | 5.7 / 10.3 |
| Browser | Chrome, Firefox, Edge, Safari (ultimi 2 anni) |
Nessuna dipendenza server-side aggiuntiva. L'unica risorsa esterna è Chart.js (caricato da CDN).
Per i docenti
Il toolbox è pensato per accompagnare un corso di Controlli Automatici / Automazione a livello ITIS o universitario. Ogni simulatore è progettato per:
- Feedback immediato: lo studente modifica un parametro e vede subito l'effetto
- Rigore matematico: le implementazioni sono validate con 56+ test automatici
- Esportabilità: grafici PNG e dati CSV per le relazioni di laboratorio
Materiali didattici disponibili
- Presentazione PID (teoria e pratica, 17 slide)
- Esercitazione laboratorio Ziegler-Nichols
- Verifica parametrica ZN (30 varianti, una per studente)
- Laboratorio Luogo delle Radici (teoria + simulatore)
Changelog
v2.7 (Febbraio 2026)
- Aggiunto modulo Algebra dei Blocchi (serie, parallelo, retroazione)
- Aggiunto modulo Discretizzazione (ZOH, Tustin, Backward Euler)
- Pagina di configurazione admin con creazione automatica pagine
- Math engine esteso: esponenziale matriciale, operazioni matriciali
v2.5
- Aggiunto Confronto Risposte (fino a 6 configurazioni sovrapposte)
- Aggiunto Convertitore Spazio di Stato (CCF, OCF, Modale)
v2.3
- Aggiunto Luogo delle Radici con slider K interattivo
- Aggiunto Mappa Poli-Zeri con drag & drop
v2.1
- Aggiunto Diagramma di Nyquist con conteggio avvolgimenti
- Bug fix: forma canonica controllabile, cancellazione poli PID
v2.0
- Aggiunto Diagrammi di Bode con margini automatici
- Math engine condiviso estratto in
cst-math.js
v1.0
- Primo rilascio: Simulatore PID con risposta temporale
Licenza
GPL v2 or later.
Autore
Prof. Davide Bertolino Controlli Automatici e Automazione — ITIS www.davidebertolino.it
Read the full README on GitHub →
Releases
| Tag | Published |
|---|---|
| 2.7 | Mar 25, 2026 |
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.