Hallo zusammen, ich habe angehangenes Filter (1kHz) simulatorisch "gebastelt". Leider kann ich die Ü-Fkt zur mathematischen Ermittlung der Grenzfrequenz nicht aufstellen. Kann mir jemand Denkanstöße liefern? Meine Uni-Zeit liegt echt schon lang zurück. Ich bekomms leider nicht mehr hin. Gruß Steffen
Aus dem Buch "Aktive Filter", Herpy, Berka Formel angepasst für Verstärkung 1 F(jw) = 1/(1 +jw*(R1*C1+(R1+R2+R3)*C3) +(jw)^2*(R1*(R2+R3)*C1*C3 + R3*(R1+R2)*C2*C3) + (jw)^3*R1*R2*R3*C1*C2*C3)
Hallo Helmut, danke dir erstmal. Kannst du mir noch weiterhelfen, wie ich daraus die Grenzfrequenz bestimme. Ich habe mittlerweile auch die Ü-Fkt aufgestellt. Sieht etwas anders aus als deine. Gruß Steffen
Die Grenzfrequenz ergibt sich, wenn man den Betrag der Übertagungsfunktion nimmt und diese gleich 1/sqrt(2) setzt. Dann das Ganze nach w(omega) bzw f auflösen. Diese Berechnung erfodert das Lösen einer Gleichung 3. Grades. Normalwerweise geht man aber anders vor. Man überlegt sich ob man Bessel- oder Butterworth-Funktion haben will und die gewünschte Grenzfrequenz. Dann gibt man am besten C1, C2 und C3 vor und berechnet die Widerstände. Diese Berechnung erfordert das Lösen eines nichtlinearen Gleichungssystems (Matlab). Da man die so berechneten Widerstände nicht exakt mit den Werten kaufen kann oder will, simuliert man dann mit den gewählten Widerständen mit LTspice um die Abweichung im Frequenzgang zu überprüfen. In der Literatur findet man auch geschlossene Lösungen(Formeln) bei denen durch Vorgabe gleicher Widerstände die Kapazitäten berechnet werden. Allerdings muss man dann eventuell "krumme" Kapazitätswerte in Kauf nehmen.
:
Bearbeitet durch User
Hallo Helmut, die Widerstände und Cs habe ich ja sozusagen simulatorisch bereits festgelegt. Was ich nun brauche ist eigentlich nur noch eine Funktion, mit der ich für jede Amplitude+Frequenz der Eingangsspannung die Ausgangsspannung berechnen kann. Geht das dann einfacher? Gruß Steffen
F(jw) = 1/(1 +jw*(R1*C1+(R1+R2+R3)*C3) +(jw)^2*(R1*(R2+R3)*C1*C3 + R3*(R1+R2)*C2*C3) + (jw)^3*R1*R2*R3*C1*C2*C3) |F(w)| = 1/sqrt(Realteil^2+Imaginärteil^2) |F(w)| = 1/sqrt( (1-w^2*(R1*(R2+R3)*C1*C3 + R3*(R1+R2)*C2*C3))^2 + (w*(R1*C1+(R1+R2+R3)*C3)-w^3*R1*R2*R3*C1*C2*C3)^2 ) w = 2*pi*f Das muss man wissen um obige Formel für den Betrag zu erstellen. (jw)^2 = -w^2 (jw)^3 = -j*w^3
:
Bearbeitet durch User
Im Anhang findest du die Formel für die Grenzfrequenz in Python-Syntax. Mit deinen Werten für die Widerstände und Kondensatoren ist fg = 915,2637 Hz Das meint auch LTspice, wenn man einen nahezu idealen Opamp nimmt oder ihn durch eine E-Quelle mit Verstärkung 1 ersetzt.
> Im Anhang findest du die Formel für die Grenzfrequenz in Python-Syntax.
Mit welchem Programm(Maple, Maxima,...) wurde diese Formel für die
Grenzfrequenz erstellt?
:
Bearbeitet durch User
Hallo Yalu, die Formel ist ja mächtig. Kannst du es kurz erklären (ein bisschen Syntax). Ich verstehe python leider nicht.
Helmut S. schrieb: > Mit welchem Programm(Maple, Maxima,...) wurde diese Gleichung erstellt? Programm? Ich habe gerade eine Schubkarre organisiert, um damit die vollgeschriebenen Zettel zum Altpapiercontainer zu bringen ;-) Nein, Spaß beiseite: Ich hab's vom Fräulein Maxima rechnen lassen. Man kann da aber sicher noch ein paar Dinge etwas vereinfachen.
bzw. Warum liefert mir folgendes Tool eine höhere fg ? Ähnlich siehts auch beim TI Tool aus. Wenn ich messe, komme ich auf die von dir berechnete fg... http://sim.okawa-denshi.jp/en/Sallen3tool.php
Steffen schrieb: > Kannst du es kurz erklären (ein bisschen > Syntax). Ich verstehe python leider nicht. So viel zu erklären gibt es da nicht: r1, r2, r3, c1, c2 und c3 sind die Werte der passiven Bauteile. +, -, * und / sind die Operatoren für die vier Grundrechenarten. ** ist der Potenzoperator und sqrt() die Quadratwurzelfunktion. An zwei Stellen tauchen auch noch Kubikwurzeln auf, die hier als **(1/3) geschrieben werden.
Hi Yalu, ich gehe davon aus, dass du die Formel nicht extra für mich eingegeben haszt ;) Die ist ja echt ziemlich mächtig. Wie bist du auf die Formel gekommen, bzw. woher kommt sie? Danke dir erstmal! Gruß Steffen
Steffen schrieb: > Warum liefert mir folgendes Tool eine höhere fg ? Dieses Tool berechnet die Polstellen der Übertragungsfunktion bzw. die Beträge der zugehörigen Frequenzen. Der erste Pol entspricht aber nicht automatisch der 3dB-Grenzfrequenz des Gesamtfilters. Das ist nur dann näherungsweise der Fall, wenn der zweite Pol weit genug vom ersten entfernt liegt, so dass der Frequenzgang im Bereich des ersten Pols durch den zweiten nicht oder nur unwesentlich beeinflusst wird. Steffen schrieb: > Wie bist du auf die Formel gekommen, bzw. woher kommt sie? Wie schon oben geschrieben, habe ich dafür das Computer-Algebra-System (CAS) Maxima verwendet: http://maxima.sourceforge.net/ Dazu gibt es noch eine Oberfläche, die das Arbeiten damit etwas komfortabler macht: http://andrejv.github.io/wxmaxima/ Ich habe die von Maxima ermittelte Formel in ein Python-Programm kopiert, weil ich davon ausging, dass mehr Leute Python als Maxima installiert haben.
:
Bearbeitet durch Moderator
Ah OK. Ich werd mir das Tool mal herunterladen. Kannst du mir die maxima sources zur Verfügung stellen? Dann habe ich gleich mal was "reales" zum rumspielen. Wie hast du es gerechnet, damit du das Problem mit den zu eng beieinanderstehenden Polstellen nicht hast? Gruß Steffen
PS: Ich habs eben mal ausprobiert. Wenn man die Pole näher zueinander bringt, stimmt es mit der Simulation überein. Komisch. Sollte es nicht anders herum sein?
Steffen schrieb: > Ah OK. Ich werd mir das Tool mal herunterladen. Kannst du mir die maxima > sources zur Verfügung stellen? Dann habe ich gleich mal was "reales" zum > rumspielen. Ich habe die Quelldatei mit ein paar Kommentaren versehen und als Maxima-Batch- und als wxMaxima-Datei angehängt. Erstere startest du von der Kommandozeile mit
1 | maxima -b sallen3.mac |
letztere lädst du mit "File" -> "Open..." in wxMaxima und startest die Berechnung mit "Cell" -> "Evaluate All Visible Cells". > Wie hast du es gerechnet, damit du das Problem mit den zu eng > beieinanderstehenden Polstellen nicht hast? Genau so, wie es Helmut oben geschrieben hat: Helmut S. schrieb: > Die Grenzfrequenz ergibt sich, wenn man den Betrag der > Übertagungsfunktion nimmt und diese gleich 1/sqrt(2) setzt. Dann das > Ganze nach w(omega) bzw f auflösen.
Super, danke dir. Ich habe es nachvollzogen. Morgen werde ich versuchen es nochmals händisch zu lösen! Vielen Dank nochmal!
Herleitung der -3dB Grenzfrequenz F(jw) = 1/(1 +jw*(R1*C1+(R1+R2+R3)*C3) +(jw)^2*(R1*(R2+R3)*C1*C3 + R3*(R1+R2)*C2*C3) + (jw)^3*R1*R2*R3*C1*C2*C3) |F(w)| = 1/sqrt(Realteil^2+Imaginärteil^2) |F(w)| = 1/sqrt( (1-w^2*(R1*(R2+R3)*C1*C3 + R3*(R1+R2)*C2*C3))^2 + (w*(R1*C1+(R1+R2+R3)*C3)-w^3*R1*R2*R3*C1*C2*C3)^2 ) w = 2*pi*f -3dB Frequenz berechnen 1/sqrt(2) = 1/sqrt( (1-w^2*(R1*(R2+R3)*C1*C3 + R3*(R1+R2)*C2*C3))^2 + (w*(R1*C1+(R1+R2+R3)*C3)-w^3*R1*R2*R3*C1*C2*C3)^2 ) 1-w^2*(R1*(R2+R3)*C1*C3+R3*(R1+R2)*C2*C3))^2 + (w*(R1*C1+(R1+R2+R3)*C3)-w^3*R1*R2*R3*C1*C2*C3)^2 = 2 (1-w^2*d)^2 +(w*e-w^3*f)^2 = 2 x=w^2 x3 +x^2*(d^2-2*e*f)/f^2 + x*(e^2-2*d)/f^2 -1/f^2 = 0 Hier die Berechnung mit Scilab unter Anwendung der Cardanischen Lösungsformel für Gleichungen 3. Grades. Achtung diese untenstehende Berechnung erfordert das "double precision" Zahlenformat falls das jemand in irgend einer Programmiersprache implementiert. Der Grund ist dass die Variable D den Wert 10^47 erreicht. Matheprogramme rechnen schon in der Grundeinstellung mit double precision. Man beachte nthroot(,3). Die Funktion ^(1/3) liefert falsche Werte für negative Argumente. --------- Scilab code ---------- R1=15e3 R2=100e3 R3=30e3 C1=10e-9 C2=3.3e-9 C3=1e-9 d=R1*(R2+R3)*C1*C3 + R3*(R1+R2)*C2*C3 e=R1*C1+(R1+R2+R3)*C3 f=R1*R2*R3*C1*C2*C3 a=(d*d-2*e*f)/(f*f) b=(e*e-2*d)/(f*f) c=-1/(f*f) // Lösung der Gleichung 3. Grades mit der Cardanischen Formel // x^3 + a*x^2 + b*x + c = 0 p=(3*b-a*a)/3 q=2*a*a*a/27-a*b/3+c D=p*p*p/27+q*q/4 u=nthroot(-q/2+sqrt(D),3) v=nthroot(-q/2-sqrt(D),3) x=u+v-a/3 w=sqrt(x) f=w/(2*%pi) Ergebnis: f = 915.26369 Im Anhang ist die Datei(.asc) für die Simulation mit LTspice.
:
Bearbeitet durch User
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.