Hallo, ich möchte zu Lehrzwecken einen Bandpass-Filter 2. Ordnung digitalisieren. Zunächst habe ich aus der Schaltung das Strukturbild gezeichnet und daraus die Übertragungsfunktion raus gelesen. Diese ging Konform mit der Übertragungsfunktion in Wikipedia für den Bandpass. Hier habe ich lediglich mit w^2 erweitert, damit ich nun meine Beobachtbarkeitsnormalform aufstellen kann. Kommen wir zu der DGL: u := Eingang v := Ausgang x1' = -w^2 * x1 x2' = x1 - 2Dw * x2 + 2Dw*u v = x2 Quellcode vom Euler (C - Arduino): -------------------------------------- x_raw = analogRead(eingang); u = (3.30*x_raw)/ 1023; //Umrechnung in Volt 10 Bit -> 3.3v = 1024 /* BEOBACHTBARKEITS NORMAL FORM UND EULER*/ x1_neu = x1_alt + dt * (-(w * w) * x2_alt); x2_neu = x2_alt + dt * (x1_alt - 2 D w x2_alt k + 2 D w * u); y = x2_alt; /* BEOBACHTBARKEITS NORMAL FORM UND EULER*/ x1_alt = x1_neu; x2_alt = x2_neu; Serial.println(y); Diese habe ich nun mit dem Euler-Polygonzug programmiert (Arduino) und fange nun ein Signal an einem der Analogpins ein. Auch habe ich parallel in Matlab das System nachgebildet. Jetzt ergibt sich folgendes Problem: Beim EulerPolygon schwingt sich der Ausgang V auf. Sowohl in Matlab als auch bei Arduino und geht die Amplitude -> oo Erst bei Runge-Kutta passiert das nicht. Da wird dann tatsächlich die Kreisfrequenz w rausgefiltert nach einem kurzen Einschwingvorgang. Die Periode bleibt stabil für alle Zeiten. 1) Nun ist meine Frage: Warum ist das so? Warum eignet sich Euler hier nicht? 2) Wie würde mein Beispiel in C mit Runge Kutta aussehen? Ich weiß, dass Frage zwei eigentlich aus Eigenbemühungen zu beantworten ist. Allerdings würde mir die Lösung zu meinem Beispiel einiges an Zeit ersparen was das Verständnis dessen angeht (Die Theorie dahinter kenne ich bereits im Grundzug - Mir fehlt nur das konkrete Beispiel)
MindCode schrieb: > 1) Nun ist meine Frage: Warum ist das so? > Warum eignet sich Euler hier nicht? Ohne Dein Problem (Bandpaß) näher zu kennen: Der (explizite) Euler ist nicht unbedingt stabil. Probier's mal mit kleinerer Schrittweite.
Bei einer kleineren Schrittweite bleibt der Ausgang y stabil. Jedoch steigt dessen Amplitude mit Erhöhung der Grenzfrequenz. Zu erwarten wäre allerdings bei 50 Hz ein Maximum und für alle anderen Frequenzen wäre der Ausgang y minimal. Das ist leider nicht der Fall. Bandpaß Übertragungsfunktion, siehe Anhang! Sollte aber bekannt sein...
Hab ich irgendwas falsch gemacht, was meine Kommunikation bzw. den Informationsaustausch mit euch betrifft? Ich denke Filter zu digitalisieren ist kein Hexenwerk und ein jeder hier, wird damit schon ordentlich Erfahrung gesammelt haben. Deswegen ist es mir schleierhaft, wieso niemand so recht Antworten möchte. Daher gehe ich davon aus, dass der Fehler irgendwo bei meinem Umgang mit euch liegen muss. Ich habe leider noch nicht die Erfahrung in diesem Themengebiet und es gibt manchmal Sachverhalte, da muss man sich zwangsläufig helfen lassen.
Du fragst falsch. Ich habe keinen Schimmer, was Du willst. http://www.tty1.net/smart-questions_de.html Cheers Detlef
Wenn es ans eingemachte geht, ist "Numerical Recipes" die ultimative Anlaufstelle. http://www.nr.com/ Hier als Auszug das Kapitel zu Runge Kutta: http://www.aip.de/groups/soe/local/numres/bookfpdf/f16-1.pdf
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.