Gast
#2046186
Hallo zusammen, ich hätte da ein Problem, bei dem ich mit meinem aktuellen Wissensstand etwas überfordert bin. Und zwar muss ich mit meinem Mikrocontroller einen Motor simulieren. Ich erklär erstmal kurz die Randbedingungen. Mein µC bekommt einen Drehzahlsollwert von 0-5V. Dieser Wert wird alle 2ms (also 500Hz) aktualisiert und zwischen drin konstant gehalten. Diesen Wert wollte mit 2Khz abtasten. Zum Filtern vor dem ADC habe ich ein RC-Glied 1. Ordnung mit einer Eckfrequenz von etwa 720 Hz. Aus dieser eingelesenen Spannung berechnet der µC eine Drehzahl. Ausgehend von dieser Drehzahl simuliert der µC einen Inkrementalgeber. Soweit so gut. Diese eingelesenen Werte muss ich ja jetzt in irgendeiner Form filtern und glätten um mit meinem Inkrementalsignal nicht wild durch die Gegend zu springen, die Regelung des (simulierten) Motors soll ja weiterhin funktionieren. 1) Bei einer maximalen Drehzahl von 3000U/min muss meine Funktion, die die Inkremente des Gebers simuliert, diesen Drehzahlwert maximal mit 50Hz einlesen. Ist das korrekt? Oder bin ich damit schon auf dem Holzweg? Alternativ könnte man auch die 500Hz heranziehen. Dann würde ich den überabgetasteten Sollwert erstmal durch Mittelwert Bildung glätten. Also jeweils 4 Werte ergeben einen neuen Drehzahlsollwert. 2) Wie kann ich den Drehzahlsollwert nun filtern? Ich muss damit ja irgendwie die Trägheit des Motors simulieren, welche ja abhängig von der Last ist (die durchaus recht groß sein kann). Diese Last soll kein Parameter werden, der veränderbar ist. Da die Regelung in einem relativ weiten Bereich funktionieren muss (keine Last bis große Last), dürfte die simulierte Trägheit ja relativ unkritisch sein, falls sie in der richtigen Größenordnung liegt. Seht ihr das auch so? 3) Meine Filterung müsste doch theoretisch abhängig von der Höhe des Sollwertssprunges sein, oder? Einem Sprung von 200 auf 500 Umdrehungen muss ich doch sehr viel schneller folgen als einem Sprung von 100 auf 1500 Umdrehungen. Wie kann man soetwas realisieren? Grundsätzlich die Werte erstmal Filtern und glätten, aber pro neuem Wert nur eine gewisse Erhöhung der Drehzahl erlauben? Oder kann man eine Sprunghöhenabhängigkeit in das Filter einbauen? 4) Mit welchem Filter soll ich nun da ran gehen? Gleitender Mittelwert? Oder lieber mit unterschiedlichen Filterfrequenzen? Ich hoffe Ihr könnt mir ein wenig weiterhelfen. Wäre euch dafür sehr dankbar! Liebe Grüße Sebastian