Selbsteinstellende Schleifen-Leistung

Hallo Jem,

wenn Du Fehler gefunden hast, wäre es gut wenn du kurz schreibst was und wo, damit wir das nachvollziehen können ohne jede Zeile anschauen zu müssen. Bei mir läuft der geregelte Sender seit geraumer Zeit ohne Probleme.

Gruß

Jürgen
 
Puh, das ist ja schon uralt :)

Hier nochmal das, wass ich schon vor ein paar Posts geschrieben habe:
Ich habe außerdem die sender.ino ein bissel umgeschrieben, um die eh schon verwendete RunningMedian.h weiter zu benutzen und die Regelparameter (hier ja lediglich die Abtast- und Mittelungszeiten der Strom- und Spannungswerte, sowie die Rate, mit der der I-Regler aufgerufen wird) unabhängig voneinander einstellbar gemacht. Außerdem, und das ist ganz wichtig, im Lademodus die Regelung deaktiviert, weil der I-Regler sonst in die Grenze reinläuft und dort dann bei Abschalten der Ladeschaltung auch startet.

Mit dem letzten meine ich den Windup-Effekt, der passiert, weil die Schleife abgeschaltet ist und der I-Anteil immer weiter versucht zu regeln. Schaltet man dann die Schleife wieder ein, startet der I-Anteil im Maximum und zieht die Spannung ziemlich stark hoch, bevor die Regelung wieder die Spannung verringert.

Außerdem hab ich den Code kommentiert.

Gruß,
Jem
 
Da ich mich jetzt auch wieder mehr mit meinem Mower beschäftige und gerade auch die Schleife einbauen will.
Habe ich mich damit mal beschäftigt.

Jetzt bin ich auf eine Idee gekommen wie man das noch etwas optimieren könnte, weis aber noch nicht ob es funktioniert.

Der MC33926 misst doch auch den Strom der von der Schleife aufgenommen wird.

Dieser wert wird zwar abgefragt aber nur in der Seriellen Konsole angezeigt. Diesen Wert könnte ich doch schon mal verwenden.

Die Einstellung über den DCDC Wandler finde ich zwar nicht schlecht aber könnte man statt dessen nicht die Ansteuerung
des MC33926 so ändern, das z.B. über einen Anlogen Pin die Leistung so gesteuert wird?

Laut pololu kann der MC auch mit einem Analogen Input angesterut werden https://github.com/pololu/dual-mc33926-motor-shield/blob/master/DualMC33926MotorShield.cpp


z.B so :
void powerContol(){
// pinFeedback gibt den schleifenstrom in A zurück 525 mV /A
// 5V / 1024 ADC counts / 525 mV per A = 9 mA per count
// 1 A = 112 * 9ma
if (pinFeedback > 120){
powerOut = powerOut-1;

}
if (pinFeedback < 110){
powerOut = powerOut+1;

}
}

Ich werde es mal die Tage testen.

Oder mache ich da einen Denkfehler ?
Gruss Stefan
 
Oben