2
\$\begingroup\$

I'm currently switching a single phase AC fan motor with an SSR. Here is the following SSR: http://www.crydom.com/en/products/catalog/s_1.pdf I activate this relay by applying continuous analog 10V to its inputs.

What if I use a PWM signal instead which has 490Hz frequency, like for example default Arduino PWM output? Since Arduino board doesn't have DAC, it mimics analog voltages by using PWM technique.

*For some reason I don't want to use digital outputs.

*I don't want the relay to switch on and off all the time which would cause too much heating.

My questions are:

1-) Is there a frequency limit for PWM where the relay would be always on? Or relay would always react the on of cycles of PWM what ever the freq of PWM is?

2-) I could use digital output for continuous analog voltage, but if I have to use PWM output at very low duty cycles would I have problem with the relay?

Would the motor jerk if I were to use PWM as analog DC input with this relay?

\$\endgroup\$

5 Answers 5

8
\$\begingroup\$

The SSRs you have linked use triacs to control the output. A triac is a semiconductor switch. When the triac is triggered on its gate it turns low resistance between its two anodes. Triacs have the odd characteristic that they will remain on after the gate signal is removed until the current falls below a very low hold-on current. This renders them almost useless in DC circuits but quite useful in AC circuits where the current falls to zero at every zero cross of the AC supply.

enter image description here

Figure 1. Common triac packages.

schematic

Figure 2. Triac symbol.

For on-off control the triac will be switched to give a load waveform as shown in Figure 3.

enter image description here

Figure 3. On-off AC time control.

Typically these circuits use zero-cross circuits to switch the load on at zero-cross to minimise electromagnetic interference. The triac itself switches off at the end of the next half-cycle. This approach works well for loads such as heaters which respond slowly to power.

For circuits which respond more quickly to pulses of power (such as lamps or motors) the on-off control gives too much flicker or jerk. In these cases phase angle control is used to vary the on-time of the AC supply to the load.

enter image description here

Figure 4. Phase-angle control.

Phase angle control requires instant-on (non zero-cross) SSRs but the control circuit needs to monitor the mains and give the pulses at the appropriate time relative to mains zero-cross.

What if I use a PWM signal instead which has 490Hz frequency, like for example default Arduino PWM output? Since Arduino board doesn't have DAC, it mimics analog voltages by using PWM technique.

You can't use PWM to control an SSR. The first pulse will turn it on and it will stay on until the next zero-cross.

For some reason I don't want to use digital outputs.

What is the reason?

I don't want the relay to switch on and off all the time which would cause too much heating.

What relay? Heating of what?

1-) Is there a frequency limit for PWM where the relay would be always on? Or relay would always react the on of cycles of PWM what ever the freq of PWM is?

You can't use PWM to control an SSR. You can only control to the nearest mains half-cycle.

2-) I could use digital output for continuous analog voltage, but if I have to use PWM output at very low duty cycles would I have problem with the relay?

You can't use PWM to control an SSR.

Would the motor jerk if I were to use PWM as analog DC input with this relay? pwm solid-state-relay

You can't use PWM to control an SSR.


Finally, you can't use PWM to control an SSR.


Update

Could you provide a waveform for PWM input and SSRs behavior if possible where we can see why it doesn't work?

Why PWM doesn't work with triacs.

Figure 5. The result of switching a triac with a PWM signal.

At the start of this answer I emphasised the statement, "Triacs have the odd characteristic that they will remain on after the gate signal is removed until the current falls below a very low hold-on current." This is key to the problem. In Figure 5 we can see that the triac output is off until the first PWM pulse is received. It then turns on and stays on until the next zero-cross regardless of the PWM switching. The result with continuous PWM will be that the triac turns on with the next PWM pulse after each zero-cross and stays on. Note the last half-cycle in the AC waveform. The triac is still on even though the PWM has stopped.

\$\endgroup\$
6
  • \$\begingroup\$ "You can't use PWM to control an SSR. The first pulse will turn it on and it will stay on until the next zero-cross" I dont understand this. I think this is the main reason I asked this question. You found the root cause of my confusion. Could you provide a waveform for PWM input and SSRs behavior if possible where we can see why it doesn't work? \$\endgroup\$
    – user16307
    May 12, 2016 at 22:16
  • \$\begingroup\$ Added PWM / triac waveform. See Figure 5 onward. \$\endgroup\$
    – Transistor
    May 13, 2016 at 10:34
  • \$\begingroup\$ In your last figure the SSR doesn't have zero crossing right? \$\endgroup\$
    – user16307
    May 19, 2016 at 23:01
  • \$\begingroup\$ Correct. If the SSR is zero-crossing type it would only turn on if and when the PWM 'on' overlapped with the SSR's zero-cross period. i.e., it would be hit and miss. See my answer to Using AC current to trigger triac where I explain the inner workings of a zero-cross SSR. \$\endgroup\$
    – Transistor
    May 19, 2016 at 23:09
  • \$\begingroup\$ However it is possible to control the SSR with a DC input voltage to pass a PWM signal as the load, correct? \$\endgroup\$ Feb 9, 2021 at 19:52
1
\$\begingroup\$

That datasheet refers to three different SSRs.

Refer to page 2 for the entries on "maximum turn on time" and "maximum turn off time."

One of the three SSRs switches at zero crossings, and so can switch no faster than 1/2 cycle of your AC - 100 or 120 times per second.

