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

Mit Symbolic Toolbox Zustandsdarstellung aus DGLs ermitteln

 

EliteTUM
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 70
Anmeldedatum: 21.04.11
Wohnort: München
Version: ---
     Beitrag Verfasst am: 30.01.2012, 17:27     Titel: Mit Symbolic Toolbox Zustandsdarstellung aus DGLs ermitteln
  Antworten mit Zitat      
Hi Leute,

ich untersuche gerade die Leistungsfähigkeit unterschiedlicher Fahrzeugmodelle. Diese will ich dabei in (nicht-)linearer Zustandsraumdarstellung weiterverwenden. In der Literatur bzw. wenn selbst ein Modell erstellt wurde, liegen die DGLs immer in der Form vor, wie Sie aus Drall-, Impulserhaltungssatz etc. hergeleitet wurden. Um hierbei Zeit zu sparen würde ich gerne (auch für spätere Modelle) dieses Vorgehen "automatisieren", da es ja eigtl. nur um Gleichungsumformung geht.

Als Beispiel eines Modells mit einem System an DGLs die ich momentan versucht habe per Hand aufzulösen aber schnell finde, dass das ganze unübersichtlich und fehleranfällig wird, wäre:

Aus folgender Quelle (BRAKE CONTROL TO PREVENT THE ROLLOVER OF HEAVY VEHICLES BASED ON A LINEAR PARAMETER VARYING MODEL) auf Seite 2, Gleichungen (1)-(5). Diese DGLs würde ich gerne in Zustandsraumdarstellung mit dem Zustandsvektor aus Gleichung (6) auf Seite 3 bringen. Dies soll mit der MatLab Symbolic Math Toolbox geschehen.

Die Formeln habe ich schon mal abgetippt. Mit dem Befehl "solve" in folgender Form komme ich nicht weiter.

Code:

syms m v beta_dot psi_dot m_s h phi_dotdot Y_beta beta Y_psi_dot Y_delta_f delta_f

% Gleichung 1
%m*v*(beta_dot+psi_dot) - m_s*h*phi_dotdot = Y_beta*beta + Y_psi_dot*psi_dot + Y_delta_f*delta_f

syms I_xz I_zz psi_dotdot N_beta N_psi_dot N_delta_f l_w delta_F_b

% Gleichung 2
%-I_xz*phi_dotdot + I_zz*psi_dotdot = N_beta*beta + N_psi_dot*psi_dot + N_delta_f*delta_f + l_w/2 * delta_F_b

syms I_xx g phi k_f phi phi_t_f b_f phi_dot phi_t_f_dot k_r phi_t_r b_r phi_t_r_dot

% Gleichung 3
%(I_xx+m_s*h^2)*phi_dotdot - I_xz*psi_dotdot = m_s*g*h*phi + m_s*v*h*(beta_dot+psi_dot) - k_f*(phi-phi_t_f) - b_f*(phi_dot-phi_t_f_dot) - k_r*(phi-phi_t_r) - b_r*(phi_dot-phi_t_r_dot)

syms r Y_beta_f Y_psi_dot_f m_u_f h_u_f k_t_f

% Gleichung 4
%-r*(Y_beta_f*beta + Y_psi_dot_f*psi_dot + Y_delta_f*delta_f) = m_u_f*v*(r-h_u_f)*(beta_dot+psi_dot) + m_u_f*g*h_u_f*phi_t_f - k_t_f*phi_t_f + k_f*(phi-phi_t_f) + b_f*(phi_dot-phi_t_f_dot)

syms Y_beta_r Y_psi_dot_r m_u_r h_u_r k_t_r

% Gleichung 5
%-r*(Y_beta_r*beta + Y_psi_dot_r*psi_dot) = m_u_r*v*(r-h_u_r)*(beta_dot+psi_dot) + m_u_r*g*h_u_r*phi_t_r - k_t_r*phi_t_r + k_r*(phi-phi_t_r) + b_r*(phi_dot-phi_t_r_dot)

% Löse nach Ableitungen des Zustandsvektors auf, in solve(...) sind obige fünf Gleichungen eingesetzt
%
[beta_dot, psi_dotdot, phi_dot, phi_dotdot, phi_t_f_dot, phi_t_r_dot] = solve('m*v*(beta_dot+psi_dot) - m_s*h*phi_dotdot = Y_beta*beta + Y_psi_dot*psi_dot + Y_delta_f*delta_f', '-I_xz*phi_dotdot + I_zz*psi_dotdot = N_beta*beta + N_psi_dot*psi_dot + N_delta_f*delta_f + l_w/2 * delta_F_b', '(I_xx+m_s*h^2)*phi_dotdot - I_xz*psi_dotdot = m_s*g*h*phi + m_s*v*h*(beta_dot+psi_dot) - k_f*(phi-phi_t_f) - b_f*(phi_dot-phi_t_f_dot) - k_r*(phi-phi_t_r) - b_r*(phi_dot-phi_t_r_dot)', '-r*(Y_beta_f*beta + Y_psi_dot_f*psi_dot + Y_delta_f*delta_f) = m_u_f*v*(r-h_u_f)*(beta_dot+psi_dot) + m_u_f*g*h_u_f*phi_t_f - k_t_f*phi_t_f + k_f*(phi-phi_t_f) + b_f*(phi_dot-phi_t_f_dot)', '-r*(Y_beta_r*beta + Y_psi_dot_r*psi_dot) = m_u_r*v*(r-h_u_r)*(beta_dot+psi_dot) + m_u_r*g*h_u_r*phi_t_r - k_t_r*phi_t_r + k_r*(phi-phi_t_r) + b_r*(phi_dot-phi_t_r_dot)')
 


Sonst jemand eine Idee? Bin f+r jede Hilfe dankbar!
_________________

- EliteTUM
_____________________________________
Private Nachricht senden Benutzer-Profile anzeigen


Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2012, 07:29     Titel:
  Antworten mit Zitat      
Hallo,

ich würd epersönlich vielleicht erstmal mit einem übersichtlicherem Differentialgleichungssystem anfangen. Aber prinzipiell sollte es so gehen. Allerdings musst du solve noch die Variablen übergeben, nach denen du auflösen willst.
Zudem hast du nur 5 Gleichungen, also auch nur fünf Lösungen (für alle Zustände ausser x(3) = phi). Die Gleichung

\dot{\phi} = \dot{x}(3)=  x(4)

musst du noch zusätzlich irgendwie implementieren.

viele Grüße
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.