Gelöste Aufgaben/FEC1/FEC1 - Teil III: Simulieren: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 95: Zeile 95:


<math>\displaystyle \underline{X}(t) = \sum_{i=1}^{16} \underline{\hat{X}}_i \cdot e^{\displaystyle \gamma_i t + j \omega_{0,i} t}</math>
<math>\displaystyle \underline{X}(t) = \sum_{i=1}^{16} \underline{\hat{X}}_i \cdot e^{\displaystyle \gamma_i t + j \omega_{0,i} t}</math>
 
[[Datei:FEC1-Eigenvalues.png|mini|Eigenwerte als Funktion der Drehzahl ''η''.]]
Wir berechnen die Eigenwerte des Systems nach  
Wir berechnen die Eigenwerte des Systems nach  


Zeile 113: Zeile 113:


Bei dieser Drehzahl verzweigt der Realteil der Lösung - ein Lösungszweig (branch) hat einen negativen Realteil, der zu einer abklingenden Lösung gehört und ein zweiter Lösungszweig hat einen positiven Realteil, der zu einer aufklingenden Lösung gehört.
Bei dieser Drehzahl verzweigt der Realteil der Lösung - ein Lösungszweig (branch) hat einen negativen Realteil, der zu einer abklingenden Lösung gehört und ein zweiter Lösungszweig hat einen positiven Realteil, der zu einer aufklingenden Lösung gehört.
[[Datei:FEC1-Eigenvalues-Ausschnitt-1.png|rahmenlos|150x150px]]


'''''η > 4.2'''''
'''''η > 4.2'''''

Version vom 8. März 2021, 14:43 Uhr

⬅ Zurück zu Teil II

Computerprogramm schreiben

Um unsere Bewegungsgleichungen

zu lösen, war der Computer und Maxima bis hierher eine gute Hilfe - wir hätten aber auch alle Gleichungen per Hand aufstellen können. Ab hier geht das nicht mehr. Für die Lösung der Bewegungsgleichungen brauchen wir Computer. Für einfache Probleme wie dieses reichen Interpreter-Programme wie Matlab©, wenn's komplizierter wird, müssten wir auf Kompiler wie C++ umsteigen. Für alle etablierten Programme gibt es Numerik-Bibliotheken, um die Probleme zu lösen, die wir jetzt angehen.

Bei allen Lösungsansätzen steht in der Bewegungsgleichung noch ein Parameter: die Dimensionslose Drehzahl η mit

Partikulare Lösung für konstante Koeffizienten

Für die Bewegungsgleichung oben gibt es keine geschlossene partikulare Lösung - die periodischen Koeffizienten machen das unmöglich. Anschaulich berücksichtigen diese Koeffizienten die Drehwinkel-veränderliche Steifigkeit der Lager beim Drehen. 

Wir könnten von Δk = 0 ausgehen und die Lösung von

berechnen. Aber hier steht nichts, was wir nicht mit einer Handrechnung auch hinbekommen würden: die Auslenkung des Systems wächst quadratisch mit der Drehzahl η(Ω) - also der Zentrifugalkraft.

tmp

Homogene Lösung für konstante Koeffizienten

Auch für die homogene, lineare Differentialgleichung (für P=0) gibt es keine geschlossene analytische Lösung. Wir schauen und also auch hier erst einmal nach einer Lösung der homogenen Differentialgleichung mit konstanten Koeffizienten

um und führen wir eine Modalanalyse durch. Damit wir mit Standard-Lösungsroutinen arbeiten können, transformieren wir die Bewegungsgleichung in eine Differentialgleichung erster Ordnung, hier

.

Dabei ist P = dQ/dτ, also die Geschwindigkeit von Auslenkung und Kippung. Wir haben also nun eine neue Schreibweise für die homogene Differentialgleichung als

mit

.

Für dieses Standard-Problem können wir in Maxima eine Adaption der Lapack-Routinen nutzen.


/*******************************************************/
/******************* PART III **************************/
/*******************************************************/
/* rewrite as first-order differential equations       */
/* X' = H(τ)*X + R, X = (P,Q)^T, R = (0,P)^T           */

/* inverse of  M */
I: dgesv (mats[1], diagmatrix (8, 1))$
/* System Matrix */
H  : zeromatrix(2*8,2*8)$
/* G*M^(-1) */
GI : expand(mats[2].I)$

/* populate system matrix */
for row:1 thru 8 do
   for col:1 thru 8 do
      (H[  row,8+col] : + I     [row,col],
       H[8+row,  col] : -mats[3][row,col],
       H[8+row,8+col] : -GI     [row,col])$

/*******************************************************/
/* solve eigenvalue Problem                            */

evals: []$
for Eta:0 thru 30 step 0.1 do
    (/*print("eta = ", Eta),*/
     evals: append(evals, [append([Eta], dgeev (subst([eta = Eta],H))[1])]))$

etas : flatten(makelist(makelist(evals[i][1],j,1,length(evals[i])-1),i,1,length(evals)))$
reals: flatten(makelist(makelist(realpart(evals[i][j]),j,2,length(evals[i])),i,1,length(evals)))$
imags: flatten(makelist(makelist(imagpart(evals[i][j]),j,2,length(evals[i])),i,1,length(evals)))$
plot2d([[discrete, etas, reals],[discrete, etas, imags]], [y,-100,100], 
        [style,points,points], [point_type,bullet,plus],
        [color,red, blue], [legend, "real part", "imag part"],
        [xlabel, "η->"], [ylabel, "ω, γ ->"],
        [gnuplot_term, "png size 2000,2000 font 'Helvetica,30'"], [gnuplot_out_file, "C:\\Users\\abs384\\OneDrive\\X\\tmp\\plots\\eigenvalues.png"] )$




Lösung berechnen und ausdeuten

Wir schauen uns die Eigenwerte des Systems für die Drehzahl η im Bereich 0 < η < 30 an. Für unsere Bewegungsgleichung erster Ordnung mit 16 Zustandsgrößen erhalten wir 16 Eigenwerte mit Real- und Imaginärteil. Die Lösung im Zeitbereich ist dann

Eigenwerte als Funktion der Drehzahl η.

Wir berechnen die Eigenwerte des Systems nach

  • Realteil γ und
  • Imaginärteil ω0,i.

Für dynamische Instabilität des Systems suchen wir nach Lösungen mit einem Realteil γ > 0.


0 < η < 4.2

Für η=0 (die Welle rotiert nicht) sehen wir, dass alle Eigenwerte doppelt auftreten - wir haben 2*8 Eigenwerte. Das kennen wir bereits aus Modalanalysen für andere nicht-rotierende Systeme.

Steigern wir die Drehzahl, so teilen sich die Eigenfrequenzen und wir sehen wirklich 16 unterschiedliche Eigenwerte. Auch diese unterscheiden sich jeweils paarweise nur durch das Vorzeichen.

η = 4.2

Bei dieser Drehzahl verzweigt der Realteil der Lösung - ein Lösungszweig (branch) hat einen negativen Realteil, der zu einer abklingenden Lösung gehört und ein zweiter Lösungszweig hat einen positiven Realteil, der zu einer aufklingenden Lösung gehört.

η > 4.2

Für η > 4.2 existieren immer aufklingende Lösungen - die Energie der Drehbewegung führt zur Anfachung der Bewegung im Zeitbereich.

Rechenergebnisse mit beobachtetem Verhalten des Systems vergleichen

Und hier würden wir die gefundenen Ergebnisse mit Experimenten vergleichen.

Experimente fehlen uns aber leider ...