Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Studierende:
Werkstudent (m/w) in der MATLAB-Entwicklung
Branche: Luft-, Raumfahrttechnik, Dienstleistungen
univativ GmbH & Co. KG - Hamburg

Studentische Mitarbeit - Fahrzeugmessungen
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Berlin

Abschlussarbeit - Virtuelle Akustik und Real Time Processing
Branche: mehrere
IAV GmbH - München

Abschlussarbeit - Funktionale NVH-Optimierung elektrischer Antriebe
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Stollberg

Werkstudent (m/w) High End GNSS Simulation mit modernsten Signalgeneratoren
Branche: Mess-, Regel-, Automatisierungstechnik, Telekommunikation, Nachrichtentechnik
ROHDE & SCHWARZ GmbH & Co. KG - München

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Determinante aus Matrix mit Variable

 

Camilo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2009, 14:06     Titel: Determinante aus Matrix mit Variable
  Antworten mit Zitat      
Hallo zusammen !

Zurzeit arbeite ich an einem System wo ich Resonanzfrequenzen ausrechnen will. Mein Problem ist, dass ich eine 12x12 Matrix habe, die eine Unbekannte w (Frequenz) besitzt.
Ich will gerne wissen für welche Werte von w die Determinanten der Matrix Null wird (dies sind die Resonanzen). Hierbei will ich gerne auch mehr als 1 Lösungswert bekommen... also ein w1, w2, ...

Weiß jemand, wie mann bei einer matrix die unbekannte Variable w mit den Bedingung det(matrix(w))=0 berechnen kann ? Hoffe es ist klar erklärt. Very Happy

Grüße und Danke im Voraus !


Titus
Forum-Meister

Forum-Meister


Beiträge: 870
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 04.06.2009, 15:57     Titel:
  Antworten mit Zitat      
Hallo,

keine Ahnung ob es funktioniert, aber hast Du mal probiert, fzero aufzurufen? Mit der Funktion f=det(matrix(w)) als Funktion, von der Du die Nullstelle berechnen willst?

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 04.06.2009, 18:01     Titel:
  Antworten mit Zitat      
Hallo Camilo,

hast Du zufällig die Symbolic Math Toolbox zur Verfügung? Die kann auch symbolisch die Determinante berechnen und Gleichungen lösen. Bin nicht sicher, ob die Komplexität zu hoch wird bei 12x12, das kommt auch darauf an, in welcher Weise w in der Matrix steckt.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Camilo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 08:29     Titel:
  Antworten mit Zitat      
Danke erstmals und es tut mir Leid, dass ich noch keine Antwort gegeben habe. Also mit f=det(matrix(w)) habe ich es versucht aber nicht hinbekommen. Toolbox habe ich leider nicht, und kann es am Rechner wo ich arbeite nicht installieren....
Zur Not werde ich einfach die Variable laufen lassen und im Plot gucken wo die Null-Achse geschnitten wird (die unfeine Varianten).

Alles gute und viele Grüße !
 
Bane
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 09.06.09
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 16.06.2009, 14:05     Titel:
  Antworten mit Zitat      
Hi,

also wenn Du nach den ungedämpften Eigenfrequenzen suchst dann geht das ganz einfach mit der Funktion 'eig'. Hier ein Beispiel für ein mechanisches Schwingungssystem mit 3 Massen, wobei M...Massenmatrix, C... Steifigkeitsmatrix. 'Eig' gibt V (Eigenvektoren) und D (Eigenwerte/Resonanzkreisfreqenzen) zurück.
Code:
C = [ c1+c2       -c2     0   ;
        -c2     c2+c3   -c3   ;
          0       -c3    c3   ];
     
M = diag([m1 m2 m3]);

[V,D] = eig(C,M);
D = diag( sqrt(D)/2/pi );
Private Nachricht senden Benutzer-Profile anzeigen
 
M. Rosenow

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2018, 16:36     Titel: Eigenwerte linearer Systeme
  Antworten mit Zitat      
So einfach ist das im allgemeinen Fall leider nicht. Sind die Eigenwerte numerisch zu bestimmen,sollte das Gleichungssystem in die Zustandsraumform überführt werden:

