Triac-controlled motor problem

Thread Starter

Matthewt

Joined Nov 9, 2020
15
Use a 4N35 optocoupler instead of the one you have.
Ok, just to help me increase my knowledge - what is the reasoning behind changing the optocoupler?

By the way, I want to thank everyone for their contributions and willingness to help. I feel like I've got a lot of study to do!
 

Dodgydave

Joined Jun 22, 2012
11,284
Ok, just to help me increase my knowledge - what is the reasoning behind changing the optocoupler?

By the way, I want to thank everyone for their contributions and willingness to help. I feel like I've got a lot of study to do!
Ideally you need to scope the zero crossing pulses and see what's happening, also the triac gate signal, but if you haven't got a scope then use well proven trigger circuits and zero crossing detection systems rather than design your own and failing.
 

MisterBill2

Joined Jan 23, 2018
18,167
One possible fix is a capacitor across terminals 1 and 2 of the opto-isolator, to keep any glitches from causing a problem. Or are you sending a trigger pulse every cycle of the line power? Some folks have stablized their controllers by adding an incendescent light bulb across the motor, to change the pure reactance into an impedance. That should be simple to try.
 

Ian0

Joined Aug 7, 2020
9,667
One possible fix is a capacitor across terminals 1 and 2 of the opto-isolator, to keep any glitches from causing a problem.
Not too sure that this is such a great idea. Think what happens if you increase the capacitance - the pulse gets shorter and shorter and eventually disappears. Best place for a capacitor is across the INPUT of the bridge rectifier, although it will delay the trigger point
Or are you sending a trigger pulse every cycle of the line power?
That's a problem if the mains is not exactly 50Hz - the output gets asymmetrical and you end up with net DC.
Some folks have stablized their controllers by adding an incendescent light bulb across the motor, to change the pure reactance into an impedance. That should be simple to try.
Definitely worth a try.
Is it a sensitive-gate triac?
The triac will switch off sometime AFTER zero-crossing, when the current reaches zero, because it is an inductive load.
The voltage then increases rapidly, the dV/dt can re-trigger a sensitive gate triac. That's the main reason for the snubber.
 

Ian0

Joined Aug 7, 2020
9,667
Just a thought - Is this an exercise in triac control, or is it a means to an end in speed-controlling the motor?
If the latter, have you thought of rectifying the mains, and running the motor from an IGBT chopper, and a fairly low PWM frequency (500Hz, perhaps)?
The software overhead is much reduced, all it requires is a single PWM output.
 

MisterBill2

Joined Jan 23, 2018
18,167
It is still not clear about the signal to the opto device. Is it a pulse to trigger at each cycle of the mains power, or is it a DC level that sets the firing point of the analog firing angle control?
AND how has the assumption that it is not a software spike been determined? It could easily be an excess interrupt that is part of the OS, and not a part of the application code. I have seen that problem as a fatal flaw in a control system that used the "windows" OS.
An entierly different possibility is that it is caused by spikes arriving on the incoming mains power, possibly from other parts of the machine.
 

Sensacell

Joined Jun 19, 2012
3,432
Every time I have ever tried phase angle firing from an MCU, my crappy zero-Xing circuit was the reason it worked badly.
You need a really clean and reliable Z-Xing detector.

Once I discovered this deliciously clever design, I never looked back.

What I love is that NONE of the parts need to be high voltage rated, and it doesn't waste a bunch of power.

zerocross2.jpg
 
Last edited:

Thread Starter

Matthewt

Joined Nov 9, 2020
15
Thanks for all the updates to my problem. I'll try and respond to each comment:

MisterBill2 - 'Or are you sending a trigger pulse every cycle of the line power? Some folks have stablized their controllers by adding an incendescent light bulb across the motor, to change the pure reactance into an impedance. That should be simple to try. '

I am sending a trigger pulse during every half cycle. I like the idea of trying the incandescent light to synchronize the current/voltage rise.

Ian0 - 'Is it a sensitive-gate triac?'

I'm not sure, as I admitted before, I'm a bit out my depth here. It's a BT41 triac

