WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Kalman-Beobachter durch Polplatzierung

 

muel
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 28.05.13
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 03.09.2014, 22:46     Titel: Kalman-Beobachter durch Polplatzierung
  Antworten mit Zitat      
Hallo zusammen,
Ich bitte um hilfe...

Ich will einen Kalman-Beobachter für ein System generieren, weiß aber nicht ob ich die Funktion 'kalman' richtig verstanden habe.

Liefert mir die Funktion kalman direkt die Werte mit welchen ich durch Polplatzierung den Beobachter entwerfen darf?

Bzw ist bei
[kest,L,P] = kalman(SYS,Q,R,N);
der Vektor L gleich meinen berechneten polen für den Beobachter?

Ich bin für jeden hinweis dankbar!

Hier noch mein System mit Regler, Vorfilter und meinem Versuch den Beobachter über kalman zu erstellen:

Code:


A = [-8 +3.75 +20 -2; -4 +2 -4 -4; 3 -3 2.7 -1.2; -2 2.5 8 -3];
cT = [-1 1 3.1 -1.3];
b = [3; -1; 0.8; 1.2];
d = 0;

SYS = ss(A,b,cT,d);

%Regler mit Polvorgabe
p1 = [-3; -4; -5+2j; -5-2j];

rT1 = acker(A,b,p1);
Ar1 = A - b * rT1; % Zusammenbau des Systems
Kf1 = inv(cT*inv(-A+b*rT1)*b); % Berechnung des Vorfilters
SYSrKf1 = ss(Ar1,b*Kf1,cT,d); % Simulation des Gesammtsystems

%% Kalman-Beobachter
Q=1;
R=1;
N=0;

[kest,L,P] = kalman(SYSrKf1,Q,R,N);
B = (place(A',cT',L))';

% Zusammenbau des Systems
Ab = A;
bb = b;
cTb = cT;

Arb = [A -b*rT1; B*cT Ab-B*cTb-bb*rT1];

brb = [b; bb];
cTrb = [cT 0 0 0 0];
drb = d;

% Simulation des Gesamt-Systems
% (Strecke+Regler+Vorfilter+Beobachter)
SYSrb2 = ss(Arb,brb*Kf1,cTrb,drb);
 
Private Nachricht senden Benutzer-Profile anzeigen


muel
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 28.05.13
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 03.09.2014, 23:43     Titel: ... einen Schritt weiter ...
  Antworten mit Zitat      
Ich glaub ich bin der Lösung einen Schritt näher gekommen...

und zwar nehm ich nicht L sondern die Eigenwerte von kest für die Polvorgabe des Beobachters.

damit sieht der abschnitt nun so aus:
Code:

[kest,L,P] = kalman(SYSrKf1,Q,R,N);
pk = eig(kest);
B2 = (place(A',cT',pk))';
 


Der Beobachter erzielt damit ziemlich gute ergebnisse.
Was denkt ihr dazu? Wäre sehr froh wenn mir es jemand bestätigen könnte Smile
lg muel
_________________

sehen um vorauszusehen
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2014, 20:21     Titel:
  Antworten mit Zitat      
Hallo muel,

Zitat:
Liefert mir die Funktion kalman direkt die Werte mit welchen ich durch Polplatzierung den Beobachter entwerfen darf?


Die Funktion Kalman liefert dir mit dem Rückgabeparameter L die Kalman-Verstärkung, nicht die Pole des Systems.

Das kannst du auch gut nachvollziehen wenn du in deinem System wenn du folgendes am Ende ergänzt (du musst natürlich die gleiche Systemmatrix zur Berechnung nehmen):

Code:
B2 = (place(Ar1',cT',pk))';


...und dir anschließend die beiden Matrizen/Vektoren B2 und L ansiehst...

Vg Vega
Private Nachricht senden Benutzer-Profile anzeigen
 
muel
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 28.05.13
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 12.09.2014, 18:42     Titel:
  Antworten mit Zitat      
Ah ... Jetzt wirds klar!
Vielen Dank!
_________________

sehen um vorauszusehen
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.