PDA

View Full Version : Thyristor controlled DC Power Supply.



sougata
- 16th February 2007, 08:03
Hi,

I am reworking on my thyristor controlled power supply. I have previously used a sliding control method with deadband to regulate the output voltage. In this scheme I measure the output voltage and increase or decrease (fine or course depending upon the % error value) to obtain stable voltage. This works okay for steady load such as battery charging. However for a heavy load switching on-off the system experiences hunting. I have used a linear current transfer lookup table for firing angle computation found here http://www.tinaja.com/glib/muse109.pdf .

I would like to improve the control algorithm for better response and less overshoots (when a heavy load is removed) and undershoot (when a heavy load is connected).

I am using a Full Cycle Half controlled Bridge followed by DC choke and capacitors. I am measuring input supply, output voltage and current. The firing scheme is interrupt based. The firing angle is computed every cycle and on a zero cross it is loaded (offseted) into timer1. When timer1 rollovers the thyristors are fired. The zero cross is high priority and all the interrupt routines in asm utilizing shadow registers. My control range is between 5 degree and 150 degrees. BTW I am using a 18F452 @ 10Mhz.

My previous thread on a printer grabber went unanswered I hope I get replies on this topic.

Ingvar
- 16th February 2007, 09:59
Hi Sougata,

I'd try adding some control based on the output current. When you apply a heavy load you'll see a sudden increase in the output current. Removing it will ofcource give the opposite. When you detect theese changes you know you will get a over or undershoot.

If you're lucky it might be as simple as this.

By subtracting the previous currentsample from the new you'll get a number reflecting the "rate of change"(i think it's derivetive in english). Exactly how this value will correlate with the phase angle i don't know, but it will give you a good startingpoint. Multiply this value with a scalingfactor(needs to be "tuned to your system" and add/subtract the result to your phaseanglevalue. Perhaps you'll need a lookuptable but i'd start with the linear approach(scalingfactor).

I hope i made atleast some sense. It's difficult to describe what i'm thinking in a non native language.

If you submit your code I might be able to give you some more pointers. It's difficult to give advise when I don't know what you've already done.

/Ingvar

sougata
- 16th February 2007, 15:04
Dear Ingvar,

Thank you for reply. I am already sensing current and doing a foldback limiting. While a load is disconnected I set a flag and decrease the voltage (by increasing firing angle) to well beyond. Then I increase the output voltage till it is within range. Ours is a 50Hz supply so every computational cycle is reflected after 10 mili seconds. The more close my algo can predict the more faster response and stability.

Ingvar
- 16th February 2007, 16:47
Well, it should all be down to finetuning your system then. I assume you use good capacitors with low internal resistance and measure the current after them.

Can't say much more without seeing schematics and code.

sougata
- 17th February 2007, 04:54
Dear Ingvar,

Thanks for the reply. I have just finished assembling my test rig. The transformer used has a secondary of 40 volts AC / 20 Amps followed by a semikron monoblock. The rectified DC goes to a 1.8mH DC Choke followed by 4 x 4700uF Capacitors. Nominal output voltage for the system is 28 volts DC. The thyristor monoblock is triggered using 1:1:1 pulse transformer. Pulses are generated by the CCP module with 20% duty cycle @ 4KHz. Circuit Breakers are used to save the system from overloads and shortcircuit. A shunt based current monitoring scheme has been used with a PGA for the Shunt Amplifier. In lower current mode the PGA is controlled by the MCU to provide additional x10 amplification. This let me manage the current readout accuracy in the lower slope.

I am rewriting the entire code and will take two days to restructure it. I would try to implement PID control as suggested by you. The system already had a crude form of PI control so your suggestions include the derivative part as well. I need to fine tune the PI constants so I would be doing a dump on the PC while the system is running. The controller board has the following:

1. 2 x 3 Digits 7 Segment Display for Displaying Voltage and Current.
2. 2 x 16 Line LCD for Displaying System Status.
3. Four Analogue Inputs a) Output Voltage, b) Output Current, c) Input Voltage, d) Fault monitoring.
4. RS232 @ 115kbps

Display update and adc aquisitions are state machine style and always going on in the background.

Perhaps I don't need to modify my hardware arrangement. Only pondering on the control algorithm to make it better. (That was the original idea of the post)

ronsimpson
- 17th February 2007, 08:09
I speak analog, digital, software and some English.
You say hunting (digital) and I say oscillating (analog). If I have oscillating or ringing I add phase reversal at that frequency. My friends that speak DSP and think time (not frequency) have a word that I cannot remember; sorry I cannot say what they do in this application. I will try in digital. Error amplifiers I make treat errors at the “ringing” frequency (time period) different than errors at a slower frequency. I see I need to get on a different computer and draw pictures.

Change subject!

Current feedback. I have built too many 35,000 volt supplies. They have a potential overshoot problem.
First I worked on the voltage feed back loop and got it as close as possible. This loop has delay and phase delay. 35,000kv=full load, 35,010kv= no load, with overshoot.
Next plot load current verses duty cycle or phase angle (in your case). Example 1A=50% duty cycle and 0.1 amp = 5% duty cycle. Then add a feed back loop with out delay (very fast). If the load is switching from 1 amp, 0.1 amp, 1 amp the duty cycle switches 50%, 5%, 50% in one cycle each. My current loops are not built for accuracy! Maybe the 50% should be 55%. In this case the load starts at 0.1 amps and 5%. The load jumps to 1 amp and the duty cycle jumps to 50% in one cycle, but it should have gone to 55%. The voltage loop sees the small error and slowly adds the extra 5%. When the load drops to 0.1 the very next cycle will be back at 5% with out the error amplifier time to respond. In this example the error amplifier effects are reduced by 10:1.

I have millions of “current mode” power supplies in production where the error amplifiers see only 2% of the load variations. I need to think how to get your supply in truly current mode. Too much for my old head today! I think this is too complex to talk about this way.

sougata
- 17th February 2007, 08:40
Dear Ron,

Since the system is thyristor control the closed loop control responds every AC cycle. The thyristors used are not GTOs so need to wait for the coming cycle. A sliding control method does give good results. Depending on the current consumption the system switches to constant voltage or constant current (foldback type) mode. The line voltage is also not constant. It it were a HF IGBT based system then PID control works great. As for sliding (call it a servo) control the system increases/decreases the firing angle to approach minimum error (deadband inserted). I have seen motor controllers which respond really quick (less than 6 cycles) to a motor start stop.