Ian0 - 'Just a thought - Is this an exercise in triac control, or is it a means to an end in speed-controlling the motor?
If the latter, have you thought of rectifying the mains, and running the motor from an IGBT chopper, and a fairly low PWM frequency (500Hz, perhaps)?
'

It started out as the former but has ended up being the latter as I've incorporated it into a coil-winder motor control system. Interesting, I'd never thought about using chopped DC with this normally-AC motor. That's something to look into, although I kinda feel I want to get to the bottom of this problem though, rather than throw in the towel and change my approach altogether. But...I definitely appreciate the suggestion and may well go down that road if I cannot solve this.

MisterBill2 - 'It is still not clear about the signal to the opto device. Is it a pulse to trigger at each cycle of the mains power, or is it a DC level that sets the firing point of the analog firing angle control?
AND how has the assumption that it is not a software spike been determined? It could easily be an excess interrupt that is part of the OS, and not a part of the application code. I have seen that problem as a fatal flaw in a control system that used the "windows" OS.
'

As the rectified mains drops to zero at the mid-point of the cycle (there's no capacitor to smooth the rectified output), the output from the opto-isolator goes low. The Arduino detects this low and starts a timer. The triac is fired at some point during the 10ms half-cycle depending on the timer setting. Regarding your second point about the software, true, I cannot say for absolute certainty there is no software weirdness going on but the software is controlling an MCU with no underlying OS to get in the way. I've also got the software to measure and report the timings between each firing to ensure that nothing is being fired too early - however, back to dodgydave's point, I haven't put it on a scope to see the relationship between the firing and the ZC. I only have an old analogue scope so it couldn't capture the incredibly random spikes anyway.

Sensacell - ' You need a really clean and reliable Z-Xing detector. '

Thanks for the suggested design, that's one to look at putting together I think.

To summarize where I interpret we are at with this (and feel free to correct me if I'm wrong): The cause is likely to be poor ZC-detection. However, if the lamp across the motor terminals works, then am I right to assume that the snubber circuitry needs improving?

It has to be said that after some extensive testing last night (my wife will confirm - she is sick of hearing a washing machine motor going all night!) - I only had one, maybe two misfires. This is a drastic reduction which I think is helped by the addition of the MT1>Gate resistor. Before I actually hooked the motor to the coil winder, I don't think I really had any issues so it would suggest that it's only when the motor/triac is under load. Does this lead us down the snubber route, I wonder?

Anyway, thanks so much for your help and comments so far.
 

Ian0

Joined Aug 7, 2020
9,667
Do you mean a SGS-Thomson BTA41, or BTB41? I’ve not come across a BT41. If so, there will be a suffix which tells you the voltage and the triggering current, and whether or not it is (allegedly) ”snubberless”.
Does your software lock out the zero-cross detector after it has detected a zero? I mean, there won’t be another zero crossing that it needs to detect for at least 9ms, so why bother looking, it just gives it the opportunity to detect one that doesn’t exist.
When it misfires, what exactly happens? Does it do a whole extra half-cycle? Or does it mistrigger for longer than that?
 

Thread Starter

Matthewt

Joined Nov 9, 2020
15
Do you mean a SGS-Thomson BTA41, or BTB41? I’ve not come across a BT41. If so, there will be a suffix which tells you the voltage and the triggering current, and whether or not it is (allegedly) ”snubberless”.
Does your software lock out the zero-cross detector after it has detected a zero? I mean, there won’t be another zero crossing that it needs to detect for at least 9ms, so why bother looking, it just gives it the opportunity to detect one that doesn’t exist.
When it misfires, what exactly happens? Does it do a whole extra half-cycle? Or does it mistrigger for longer than that?
Yes, sorry it's a BTA41 600B. The specs say it is a 50ma trigger current and 1.2v on-state voltage. Not sure what that means as regarding it being snubberless or not.

Interesting question about the software. It doesn't lock out the ZC after one been detected. The ZC detector triggers an interrupt every half-cycle regardless, so I suppose in theory it might be possible that it completes the service of the interrupt before the pulse has disappeared and on exit from that interrupt routine, the interrupt reactivates on the tail-end of the same pulse. This would cause a later firing - possibly into the start of the next cycle. Hmmm......

Without hooking up to a decent scope, I cannot tell exactly what is happening. All I know is that now and then the motor suddenly and quickly spins up for a fraction of a second and it does appear as though the triac has triggered for the whole half-cycle rather than just a for fraction of it.
 

Ian0

Joined Aug 7, 2020
9,667
In SGS-Thomson triac language they all start BT
Then A for Isolated, and B for non-isolated
then the current
hyphen
then the voltage
then the trigger current: B=50mA, C=25mA, S=10mA, T=5mA
then "W" for "snubberless".
The BW does demonstrate better immunity from retriggering on switch-off than the B, but they are both much better than the T which is horrid.

For the zero-crossing, I have the advantage of NXP marvellous (but Byzantine) SCT timer, so after it triggers, I can put it into a different state where it disables the edge detector and after 8 ms, it re-enables the edge detector and waits for the next pulse.

I would expect that a single cycle extra would sound like a hiccup, and it would take several cycles for it to noticeably speed up.
So I think I would be looking critically at the software.
 

MisterBill2

Joined Jan 23, 2018
18,167
Here is a concept that could avoid the problem, which is to use a resistance controlled triac firing circuit, and then use the opto isolator as a current controlled resistance. That would avoid the possibility of timing issues in the controller from having any effect on the drive. because it is a high inertia motor and because fast speed changes are not required, slowing the response would be another way to avoid the issue. Unless there is some performance requirement that I have missed.. And there are quite a few triac speed control circuits that use a variable resistor for the control.
 

Ian0

Joined Aug 7, 2020
9,667
Here is a concept that could avoid the problem, which is to use a resistance controlled triac firing circuit, and then use the opto isolator as a current controlled resistance. That would avoid the possibility of timing issues in the controller from having any effect on the drive. because it is a high inertia motor and because fast speed changes are not required, slowing the response would be another way to avoid the issue. Unless there is some performance requirement that I have missed.. And there are quite a few triac speed control circuits that use a variable resistor for the control.
Do you mean, like a standard wall light dimmer? If so, the current through the variable resistance is AC. Put the opto inside a bridge rectifier and it would work.
 
Your probably using the wrong type of motor.

For this, your probably doing the control a bit wrong. You do need a good zero cross detector.

The next thing you need is a firing angle table vs the integral of voltage. Lets just say you have 0-100% voltage and you'll treat each 1/2 cycle the same. You will need a time base of sorts where you keep pulseing the triac. Because of the inductive load it will turn off at zero voltage and also zero current. Pulseing is a little better than constant on.

You need a table of essentially the RMS value of voltage at 1% increments vs firing angle. So if it's 0-180 degrees, 1% might be 179 degrees, 2% might be178.8 degrees. You would change that into time anyway. The table will not be linear.

if the zero cross gets messed up, you would get a speed glitch.
 

Ian0

Joined Aug 7, 2020
9,667
Your probably using the wrong type of motor.
A universal motor (the one specified) is the only one that can be successfully speed controlled by phase firing.
Pulseing is a little better than constant on.
Constant on is much better than pulsing. If the pulse is too short the triac only remains on for the length of the pulse, because the current through the inductor has not reached the triac's holding current. Holding current is very temperature-dependent.
 

MisterBill2

Joined Jan 23, 2018
18,167
An opto-isolator that uses a phototransistor or photodiode would take additional circuits, but one that is a resistive type, or one made for AC controls should work quite well..
And I KNOW that the large fan that was controlled by a module that looks like a light dimmer worked quite well, and that was an induction motor.
 

Ian0

Joined Aug 7, 2020
9,667
Apologies - That was a bit of an oversimplification.
Universal motors: speed proportional to voltage, so the triac dimmer varies the voltage, and thus the speed.
Induction motor runs at synchronous speed minus slip.
Reducing the voltage reduces the current, and hence the torque and allows more slip.
Provided that the torque:speed curve is monotonic then it does work. For a fan, power = speed cubed; but for other types of load can be rather less successful.
 
Top