v' = T*v mit v' = v*d/dt

v ist der Vektor der zeitabhängigen Größen dieser Form. Die Eigenwerte s der Matrix T sind die Eigenwerte des Systems:

s = eig(T)


Die Imaginärteile dieser Eigenwerte beinhalten sämtliche tatsächlich erzeugten Frequenzen.

Sucht Ihr hingegen die Kennkreisfrequenz wo des Systems, so ist aus den Eigenwerten das charakteristische Polynom zu rekonstruieren. Die Eigenwerte sind nämlich dessen Nullstellen! Man schreibt also:

0 = (s-s1)*(s-s2)*(s-s3)*....

Dabei sind s1, s2, s3, ... die Eigenwerte und s ist die komplexe Variable. Das Ausmultiplizieren überlassen wir dem Computer und erhalten für die 3. Ordnung die Normalform des charakteristischen Polynoms:

0 = s^3 + a2*s^2 + a1*s + ao

Erkennt Ihr die charakteristische Gleichung? Das Absolutglied ao legt die Kennkreisfrequenz wo fest:

wo^3 = ao

Entsprechendes gilt für alle Systeme, der Wurzelexponent ist natürlich die Ordnung des Systems.

Nun zur Erstellung der Zustandsraumform. Wir gehen von der primären Beschreibung des Systems aus:

0 = M(p)*u mit p=d/dt

In dieser Beschreibung kommen nur erste Ableitungen der Größen u(t) vor. Wir sortieren die abgeleiteten Größen aus und schreiben anstelle von M zwei Matrizen A und B:

0 = B*p*u + A*u bzw.

0 = B*u' + A*u

Ziel ist nun, dieses System nach der dem Vektor der Variablen u' umzustellen. Wäre die Matrix B invertierbar, so erhielten wir bereits die Zustandsraumform mit

u'=-A*inv(B)*u

Leider ist die Matrix B in einem technischen System meistens nicht invertierbar. Sie ist dann unterbesetzt bzw. enthält linear abhängige Zeilen. Aber das ist kein Problem, denn die linearen Abhängigkeiten sind nur vom Typ der einfachen Summe.

Für die Entfernung einer linear abhängigen Zeile aus der Matrix B stellen fest, welche Zeile in B sich als Summe welcher anderen Zeilen darstellen läßt. Ein Blick auf die Elemente der Hauptdiagonale lohnt sich.

Achtung! Zu der Zeile in B, die wir entfernen möchten, addieren wir die andern ausgewählten Zeilen hinzu. Dadurch entsteht in der Matrix B eine leere Zeile. Wir vergessen nicht, diese Operation auch in A durchzuführen, dort entsteht natürlich keine leere Zeile!

Haben wir alle linear abhängigen Zeilen aus B entfernt, schreiben wir das System so:

0=[B11 B12]*uc' + [A11 A12]*uc
0=[0 0 ]*ug' + [A21 A22]*ug

Es wurde sortiert in Zeilen mit Ableitungen und Zeilen ohne Ableitungen, wobei die Vektoren uc und ug die zeitabhängigen Größen führen. Die Matrizen B11 und A22 sind quadratisch und invertierbar.

Wir stellen dies formal nach uc' um:

uc'=T*uc mit T=-inv(B11-B12*inv(A22)*A21) * (A11*inv(A22)*A21)

Der Vektor uc stimmt mit dem oben genannten Vektor v der Zustandsraumform überein. Er enthält genau so viele Zustandsvariablen, wie die Systemmatrix T Zeilen hat. Wir sehen die Ordnung des Systems auch schon am Rang der Matrix B11.

Die Eigenwerte des Systems sind dann:

s = eig(T)

Voraussetzung für die Durchführbarkeit dieser Umstellung ist die Invertierbarkeit der Matrizen B11 und A22. Dies erreichen wir durch Umsortieren von Zeilen und Spalten, nachdem aus B die überflüssigen Zeilen entfernt wurden.

Beispiel: Eine konkrete elektronische Schaltung wurde ausgelesen und habe folgende Beschreibung:

