kathmandu
Full Member level 5

Hello,
I'm trying to implement a reliable feed back control loop for the output voltage of a sine wave inverter.
The inverter has a Mosfet full-bridge driven by some PMW signals generated by an MCU.
I have defined an extended look-up table to set the output voltage (from 33% to 97% of the maximum amplitude in steps of 0.5%). Thus I have a bidimensional array with 129 rows (the above mentioned attenuation) and 100 cols (samples per half wave).
I'm reading the output voltage using the MCU built-in 12 bit ADC.
First scenario: I have defined two thresholds (Vmin=224 and Vmax=226). Every time I check the output voltage, if its value is outside this range I increment/decrement the array index to increase/decrease the output voltage.
Second scenario: I have only defined a single threshold (Vout=225) and every time I check the output voltage, I increment/decrement the array index if the value I'm reading is smaller/larger than that fixed threshold.
The problem is I don't get a fast response (thus I got a poor voltage regulation) no matter what scenario I've used.
I want to avoid intensive computing hence I have defined that large(?) array. Maybe I need even smaller steps (0.25%)?
For now, a single step means +/-0.5% x 225 Vrms = 1.125 Vrms. The output voltage seems to stay in range but it fluctuates very quick (I'm using a halogen lamp for testing and it's flickering quite annoying).
Could anyone suggest any fix?
I'm trying to implement a reliable feed back control loop for the output voltage of a sine wave inverter.
The inverter has a Mosfet full-bridge driven by some PMW signals generated by an MCU.
I have defined an extended look-up table to set the output voltage (from 33% to 97% of the maximum amplitude in steps of 0.5%). Thus I have a bidimensional array with 129 rows (the above mentioned attenuation) and 100 cols (samples per half wave).
I'm reading the output voltage using the MCU built-in 12 bit ADC.
First scenario: I have defined two thresholds (Vmin=224 and Vmax=226). Every time I check the output voltage, if its value is outside this range I increment/decrement the array index to increase/decrease the output voltage.
Second scenario: I have only defined a single threshold (Vout=225) and every time I check the output voltage, I increment/decrement the array index if the value I'm reading is smaller/larger than that fixed threshold.
The problem is I don't get a fast response (thus I got a poor voltage regulation) no matter what scenario I've used.
I want to avoid intensive computing hence I have defined that large(?) array. Maybe I need even smaller steps (0.25%)?
For now, a single step means +/-0.5% x 225 Vrms = 1.125 Vrms. The output voltage seems to stay in range but it fluctuates very quick (I'm using a halogen lamp for testing and it's flickering quite annoying).
Could anyone suggest any fix?