TeleLaboratorio: Virtual Lab Dipartimento Sistemi Elettrici & Automazione Università di Pisa
Motivazioni per il TeleLaboratorio (I) Il TeleLaboratorio rappresenta un ambiente reale al quale si può accedere in modo virtuale tramite connessione Internet. Vantaggi: Non ci sono problemi logistici quali quelli di far entrare un alto numero di studenti all’interno di un laboratorio di dimensioni limitate Possibilità di condividere un’unica risorsa disponibile tra un elevato numero di studenti Possibilità di coinvolgere un pubblico che vada al di là di una semplice classe universitaria Possibilità di uno studente di migliorare le proprie conoscenze in un determinato settore senza la necessità di avere un docente accanto
Motivazioni per il TeleLaboratorio (II) Il TeleLaboratorio è stato sviluppato nel contesto del progetto “TIGER”, Telepresence Instant Groupware for higher Education in Robotics, un progetto a livello nazionale inteso a favorire la diffusione di un TeleLaboratorio distribuito per lo studio di materie inerenti il campo della robotica. Pertanto alcune caratteristiche del TeleLaboratorio rispondono a delle specifiche di progetto esterne: Sistema di autenticazione per l’accesso al TeleLaboratorio Necessità di prenotare un esperimento prima di poterlo usare Presenza di materiale didattico a supporto di un esperimento in modo che tutta la documentazione per poter effettuare una determinata esperienza sia disponibile on-line
Accesso al TeleLaboratorio Il TeleLaboratorio è accessibile dal sito del dipartimento DSEA, cliccando sul logo del dipartimento e scegliendo Link Utili -> Telelab L’accesso è riservato solo tramite login e password. Nuovi utenti devono prima registrarsi e poi attendere che i login e password scelte vengano abilitate dal docente.
Esperimenti disponibili nel TeleLaboratorio(II) L’accesso agli esperimenti avviene tramite prenotazione del particolare esperimento al quale si è interessati. E’ possibile visualizzare l’elenco delle ore disponibili, l’elenco delle proprie prenotazione, o effettuare una nuova prenotazione o cancellarne una.
Virtual Lab: un ambiente interattivo per il controllo di sistemi dinamici E’ necessario prenotare il Virtual Lab, e all’interno dell’orario di prenotazione, è sufficiente cliccare sul nome dell’esperimento per lanciare il programma
Virtual Lab (II) Ingressi disponibili Controllori disponibili Impianti disponibili
Virtual Lab (III) Uscita del sistema in blu mentre in rosso si vede il riferimento. E’ possibile fare una pausa, salvare i dati, scalare il grafico… e cambiare in tempo reale i parametri del controllore!!
Progetto VirtualLab realizzazione di un'interfaccia web per il controllo on-line di un impianto simulato impianto e controllore vengono realizzati con Scicos e compilati come processi real-time Un server su piattaforma RTAI gestisce l'avvio delle simulazioni ed il cambiamento dei parametri sul controllore dell'impianto Un'interfaccia java applet permette all'utente finale di controllare l'andamento del sistema complessivo e modificarne i parametri in linea
Architettura Componenti del VirtualLab Linux RTAI VirtualLab Server Telelaboratorio LAN Internet Applet Java VirtualLabGUI Utente Finale
I sistemi operativi Real-Time Definizione di Sistema Operativo Real-Time: E' un sistema operativo in cui per valutare la correttezza delle operazioni si considera anche la variabile tempo
RTOS: definizioni Due tipologie di correttezza devono essere garantite: Correttezza logica: i risultati/risposte forniti devono essere quelli previsti (normalmente richiesta a qualunque sistema di elaborazione) Correttezza temporale: i risultati devono essere prodotti entro certi limiti temporali fissati (deadlines) (specifica dei sistemi real time)
RTOS: definizioni Tipologie di Sistemi realtime: Sistemi Hard realtime: Il non rispetto delle deadlines temporali NON e’ ammesso porterebbe al danneggiamento del sistema (applicazioni safety critical) Sistemi Soft realtime: il non rispetto occasionale delle deadlines e’ ammissibile le specifiche temporali indicano solo in modo sommario i tempi da rispettare degrado delle performance accettabile
Cenni sull'architettura I sistemi operativi real time fornisco alle applicazioni un'astrazione dell'hardware (Hardware Abstraction Layer, HAL). L'Hardware Abstraction Layer mette a disposizione delle applicazioni una serie di servizi (primitive realtime).
Applicazioni dei RTOS 2 tipologie principali Simulazione un processo hard realtime può simulare un processo del quale vogliamo realizzare il controllo (ad esempio una s- function) Controllo un processo hard realtime può contenere le funzioni che andremo poi a trasferire su un controllore commerciale (PLC, reti di sensori)
RTOS: soluzioni Alcuni dei sistemi operativi realtime “general purpose”: Soluzioni proprietarie: VxWorks QNX Soluzioni opensource: RTLinuxFree (solo per kernel 2.4) RTAI RTLinux e RTAI sono soluzioni basate sul kernel di Linux e possono sfruttarne tutte le applicazioni e l'ambiente.
Introduzione a RTAI Progetto originale del Politecnico di Milano L'ambiente realtime è realizzato tramite moduli del kernel: ogni modulo gestisce un particolare servizio; disponibilità di diversi scheduler; possibilità di attivare e disattivare il supporto alle applicazioni realtime; modifica trasparente alle applicazioni non realtime.
Caratteristiche di RTAI (I) Infrastruttura hard realtime sia in kernel space che in user space: programmazione in user space più semplice e sicura; Funzionalità real time avanzate: supporto al C++ (anche in kernel space per kernel 2.4); supporto al calcolo in virgola mobile in kernel space possibilità di backtrace delle applicazioni realtime; disponibilità di una interfaccia grafica;
Caratteristiche di RTAI (II) Opensource Basato sul nanokernel ADEOS (Adaptive DomainEnvironment for Operating Systems) Disponibile per diverse architetture hardware i386, PPC, ARM, MIPS Tempi di latenza nell'ordine di alcuni microsecondi latenza tipica su architettura i386: 2~6 μs adatto quindi anche per sistemi di controllo con frequenza di campionamento nell'ordine del KHz
Caratteristiche di RTAI (III) Si possono sfruttare tutti gli editor e gli ambienti di sviluppo normalmente disponibili per Linux come compilatore viene utilizzato solitamente il gcc (GNU Compiler Collection) Disponibilità di ambienti di sviluppo dedicati per CACSD (Computer Aided Control Systems Design) ambiente MatLab/Simulink/RealTime Workshop (piattaforma proprietaria) ambiente Scilab/Scicos (piattaforma opensource)
VirtualLabServer è un programma RTAI multithreaded che compie le seguenti azioni pubblica una lista di esperimenti disponibili alle interfacce web attende la comunicazione dell'avvenuta selezione di una tripletta ingresso-controllore-impianto crea un thread con priorità hard realtime che invia il segnale colloquia con l'applet java tramite il protocollo XML-RPC elevata affidabilità elevata compatibilità con diversi linguaggi di programmazione
Sistemi di controllo digitale Presenza di un calcolatore nel loop di controllo Elaborazione tempo-discreta della legge di controllo Occorrono dispositivi di interfaccia tra il dominio tempo-continuo dell’impianto e quello tempo-discreto del calcolatore
Introduzione a Scilab progetto francese open-source alternativo a Matlab come Matlab, permette calcolo matriciale realizzazione di grafici (luogo delle radici) espandibilità con un linguaggio di programmazione di alto livello interno espandibilità tramite l'implementazione di toolbox (Scicos) più di Matlab permette (gratuitamente) alcune funzioni di calcolo simbolico
CACSD con Scilab/Scicos (I) Si progetta il sistema di controllo in maniera grafica sulla base dei blocchi funzionali
CACSD con Scilab/Scicos (II) Progetto del sistema di controllo
VirtualLabGUI Implementa il paradigma Subject-Observer ogni modulo dell'interfaccia può registrarsi in una lista di osservatori del segnale ogni qual volta un campione viene prelevato tutti gli appartenenti alla lista ricevono una notifica e possono compiere delle operazioni sul segnale Prevede componenti riutilizzabili da inserire in interfacce ad-hoc prevede la creazione di pannelli contenenti più grafici ed operazioni da eseguire sul segnale (toolbox)
VirtualLab / Matlab (I) consideriamo il seguente modello
VirtualLab / Matlab (II) Confronto tra i grafici ottenuti su VirtualLab / Matlab
Espandibilità E' possibile implementare 3 tipi di entità Esperienze (livello Java) controllo a ciclo aperto controllo a ciclo chiuso controllo ottimo identificazione Modelli (SISO-MIMO livello Scicos) controllori impianti Toolbox ovvero wizard per l'immissione di parametri su modelli equivalenti
Conclusioni VirtualLab permette: l'interazione in linea con un processo senza la necessità di strumenti proprietari e/o piattaforme di difficile installazione l'espandibilità tramite un linguaggio di programmazione di alto livello (Java) ed uno strumento open-source (Scicos) lo studio di simulazioni complesse anche su hardware non particolarmente efficienti, in quanto l'elaborazione è effettuata completamente lato server
Materiali utili alternativamente National Instruments (LabVIEW) Dispense di introduzione a Scilab Disponibili per diffusione diretta Programma di statistica R (free)