0 = [-c1 c1 . . . . ] * v1' + [-G1 . -g1 g1 -1 . ] * v1
0 = [ c1 -c1 . . . . ] * v2' + [ . -G2 g1 -g1 . -1 ] * v2
0 = [ . . -c2 c2 . . ] * v3' + [-g2 g2 -G3 . 1 . ] * v3
0 = [ . . c2 -c2 . . ] * v4' + [ g2 -g2 . -G4 . 1 ] * v4
0 = [ . . . . -l1 . ] * i1' + [ 1 . -1 . . . ] * i1
0 = [ . . . . . -l1] * i2' + [ . 1 . -1 . . ] * i2

Hierbei sind: v1-v4 Spannungen und i1-i2 Ströme. Die Koeffizienten sind konkrete Bauteile. Jeder Punkt steht für einen Nulleintrag. Wir erkennen links die Matrix B. Sie enthält zwei überflüssige Zeilen. Wir ersetzten im gesamten System:

Zeile 2 mit der Summe aus Zeile 1 und Zeile 2,
Zeile 4 mit der Summe aus Zeile 3 und Zeile 4.

Jetzt sortieren wir und erhalten:

0 = [-c1 . . . c1 . ] * v1' + [-G1 -g1 -1 . . g1 ] * v1
0 = [ . -c2 . . . c2 ] * v3' + [-g2 -G3 1 . g2 . ] * v3
0 = [ . . -l1 . . . ] * i1' + [ 1 -1 . . . . ] * i1
0 = [ . . . -l2 . . ] * i2' + [ . . . . 1 -1 ] * i2
0 = [ . . . . . . ] * v2' + [-G1 . -1 -1 -G2 . ] * v2
0 = [ . . . . . . ] * v4' + [ . -G3 1 1 . -G4 ] * v4

Ganz links oben befindet sich nun die Matrix B11, gebildet aus den Elementen c1, c2, l1, l2. Ganz rechts unten befindet sich die Matrix A22, gebildet aus den Elementen G2 und G4. B11 und A22 sind offensichtlich invertierbar, wie wir gefordert haben, so daß nun die Systemmatrix T nach der genannten Formel bestimmbar ist. Das überlassen wir natürlich dem Rechner!

Wir erkennen an B11 folgendes: Es gibt nur vier Zustandsvariablen, nämlich hier konkret v1, v3, i1, i2. Demzufolge ist das ein System 4. Ordnung, die Systemmatrix T erhält die Größe 4x4. Die überflüssigen Variablen v2, v4 haben keine Koeffizienten in der Systemmatrix.

Es sollen auch konkrete Bauteilwerte eingesetzt werden:

c1 = c2 = 1e-6 (F)
l1 = l2 = 1e-3 (H)
g1 = g2 = 1e-3 (Siemens)
G1 = G2 = G3 = G4 = 1e-3 (Siemens)

Dann erhalten wir die vier Eigenwerte:

s = eig(T)

s1 = 5e-2 (1/sec)
s2 = -2e-6 (1/sec)
s3 = -7.5e2 + j3.1614e4 (1/sec)
s4 = -7.5e2 - j3.1614e4 (1/sec)

Der erste Eigenwert ist reell positiv, das System ist instabil. Der dritte und vierte Eigenwert bilden ein abklingendes Drehzeigersystem mit der Frequenz

f = w/2/pi = 5 kHz.

Aufgabe: Wie lautet Kennkreisfrequenz dieses Systems?

Abschließende Hinweise:

1) Die vorgestellte Methode wird von professionellen Programmen genutzt, um die Eigenwerte sowie die Differentialgleichung eines Systems aufzustellen. Eine symbolische Rechnung entfällt, so daß auch sehr große Systeme behandelt werden können.

2) Die Methode eignet sich auch, um symbolische Determinanten zu bestimmen. Eine Determinante, die das Symbol s enthält, ist nichts weiteres, als ein Polynom der Variablen s.

3) Das genannte Schaltungsbeispiel ist geistiges Eigentum des Autors und Teil eines von ihm verfassten Fachbeitrages. Alle sonstigen Informationen sind in langer und mühsamer Recherche verschiedener Fachliteratur entnommen.
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.