Systemidentifikation

Gast #2315487
Hallo,

ich muss für eine Arbeit eine Systemidentifikation durchführen.
Hierfür habe ich das System mit einem Testsignal beaufschlagt und daraus 
ein Bode-Diagramm erstellt (blau).
Jetzt versuche ich, das Bode-Diagramm durch einfache Übertragungsglieder 
anzunähern um das System zu identifizieren.

Dabei habe ich ein PT2-Glied, ein PT1-Glied und ein Totzeitglied 
verwendet.
Hier die verwendeten Parameter:
1
K=1;                                      %Werte PT2-Glied
2
d=0.3;
3
T=0.42;
4

5
K2=1;                                     %Werte PT1-Glied
6
T2=0.01;
7
g2=tf([0 K2],[T2 1]);
8
 
9
s=tf('s');                                %Totzeitglied
10
Tt=0.1;
11
gt=exp(-s*Tt);

Damit schaffe ich aber nur den Phasengang anzunähern, der Amplitudengang 
passt nicht. Alternativ schaffe ich es andersherum, dass der 
Amplitudengang stimmt, der Phasengang aber nicht mehr.

Hat da jemand eine Idee woran das liegen könnte bzw. was ich verbessern 
könnte.


Außerdem habe ich versucht mit der Methode der kleinsten Fehlerquadrate 
die Koeffizienten der Übertragungsfunktion zu bestimmen.
Ich habe dazu Unterlagen aus einem HOchschulpraktikum verwendet, steige 
aber nicht so ganz durch und deswegen einfach mal abgekupfert.

Hier der Code:
1
Eingangssig = MessGr_Ausgang;
2
Ausgangssig = MessGr;
3

4
m=100;
5
n=m;
6
kmin=100;
7

8

9
PHI = zeros(n,n+m);      %Messwertmatrix
10
for i=1:n
11
    
12
    k=kmin+i;
13
    phi = [flipud(-Ausgangssig(k-n:k-1)); flipud(Eingangssig(k-m:k-1))].';
14
    PHI(i,:) = phi;
15
    
16
end
17

18
PINV_PHI = pinv((PHI));       %Pseudoinverse
19

20
theta = PINV_PHI * Ausgangssig(1:n);      %Vektor mit Parameterwerten
21

22
epsilon = Ausgangssig(1:n) - PHI*theta;    %Schätzfehler
23

24
J = epsilon'*epsilon;         %Gütemaß
25

26
a = theta(1:n);
27
b = theta(n+1:n+m);
28

29
loss = J/(Ausgangssig'*Ausgangssig);
30

31

32
TEST = tf(a', b');
33
bode (TEST)

Vielleicht kann mir da jemand weiterhelfen, wenn ich das Script so 
ausführe fehlt wohl noch etwas, ich weiß aber nicht was.

Die Signale bestehen aus ca. 12000 Werten.

Vielen Dank schonmal
Angehängte Dateien:
#2317435
Für den Abfall bei 0.1 Hz benötigt man evtl Übertragungsglieder mit 
anderer Charakteristik als PT1, PT2, Tt.

Spannend wären möglicherweise erstmal folgende Fragen:
- ist das System überhaupt linear?
- ist das Anregungssignal überhaupt brauchbar
- wie ist die stationäre Verstärkung (bevor man sich an die Dynamik 
wagt)
- ist das System in irgendeiner Weise instabil (z.B. was soll das 
hochfrequente "Rauschen" und wo kommt es her)?


hat das System beispielsweise differenzierenden Charakter, heißt das: 
Die Sprungantwort konvergiert gegen 0 und mit PTn kommt man nicht weit 
;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.