Hi, Ein rc Glied am Rechteck bildet ja den Mittelwert. Ab der wievielten Periode hätte es sich durchschnittlich eingeschwungen wie lägen die extrmpunkte nach unendlicher Zeit. Gibt es eine Möglichkeit die extrmpunkte auszurechnen ohne für jede Periode Einzel die extrmpunkte zu bestimmen, indem ich mithilfe der zeitkonstante "tau" die Spannung zu und Abfälle berechne. Vorhallem eine Formel für den eingeschwungenen Zustand würde mich interessieren. Abei auch noch ein Bild wie ich die Spannungen mithilfe der ersten 3 Perioden mal itteriert habe.
Die einzelnen Extrempunkte kannst du durch wiederholte Anwendung der allgemeinen Lade-/Entladeformel Beitrag "Re: Problem mit NE555 und Astabiler Kippstufe" berechnen. Das funktioniert für beliebige High-/Low-Spannungen und -Zeiten. Du wirst erkennen, dass dabei eine geometrische Reihe entsteht, die man mit der entsprechenden Summenformel zusammenfassen kann. Damit kannst du direkt das n-te Maximum oder das n-te Minimum für beliebige n ausrechnen. Um die Extrema im eingeschwungenen Zustand zu berechnen, bildest du daraus die Grenzwerte für n gegen unendlich. Bist du nur an den Ergebnissen im eingeschwungenen Zustand interessiert, rechnest du mit der Lade-/Entladeformel allgemein (ohne für die noch unbekannten Werte Umin und Umax Werte einzusetzen) Umax(Umin) (Ladevorgang) und Umin(Umax) (Entladevorgang) aus. Dieses lineare Gleichungssystem löst du nach Umin und Umax auf.
Geometrische Reihe wäre doch summe(a0k^n) . Entladekurve würde darauf passen lade nicht. Kannst du mir ein zahlenbeispiel geben. Lineares gleichungssystem in 100 Jahren nicht, oder ich weiß absolut nicht was du meinst.
@Yalu Die RC-Schaltung mit dem NE555 passt nicht zur Frage. Hier geht es um ein Tiefpassfilter. Details im Bild. Die .asc Datei ist für LTspice. h1 = EXP(-Tp/Tau) h2 = EXP(Tw/Tau) V2 = Vcc*h1*(h2-1)/(1-h1) V1 = V2/(h1*h2) Vf_pp = V1-V2 Gruß Helmut
:
Bearbeitet durch User
Helmut S. schrieb: > @Yalu > Die RC-Schaltung mit dem NE555 passt nicht zur Frage. > > Hier geht es aber um eine Tiefpassfilterung. > > Details im Bild. Die .asc Datei ist für LTspice. > > h1 = EXP(-Tp/Tau) > h2 = EXP(Tw/Tau) > V2 = Vcc*h1*(h2-1)/(1-h1) > V1 = V2/(h1*h2) > Vf_pp = V1-V2 > > Gruß > Helmut Danke aber das bringt mir auch nichts mit Simulation. Würde mich interessieren wie Yalu auf auf die geometrische Reihe kommt denn eine solche hat als wenn die Basis e ist den Grenzwert unendlich.. Deshalb was meint er?
Da stehen doch Formeln. mit denen kann man genau das ausrechnen was du gefragt hast.
Oh sorry Was ist tp was ist tw? Ist das für den eingeschwungenen Zustand? Weist Du was Yalu mit der geometrischen Reihe meinte.
Jan R. schrieb: > Lineares gleichungssystem in 100 Jahren nicht, oder ich weiß absolut > nicht was du meinst. Das sind die beiden Gleichungen:
U_low, t_low, U_high und t_high definieren das Eingangsrechtecksignal, U_min und U_max die beiden Extremwerte. Die Lösung dürfte so ähnlich aussehen wie das, was Helmut gepostet hat. Das mit der geometrischen Reihe ist mir gerade zuviel Tipparbeit :) Vielleicht morgen ... Helmut S. schrieb: > @Yalu > Die RC-Schaltung mit dem NE555 passt nicht zur Frage. Es ging mir nicht um die Schaltung, sondern nur um diese Formel:
Es wäre wahrscheinlich besser gewesen, einfach die Formel zu kopieren, was ich jetzt sowieso getan habe ;-)
:
Bearbeitet durch Moderator
Yalu X. schrieb: > Das mit der geometrischen Reihe ist mir gerade zuviel Tipparbeit :) > Vielleicht morgen ... Wäre auf jedenfall sehr nett. >
So, jetzt kommt die Berechnung des n-ten Spannungsminimus und -maximums des Ripple-Signals: Das Eingangsrechtecksignal habe für die Zeitdauer t_H die Spannung U_H und für die Zeitdauer t_L die Spannung U_L und beginne mit einer H-Phase. Die Spannungsminima liegen an den Zeitpunkten t=(t_H+t_L)·i (i=0,1,2,…) und sind mit U_min,i bezeichnet. Die Spannungsmaxima liegen an den Zeitpunkten t=t_H+(t_H+t_L)·i (i=0,1,2,…) und sind mit U_max,i bezeichnet. Der besseren Lesbarkeit wegen werden folgende Abkürzungen eingeführt:
Zwischen den Extrema U_min,i und U_max,i findet ein Ladevorgang, zwischen U_max,i und U_min,i+1 ein Entladevorgang statt. Nach der Lade-/Entladeformel aus meinem letzten Beitrag ist (etwas umgeformt):
Erhöht man in Gleichung (1) den Index i um 1, erhält man
Einsetzen von (2) in (3) und von (1) in (2) ergibt
Die Teilausdrücke a_max, a_min und b sind dabei konstant, so dass diese Gleichungen die rekursive Berechnung von U_max,n und U_min,n mit geringen Aufwand ermöglichen. Um zu erkennen, wie man die Gleichungen entrekursivieren kann, schreibt man am besten die ersten paar Ergebnisse für U_max,n allgemein auf:
usw. Für U_min,n sehen die Terme entsprechend aus. Allgemein kann man also schreiben:
Der penibel veranlagte Leser möge die Richtigkeit dieser Gleichungen per vollständiger Induktion nachweisen :) Die Summen über b^i sind geometrische Reihen und lassen sich auch ohne Summenzeichen schreiben:
Die zweite Gleichung lässt sich direkt so verwenden. U_min,0 ist dabei die Kondensatorspannung zu Beginn und wird im folgenden einfach mit U_0 bezeichnet. Wird mit entladenem Kondensator gestartet, ist U_0=0. In der ersten Gleichung muss das zunächst unbekannte U_max,0 aus U_0=U_min,0 bestimmt werden, was mittels Gleichung (1) geschieht. Die Maxima und Minima können somit mit folgenden Formeln direkt berechnet werden:
Im eingeschwungenen Zustand, also für n→∞, wird b^n=0 (wegen 0<b<1). Übrig bleibt
Um diese Formeln auf ihre Richtigkeit zu überprüfen, habe ich für ein paar "krumme" Parameter die ersten vier Minima und Maxima sowie das Minimum und Maximum im eingeschwungenen Zustand durch ein kleines Python-Programm berechnen lassen und die entsprechende Schaltung mit LTspice simuliert. Die Ergebnisse stimmen auf mindestens 8 Stellen überein :)
1 | from math import * |
2 | |
3 | t_L = 1.5e-3 |
4 | t_H = 0.5e-3 |
5 | tau = 10e3 * 100e-9 |
6 | U_L = -3 |
7 | U_H = 8 |
8 | U_0 = 5 |
9 | |
10 | E_L = exp(-t_L/tau) |
11 | E_H = exp(-t_H/tau) |
12 | E_LH = exp(-(t_L + t_H)/tau) |
13 | a_max = (1 - E_H) * U_H + (E_H - E_LH) * U_L |
14 | a_min = (1 - E_L) * U_L + (E_L - E_LH) * U_H |
15 | b= E_LH |
16 | |
17 | |
18 | print('———————————————————————') |
19 | print('n Umin Umax') |
20 | print('———————————————————————') |
21 | for n in range(4): |
22 | U_max = a_max * (1 - b**n) / (1 - b) + b**n * ((1 - E_H) * U_H + E_H * U_0) |
23 | U_min = a_min * (1 - b**n) / (1 - b) + b**n * U_0 |
24 | print('%d %10.7f %10.7f' % (n, U_min, U_max)) |
25 | |
26 | u_min_inf = a_min / (1 - b) |
27 | u_max_inf = a_max / (1 - b) |
28 | print(': : :') |
29 | print('∞ %10.7f %10.7f' % (u_min_inf, u_max_inf)) |
30 | print('———————————————————————') |
Ausgabe:
1 | ——————————————————————— |
2 | n Umin Umax |
3 | ——————————————————————— |
4 | 0 5.0000000 6.1804080 |
5 | 1 -0.9515741 2.5705959 |
6 | 2 -1.7570321 2.0820609 |
7 | 3 -1.8660389 2.0159449 |
8 | : : : |
9 | ∞ -1.8831004 2.0055966 |
10 | ——————————————————————— |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.