The other two can each takeup to 20mSeconds to turn on and up to 30mSeconds to turn off. So, 20+30=50mseconds=20 times per second.

It looks like driving these SSRs with an Arduino PWM signal with the default PWM rate is a bad idea.


SSRs aren't meant to be driven in an analog manner. They are meant to be turned on or turned off.
SSR= Solid State RELAY.
Relays are switches. If you could "half turn it on" somehow, that would be worse for the SSR than turning it on or off. If it were "half on" then it would be working like a resistor, and would have to dissipate all of the other half of the power that is not being allowed to reach the load.

If you are trying to control the speed of the motor, then I think you need to go a different route. There are other questions on this site that deal with controlling AC motors. Do a search and see what ideas you can find.

\$\endgroup\$
5
  • \$\begingroup\$ I use this SSR not for continous On off. I will use it On for long time to run the Ac motor and Off just to turn off the motor \$\endgroup\$
    – user16307
    May 12, 2016 at 13:59
  • \$\begingroup\$ If I switch the one with zero crossing with more than 400Hz pwm, the motor will not run? \$\endgroup\$
    – user16307
    May 12, 2016 at 14:01
  • 2
    \$\begingroup\$ You do know that the Arduino PWM pins are also digital pins? Just turn the bugger on or off and be done. \$\endgroup\$
    – JRE
    May 12, 2016 at 14:02
  • \$\begingroup\$ What do you mean? \$\endgroup\$
    – user16307
    May 12, 2016 at 14:03
  • 2
    \$\begingroup\$ An Arduino PWM pin can also be used as a simple on/off digital pin. So, don't monkey around trying to find a PWM speed and SSR that wil play funny games together. Just use PWM pin in digital mode and turn the SSR on or off. \$\endgroup\$
    – JRE
    May 12, 2016 at 14:08
0
\$\begingroup\$

There appears to be no practical reason to drive a SSR with PWM. And several disadvantages and possible peril.

We don't know whether you have the "zero-crossing" kind of relay, or the "instantaneous" kind. The behavior of your system (controller, SSR, motor) will be different depending on what kind of relay you have.

We don't know (and perhaps you don't know either) how your motor will react to pulsed AC power. It depends on what kind of motor it is, and how much load you have on it.

Because there are so many unknowns here (including ones you haven't thought of), nobody can predict how this will work. You must do the experiment with your own components.

I don't want the relay to switch on and off all the time which would cause too much heating.

This is simply not true. The relay is already turning on and off 100 or 120 times per second. You can't possibly make it turn on/off faster than that.

It seems quite possible that the motor will jerk. oscillate, resonate and even overheat if you power it using your proposed regime. It is not recommended and has no apparent advantages. But feel free to do the experiment for yourself. You might get lucky.

\$\endgroup\$
0
\$\begingroup\$

(Line frequency x 2) = 120 Hz. That was the frequency you were looking for. You have to use a zero cross SSR P/N: D24xx

These zero cross relays will turn on only when input signal is high AND the output line voltage is near to zero (consider +/- 15Vpk on the power line as your zero cross).

In my experience, PWM signal is not that precise, and eventually will get out of phase with your 60Hz line. So I would recommend to sync with your 60Hz application.

It would be nice to read on how you solved that problem.

\$\endgroup\$
0
\$\begingroup\$

First of all, the SSRs planned for use here are not controlled by an “analog” voltage. They are turned on by a DC voltage that can be pulsed.

I presume that the idea for using PWM is to control the motor speed. This will only work well with non-synchronous motors, such as universal motors. For synchronous motors, it will not vary the speed much but it will vary the torque quite a bit. So that works well with highly nonlinear loads, such as pumping loads - such as a fan, for example.

To use PWM with an SSR, the PWM waveform must be synchronized to the mains AC waveform. This is not just frequency synchronization - it requires a phase lock.

To attain phase lock, the mains zero crossings have to be detected and fed to the MCU. On the MCU, an interrupt would be triggered on each zero crossing. The interrupt routine has to check the phase (current value) of the PWM timer, and adjust the PWM period by a small amount to get the 0 timer count aligned with the zero crossing. The phase locked loop could use a simple “bang-bang” controller, but ideally - to minimize audible motor noise - it should have a PI controller that will compensate for difference between the CPU and mains frequency references in a zero-error fashion. The integral term will keep adjusting the phase of the PWM timer to run at an average frequency of mains. The proportional term will take care of short-term differences.

Another approach - if the timer hardware supports it - is to trigger a single PWM waveform after every zero crossing. The single-shot would keep the output off (low) until it’s time to turn the SSR on, and then flip high for a short period of time. The SSR only needs a pulse to turn on.

This approach is used in simple analogue phase control in dimmers, and suffers from higher jitter than a PLL.

You could also use high priority interrupts to do the output flipping, with phase control taken care of by a single shot timer.

In all cases, it is important not to “ovwrshoot” the zero crossing. The SSR acts like an SR latch. It’s set (turned on) by a high level on the control input. It resets automatically at the zero-crossing. To allow this turn-off to occur, the control input must be low by the time the zero-crossing occurs. In general, a short fixed duration pulse is all that’s needed to turn the SSR on for the rest of the AC line cycle. The SSR datasheet should specify the minimal voltage and pulse width needed to turn the SSR on at all phase angles.

So: yes, PWM-based phase control of an SSR is possible, but requires mains zero crossing feedback and some care.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.