Gast
#6882409
Hallo! Hier -> (Beitrag "Zeitverhalten von Stromverstärker optimieren") hatte ich nach Möglichkeiten zur Optimierung des Zeitverhaltens einer spannungsgesteuerten Stromquelle gefragt. Die Antworten und Hinweise haben mir geholfen und der Verstärker ist in Betrieb. Ich hatte nun noch eine weitere Idee das Zeitverhalten zu verbessern, die technisch von einer ganz anderen Seite kommt und insofern vielleicht einen neuen Thread rechtfertig. Die anhängende Abbildung zeigt, wie für einen Spannungssprung am Eingang des Verstärkers (unteres Diagramm) der ausgegebene Strom folgt (oberes Diagramm). Mit geht es nun darum, einen möglichst schnellen Sprung ohne großes Überschwingen am Ausgang zu bekommen. Ich glaube, dass ich die analogen Möglichkeiten der Frequenzkompensation in der Rückkopplung erstmal praktisch ausgeschöpft habe (gehen wir hier zumindest mal davon aus, darum ging es in o.g. Thread). Mein Gedanke war nun: die Steuerspannung für die Stromquelle (unteres Diagramm) wird von einem halbwegs schnellen (100 ks/sec) und hochauflösenden (16 bit) DA-Interface per PC erzeugt. Da das System insgesamt open-loop läuft, könnte ich das Steuersignal im Vorhinein digital filtern, bevor es analog auf den Treiber geht. Es müsste ja möglich sein, aus der vorliegenden Sprungantwort eine Art Dekonvulotionsfilter zu berechnen, das den Overshot noch etwas minimiert. Mal ganz naiv für ein Rechteck gedacht: im Moment des Overshots müsste das Steuersignal ein entsprechendes Tal haben (in der Zeit), das den Overshot abfängt. Das Ganze müsste man doch eigentlich in einem Filter abbilden können, der dann natürlich auch für andere Signalformen funktioniert. Was ich mir dazu bisher angelesen habe (bin Laie!), funktioniert leider in der Praxis nicht. Wenn ich es richtig verstanden habe, überträgt man den gewünschten und tatsächlichen Signalverlauf in die Frequenzdomäne (per FFT), teilt die beiden Spektren durcheinander und transformiert dann zurück in die Zeit (inverse FFT), wodurch man den erforderliche Filterkern erhalten sollte. Ich habe ganz naiv mal folgendes in Matlab gemacht, mein Filterkern besteht dann aber nur aus Rauschen.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
Falls die Grundidee überhaupt richtig ist (ist sie?), ist meine Implementierung vermutlich falsch ... Kann mir da jemand etwas unter die Arme greifen? Vielen Dank!
