Hallo,
ich habe eine Funktion die sieht wie folgt aus:
1
x=0
2
do
3
x=f1(x)
4
x=f2(x)
5
x=f3(x)
6
x=f4(x)
7
loop until eingeschwungen
f1 und f3 sind in etwa ein Sinus
f2 und f4 sind ein arc-sin mit Klimbim-vornedran.
Alle mit unterschiedlichen Koeffizenten dran
Und nein, x=0 ist nicht die Lösung, falls das jetzt einer meint.
Jetzt suche ich einen Algorythmus/Technik mit dem ich mir das blöde
iterieren sparen kann. Ideen?
Am liebsten wäre mir eine Funktion xstabil=f(parametern,ohnex).
Vielen Dank schon mal fürs Brainstormen und die Ideen.
-Michael
Mathematisch läuft es auf eine Limes-Berechnung des Integrals von
f4(f3(f2(f1(x)))) für x gegen unendlich heraus.
Um genaueres zu sagen müsste man natürlich wissen, wie f1, f2, f3 und f4
genau aussehen.
1. Ansprechpartner könnte wolframalpha sein (Limes = "limit" im
Englischen).
Soweit mich meine völlig eingerosteten Mathekenntnisse nicht völlig im
Stich lassen:
Das ist eine Differenzengleichung:
x(n) = f4(f3(f2(f1(x(n-1)))))
TrollHunter schrieb:> Laplace-Transformation und Grenzwertsatz?
Laplace ist für kontinuierliche Signale. Hier eher die Z-Transformation
Ob man da aber zu einer geschlossenen Lösung kommt weiss ich nicht,
hängt wohl auch von den Funktionen ab.
Seit man Computer hat freut man sich doch eher, daß man das nicht mehr
trocken durchrechnen muss, sondern schnell mal durchiterieren kann.
Ja , das sollte mit der Z-Transformation gehen.
Da gibt es doch auch ein Theorem was besagt dass k->unendlich das
Äquivalente zu z=0 ist (Endwerttheorem)
Wie mache ich das genau? Könnt ihr mir ein paar Hinweise geben?
Einfach alles in die Z-Domäne transformieren? (Und wie transformiere ich
asin?)
Und wie gehts dann weiter?
(An das mit 0 setzten kann ich mich noch erinnern.)
Ist I_ind und I_Ind in deinen Formeln dasselbe?
Wenn ja: Meinst du mit "stabile Lösung" der Wert, gegen den I_ind bei
wiederholter Anwendung der Formeln F1 bis F4 konvergiert?
Wenn ja: Haben, nachdem das Verfahren konvergiert ist, das I_Ind in F2
und das I_Ind in F4 den gleichen Wert?
Wenn ja: Würde es dann nicht genügen, die Iteration nur mit den Formeln
F1 und F2 oder alternativ nur mit F3 und F4 durchzuführen?
Wenn ja: Dann müsste ja für beide Alternativen das gleiche Ergebnis
herauskommen. Das kann aber nur sein, wenn die Parameter L, C, k1, k2,
k3, k4, t_on und t_off voneinander abhängig sind, d.h. einer der 8
Parameter als Funktion der anderen 7 Parameter ausgedrückt werden kann.
Ist das der Fall?
Wenn ja: Dann musst du zur Bestimmung von I_Ind nur eines der
Gleichungssysteme (F1,F2) order (F3,F4) lösen.
Falls du irgendeine der Fragen mit nein beantwortet hast, habe ich dein
Problem noch nicht verstanden :)
Es wäre dann besser, du würdest den Hintergrund des Problems erläutern,
das ja wohl aus einer Schaltung mit einer Spule und einem Kondensator
entstammt, bei der irgendetwas ein- und ausgeschaltet wird. Damit wird
das Ganze wahrscheinlich sehr viel leichter verständlich.
Das ganze Verfahren beschreibt einen resonanten Converter. Die
entsprechende Waveform ist im Anhang aufgemalt.
Yalu X. schrieb:> Ist I_ind und I_Ind in deinen Formeln dasselbe?
Jein. Iind ist der selbe Strom, aber ein anderer Wert.
Das Ergebnis von F4 ist das gleiche wie in F1 genutzt wird,
> Wenn ja: Meinst du mit "stabile Lösung" der Wert, gegen den I_ind bei> wiederholter Anwendung der Formeln F1 bis F4 konvergiert?
Unter anderem, aber t1 und t3 würden mir aber schon reichen.
> Wenn ja: Haben, nachdem das Verfahren konvergiert ist, das I_Ind in F2> und das I_Ind in F4 den gleichen Wert?
Nein, das haben sie nicht. Ich habe mal eine Grafik zur Illustration
gemacht.
> Wenn ja: Würde es dann nicht genügen, die Iteration nur mit den Formeln> F1 und F2 oder alternativ nur mit F3 und F4 durchzuführen?
Hatte ich als Sonderfall schon gemacht, das geht.
> Es wäre dann besser, du würdest den Hintergrund des Problems erläutern,> das ja wohl aus einer Schaltung mit einer Spule und einem Kondensator> entstammt, bei der irgendetwas ein- und ausgeschaltet wird. Damit wird> das Ganze wahrscheinlich sehr viel leichter verständlich.
Topolgie im Anhang. Hoffe das hilft.
Von welchen Gleichungen bist du ausgegangen, um auf diese
Iterationsvorschrift zu kommen?
Formuliere das Problem einfach als (nichtlineares) Gleichungssystem und
loese es numerisch mit Matlab bzw. Octave (bspw. mit lsqnonlin), das ist
am einfachsten. Loesungsverfahren muss man nicht neu erfinden, wenn es
sie schon gibt...
vorticon
Michael H. schrieb:> Das ganze Verfahren beschreibt einen resonanten Converter. Die> entsprechende Waveform ist im Anhang aufgemalt.
Ja, damit kommt ein wenig Licht ins Dunkel.
> Jein. Iind ist der selbe Strom, aber ein anderer Wert.
Wenn ich das richtig verstehe, gibt es zwei Ströme, die hier relevant
sind, nämlich derjenige an der Knickstellen zwischen Phase IV und I und
derjenige zwischen Phase II und III in deinem Diagramm. Ich bezeichne
die Ströme im Folgenden mit I₄₁ und I₂₃.
Diese Bezeichnungen habe ich in deine Formeln übernommen und diese ein
wenig umgestellt, so dass keine arcsin-Funktionen mehr darin vorkommen:
Das ist ein Gleichungssystem mit den Unbekannten t₁, t₃, I₄₁ und I₂₃.
Die beiden Ströme kann man sofort eliminieren, so dass sich folgendes
Gleichungssystem ergibt:
Mit Hilfe der Additionstheoreme der Sinus-Funktion kann man die
Gleichungen so umformen und zusammenfassen, dass schließlich zwei
biquadratische Gleichungen in sin(t₁/√LC) und sin(t₃/√LC) übrig bleiben.
Durch Einsetzen der Lösungen in die erste und dritte Ursprungsgleichung
erhält man auch I₄₁ und I₂₃.
Dummerweise sind die Formeln für die Lösungen riesig, so dass sie nicht
als Ganzes sinnvoll darstellbar sind. Ich habe deswegen versucht, sie so
umzuschreiben, dass möglichst viel gemeinsame Teilausdrücke enstehen,
und für diese dann Variablen definiert:
1
r = sqrt(L*C)
2
s = cos(ton / r)
3
t = cos(toff / r)
4
u = k1 / k4
5
v = k3 / k2
6
uv = u * v
7
gu = 1 - u**2
8
gv = 1 - v**2
9
guv = 1 - uv**2
10
p = u*s - v*t
11
f = p*t*s + v*s - u*t
12
b1 = 2 * v * (s - uv*t)
13
b3 = 2 * u * (t - uv*s)
14
a1 = guv * (gv + (v*t)**2 - s**2) + f*b1
15
a3 = guv * (gu + (u*s)**2 - t**2) - f*b3
16
q = (1 - t**2) * (1 - s**2)
17
d = sqrt(q * (p**2 + gu*gv))
18
e = guv**2 - b1 * b3
19
g1 = sqrt((a1 + b1*d) / e)
20
g3 = sqrt((a3 + b3*d) / e)
21
22
t1 = r * asin(g1)
23
t3 = r * asin(g3)
24
I41 = g1 * k1
25
I23 = g3 * k3
In den letzten vier Zeilen stehen die gesuchten Lösungen. Von den vier
Lösungen der biquadratischen Gleichung habe ich eine so ausgewählt, dass
sie für ein paar Testbeispiele mit der iterativen Lösung übereinstimmt.
Da ich aber nicht weiß, in welchen Wertebereich die Verhältnisse k₁/k₄
und k₃/k₂ liegen, kann es sein, dass diese Auswahl falsch ist und bei
dir die Ergebnisse deswegen nicht stimmen. Melde dich dann einfach noch
einmal mit ein paar typischen Zahlenbeispielen, dann werde ich das
entsprechend korrigieren.
Das Python-Programm im Anhang stellt für vorgegebene Parameter die
direkt berechneten Ergebnisse den iterativ berechneten gegenüber.
Hallo Yalo,
erstmal vielen Dank für deinen Lösungsansatz.
Ich hatte so eine ähnliche Lösungsformel schon mal benötigt, und
daraufhin folgende Lösungsformel gefunden:
Problem:
Lösungsformel für x:
Wie das Rechenaufwandstechnisch im vergleich zu deiner Lösung zu sehen
ist, das weiß ich nicht.
Ich poste das jetzt mal, und versuche dann deinen Lösungsweg
nachzuvollziehen.
*EDIT:* Also mir ist nicht klar, wie Du das durch die Additonstheoreme
umformst. Könnstest Du mir deinen Rechenweg einscannen?
Michael H. schrieb:> Also mir ist nicht klar, wie Du das durch die Additonstheoreme> umformst.
Die dienen einfach nur dazu, Terme wie sin((t_on-t₁)/√LC) so zu
zerlegen, dass die störende Summe bzw. Differenz im Argument
verschwindet. Etwas anderes hast du ja in deinem Beispiel mit
sin(x)=a·sin(b-x) auch nicht gemacht.
Ja, aber wie kommst Du auf eine biquadratische Gleichung? Könntest Du
deinen Lösungsweg einscannen? Ich würde den gerne nachvollziehen. Das
würde mir echt sehr viel helfen.
Ich habe das ganze ja über einen Tanges gelöst, das ist ja nicht so
schön wie Du über eine Wurzel. Irgendwie fehlt noch etwas, dass es bei
mir "klick" macht.
Michael H. schrieb:> Ja, aber wie kommst Du auf eine biquadratische Gleichung? Könntest Du> deinen Lösungsweg einscannen?
Ich habe Teile von dem CAS-Programm Maxima rechnen lassen. Allerdings
konnte ich das Programm nicht dazu bewegen, die Lösung komplett
selbstständig zu finden, weswegen ich die ersten paar Umformungen der
Gleichungen teilweise selber vorgegeben habe. Den arbeitsintensivsten
Teil, nämlich die Lösung von zwei Gleichungen 4. Grades, hat Maxima dann
aber zum Glück doch noch hinbekommen :)
Im Anhang findest du das Skript für wxMaxima, das ich noch mit ein paar
Erläuterungen versehen habe. Anders als in meiner ursprünglichen
Rechnung habe ich schon frühzeitig ein paar Substitutionen gemacht, so
dass das Ganze nicht allzu unübersichtlich wird. Für den Fall, dass du
wxMaxima nicht auf deinem Rechner hast, habe ich auch den HTML-Output
angehängt, den du (hoffentlich) in deinem Web-Browser anschauen kannst.
> Ich habe das ganze ja über einen Tanges gelöst,
Der Trick, eine Gleichung mit sin(x) und cos(x) durch cos(x) zu
dividieren, so dass danach x nur noch als tan(x) auftritt, ist nur dann
möglich, wenn die Gleichung als Linearkombination von sin(x) und cos(x)
dargestellt werden kann. Das ist in dem Beispiel in deinem vorletzten
Beitrag der Fall, nicht aber im ursprünglichen Problem.
Stattdessen muss man, um nur mit einer Winkelfunktion von x kämpfen zu
müssen, cos(x) durch √(1-sin²(x) ersetzen, wodurch ein System aus zwei
Wurzelgleichungen entsteht, das durch Quadrieren in ein System aus zwei
quadratischen Gleichungen überführt werden kann. Die Elimination einer
der beiden Unbekannten führt aber zu einer Gleichung 4. Grades, was die
Lösung des Problems ziemlich aufwendig macht.
> das ist ja nicht so schön wie Du über eine Wurzel.
Meine Lösung ist auch nicht schöner, da am Schluss anstelle der arctan-
die arcsin-Funktion angewandt werden muss. Das Zeug mit den Wurzeln
kommt nur noch erschwerend hinzu. Wirklich schöner wäre eine Lösung, die
komplett auf Winkel- und deren Umkehrfunktionen verzichtet.
Vielleicht findet ja doch noch jemand einen einfacheren Lösungsweg (ich
denke da bspw. an unseren Mathematiker Johann, der oft gute Ideen hat,
wie man ein Problem von einer ganz anderen Seite anpacken kann ;-))
Hallo Yalu,
das hilft echt viel weiter. Es ist echt interessant, wieviele Tricks
hier angewendet werden. Trigonemtrische Funktionen überraschen einem
echt immer wieder...
Frage: Denkst Du/Ihr, dass es möglich ist, den übertragenen Strom
vorzugeben (neg. Strom in der Spule ist an der Last auch positiv), und
daraus die Schaltfrequenz zu berechnen?
Also so in der Art?
Dann könnte man statt einem Regler für den Converter eine Steuerung
bauen. Wäre halt sehr viel schneller in der Ausregelung.
-Michael