19.08.2014, 08:42 PM
Ich kenn nur diese vier Takte, die ich Christian beschrieben hab. "PWM" mag ich dazu nicht sagen. Ist ja nur einfach BJT anschalten und nen Timer aufsetzen (auf "t_on"). Wenn der Timer abgelaufen ist, gibts nen Interrupt und ich schalte den BJT wieder aus. Erneut Timer anstarten, diesmal mit "t_off". Und das gleiche Spiel dann danach mit dem zweiten Leistungsschalter.
Während des einen Arbeitstaktes wird - gleich zu Beginn und synchron- der Strom der Spule gemessen. Mit voller 10-Bit-Auflösung. Während des anderen Arbeitstaktes - ebenso gleich zu Beginn und synchron - die Ausgangsspannung.
So krieg ich während eines Zyklusses jeweils eine Strom- und eine Spannungsmessung von der ISR, hab also immer frische Werte im Buffer. Der Vordergrund-Formel-Cruncher verrechnet diese Werte und die vor dem Wandlerstart ermittelte Batteriespannung und Sollleistung und bestimmt mit großem 32-Bit-Rechenaufwand "t_on" und "t_off".
Der PI-Regler muss natürlich an diese Rechenzeit angepasst werden. Es spielt sich aber alles noch im Millisekundenbereich ab. Für Christians LED-Betrieb sollte es allemal reichen.
Während des einen Arbeitstaktes wird - gleich zu Beginn und synchron- der Strom der Spule gemessen. Mit voller 10-Bit-Auflösung. Während des anderen Arbeitstaktes - ebenso gleich zu Beginn und synchron - die Ausgangsspannung.
So krieg ich während eines Zyklusses jeweils eine Strom- und eine Spannungsmessung von der ISR, hab also immer frische Werte im Buffer. Der Vordergrund-Formel-Cruncher verrechnet diese Werte und die vor dem Wandlerstart ermittelte Batteriespannung und Sollleistung und bestimmt mit großem 32-Bit-Rechenaufwand "t_on" und "t_off".
Der PI-Regler muss natürlich an diese Rechenzeit angepasst werden. Es spielt sich aber alles noch im Millisekundenbereich ab. Für Christians LED-Betrieb sollte es allemal reichen.