Introduzione al RTW - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Introduzione al RTW

Description:

Title: Sviluppo di software per centralina di controllo motore tramite Simulink e Real-Time Workshop Embedded Coder Author: 3px Last modified by – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 21
Provided by: 3px
Category:
Tags: rtw | introduzione | real | time

less

Transcript and Presenter's Notes

Title: Introduzione al RTW


1
Introduzione al RTW
  • Corso Meccatronica anno 2008/09
  • Paolo Tripicchio

2
Real-Time Workshop
3
Esecuzione di Modello
  • Interfaccia run-time modello eseguibile
  • ModelInizialize
  • ModelOutputs
  • ModelUpdate
  • ModelDerivatives
  • ModelTerminate

4
Modello Single-Tasking
  • rtOneStep()
  • Controllo interrupt overflow
  • Attivazione interrupt "rtOneStep"
  • ModelOutputs -- passo temporale maggiore.
  • LogTXY -- Log Tempo, stati e porte di uscita.
  • ModelUpdate -- passo temporale maggiore.
  • Integrate -- Integrazione nei passi temporali
    minori per gli stati continui
  • ModelDerivatives
  • Do 0 o Più
  • ModelOutputs
  • ModelDerivatives
  • EndDo (Il numero di iterazioni dipende dal
    solutore.)
  • Calcolo derivate per aggiornare stati continui.
  • EndIntegrate

5
Modello Single-Tasking
  • main()
  • Initializzazione (inclusa istallazione di
    rtOneStep come
  • interrupt service routine, ISR, per un clock
    real-time).
  • While(tempo lt tempo finale)
  • Esecuzione processi in Background.
  • EndWhile
  • Mask interrupts (Disattiva rtOneStep
    dallesecuzione.)
  • Completa tutti i Processi in Background.
  • Shutdown

6
Modello Multi-Tasking
  • rtOneStep()
  • Controllo interrupt overflow
  • Attivazione interrupt "rtOneStep"
  • ModelOutputs(tid0)
  • LogTXY
  • ModelUpdate(tid0)
  • Integrate
  • ModelDerivatives
  • Do 0 o Piu
  • ModelOutputs(tid0)
  • ModelDerivatives
  • EndDo
  • Calcolo derivate per aggiornare stati continui.
  • EndIntegrate
  • .

. For i1NumTasks If (hit in task
i) ModelOutputs(tidi) ModelUpdate(tidi) End
If EndFor
7
Modelli Multi Rate
  • Continui e discreti, diversi rate
  • Tc multipli del base Ts
  • Assegnamento priorità dei processi
  • freq. maggiore priorità maggiore
  • Assegnamento priorità blocchi asincroni
  • Transizioni nella frequenza di campionamento

8
Problemi di trasferimento dati
  • Integrità dei dati (preemption)
  • Trasferimento dati protetto
  • Trasferimento dati non protetto
  • Determinismo (predicibilità)
  • Disponibilità dati
  • Rates di campionamento dei blocchi
  • Tempo di ritardo blocco in ricezione

9
Blocco Rate Transition
  • 3 differenti modalità
  • Zero Order Hold
  • Unit Delay
  • Inserzione automatica

10
S-Functions
  • Estendono funzionalità di Simulink
  • Interfaccia per il codice hand-written
  • Interfaccia per lhardware
  • Scrittura codice embedded ottimizzato
  • lAPI S-function genera overhead

11
S-Functions
  • Non mi interessa lefficienza
  • Non-Inlined S-function
  • Voglio interfacciare il mio codice
  • Wrapper S-function
  • Voglio implementare un algoritmo altamente
    ottimizzato
  • Fully Inlined S-function

12
Blocchi asincroni
  • Meccanismo function call tramite ISR
  • Sottosistema triggered con enable fnc_call

13
Blocchi asincroni
  • Approccio dual-model vs single-model

14
RTW Embedded Coder
  • Utilizzo di memoria, Velocità esecuzione,
    Leggibilità paragonabile al codice scritto a mano
  • Partizione efficiente codice multi-rate
  • La struttura dati rtModel contiene esclusivamente
    le informazioni richieste dal modello

15
RTW Embedded Coder
  • Generazione programmi stand-alone senza necessità
    di utilizzare RTOS
  • Funzioni modello Embedded
  • model_initialize
  • model_step(tid)
  • model_output(tid)
  • model_update(tid)
  • model_terminate (opzionale)

16
Codice Stand-Alone
  • main()
  • Inizializzazione (include linstallazione di
    rt_OneStep come
  • interrupt service routine per un clock real-time)
  • Inizializza e avvia timer hardware
  • Attiva interrupts
  • While(not Error) and (time lt final time)
  • Background task
  • EndWhile
  • Disattiva interrupts (Disattiva rt_OneStep)
  • Completa tutti i background tasks
  • Shutdown

17
Codice Stand-Alone
  • Single-Tasking
  • rt_OneStep()
  • Controlla overflow dellInterrupt o altri errori
  • Attiva "rt_OneStep" (timer) interrupt
  • Model_Step() -- Passo temporale con
    output,logging,update

18
Codice Stand-Alone
  • Multi-tasking multi-rate
  • rt_OneStep()
  • Controlla base-rate interrupt overrun
  • Attiva "rt_OneStep" interrupt
  • Determina quali rates devono eseguire in questo
    passo
  • Model_Step0() -- esegui codice con il passo
    base-rate
  • For N1NumTasks-1 -- itera i sub-rate tasks
  • If (sub-rate task N e schedulato)
  • Controlla sub-rate interrupt overrun
  • Model_StepN() -- esegui codice passo sub-rate
  • EndIf
  • EndFor

19
Ottimizzazioni Fixed-Point
  • Molte famiglie di Micro hanno solo ALU
  • Ridurre consumo RAM , ROM, tempo esecuzione
  • Rappresentazione Slope , Slope Bias
  • V SQ B

20
Ottimizzazioni Fixed-Point
  • Scelta del punto binario (range vs risoluzione)
  • Metodo di arrotondamento
  • Floor , Ceiling , Zero , Nearest
  • Gestione overflow
  • Wrap , Saturate
Write a Comment
User Comments (0)
About PowerShow.com