Zeitdiskrete Modelle
- Lineare diskrete Systeme:
- Idee: System direkt diskret modellieren statt kontinuierliches
System zu sampeln
- lineares Modell mit innerem Zustandsvektor xk,
äußerer Einflussgröße uk und Rauschen
wk (Systemrauschen):
- wk ist Gaußsches Rauschen mit Mittelwert
0 und Kovarianzmatrix Q, geschrieben
- häufiger Spezialfall: kein u ⇔ B = 0
- x nicht direkt beobachtbar, stattdessen Messgrößen
z, die linear von x abhängen und ebenfalls Gaußsches Rauschen
(Messrauschen) aufweisen:
- Dimensionen der Größen (Zeilenzahl x Spaltenzahl)
- x(nx1), A(nxn), Q(nxn)
- z(lx1), H(lxn), R(lxl)
- Modell für Gaußsches Rauschen:
- eigener Subblock
- Parameter über Maske vorgebbar
- zur Berechnung eines Vektors normalverteilter Zufallszahlen
mit Kovarianz P bestimme C mit
- in Matlab mit
- [C, res] = sqrtm(P);
- Simulink-Modell dann
- Parameter von Random Number
- C wird als zusätzlicher Parameter in Mask Editor/Parameters
aufgenommen
- "Show parameter" deaktiviert → C erscheint
nicht in der Maske
- automatische Berechnung von C aus Q in Mask Editor/Initialization
- Beschriftung des Blocks mit Kommando in Mask Editor/Icon
- Modell für lineares diskretes System:
- Subblock
- Parameter
- Aufbau
- Block Unit Delay (1/z)
- gibt Eingangswert beim nächsten Sample-Zeitpunkt
aus
- hat Anfangswerte für Start
- entspricht Integrator bei kontinuierlichen Systemen
- Problem mit Zufallszahlen
- gleiche seed → gleiche Werte → unerwünschte
Korrelationen im Modell
- Lösung
- Block w hat seed1, Block v hat seed2
- Berechnung in Mask Editor/Initialization
- N = size(Q, 1);
M = size(R, 1);
seed1 = (seed:(seed+N-1))';
seed2 = ((seed+N):(seed+N+M-1))';
- Achtung:
- in Modellen mit mehreren Linear Systems seed so wählen,
dass keine Überschneidungen auftreten!
- Beschriftung des Blocks in Mask Editor/Icon
- text(0.15, 0.65, 'x_{k+1} = Ax_k+Bu_k+w_k',
'texmode', 'on', 'horizontalAlignment', 'left')
text(0.15, 0.35, 'z_k = Hx_k+v_k',
'texmode', 'on', 'horizontalAlignment', 'left')
port_label('output', 1, 'x')
port_label('output', 2, 'z')
port_label('input', 1, 'u')
- Beispiel-Lauf:
- Modell model_linear_system.mdl
mit Standard-Parametern
- Ergebnis
- Ground-Block
- schickt 0
- verhindert Warnung über nicht angeschlossenen
Eingang
- System enthält keine kontinuierlichen Zustände,
braucht Solver "discrete"
- Harmonischer Oszillator als lineares diskretes System:
- betrachten nur den Fall u = 0
- Umschreiben der DGL auf 2d-System 1. Ordnung
- Lösung der DGL bei gegebenem Anfangsvektor x0
- mit
- Werte nur in Zeitabständen Δt
- kann direkt als lineares diskretes System geschrieben
werden
- Beispielwerte