PWM and Solid State Relays (SSR)

Hi everyone.

I am using an Arduino to control a PWM signal which is fed into a DC speed controller. It is then output in the same PWM wave form to the high current leads to control a high horsepower DC motor in whatever direction I choose depending on how I hook up the leads.

Reverse direction and/or dynamic braking would be a nice feature to have for the application I intend to run this motor for. This would be possible with a simple H-Bridge from what I've been reading, so I am attempting to put together an H-Bridge circuit, and have ordered some SSR's that are rated at 1.5x the current load/voltage of the motor and controller, just to err on the side of caution.

My hope is that I can set up an H-Bridge using 4 x DC-to-DC SSR's so that I can use the arduino to flip the motor drive direction or dynamically brake the motor spindle by looping the two high or low quadrants of the h-bridge.

The DC controller handles torque load sensing and RPM of the motor and can do things like soft-start, torque-sensing, rpm threshold.

The common setup is to send 100% of the power/duty to the SSR, and the % of the power going to the motor/load would be controlled by switching the relay on/off using a PWM signal to lower the overall power being sent to the motor/load.

I can do this by making the Arduino send a 100% power PWM signal to the motor controller so it operates at full speed (it needs a PWM input signal to activate the output power circuit), and then have the Arduino also regulate the SSRs via PWM, and reverse or braking can also be done this way.

BUT, my idea (and I have not seen it explained this way in any SSR examples) was to have the variable input PWM control be adjusted via the Arduino from 0-100%, and have the DC Controller high tension leads output a PWM signal as it normally would (as if there were no H-bridge), and then have the Arduino simply switch on/off whatever SSR needs to be on for whatever direction I would like it to turn, or whenever I need it to brake.

I've attached an image I drew up to illustrate a little better.

Does anyone see any downside to doing it this way? I feel as though if there are no electronic or physical limitations to doing this, it would be a much better option than having the arduino do the relay switching.

Also, the Arduino does not require its own DC power source, as it can be fed from a 12v pin header on the DC motor speed controller itself. But I just put it there because it can be powered externally as well.

Simple solution: use a motor shield that also has a Direction input. Else you can apply the PWM signal directly to the SSR's, to emulate a H-bridge.

You even can map the (signed) direction into a single PWM output, with 50% meaning no motion. Herefor connect the signal to the Direction input, and keep the PWM input in 100% state.

DrDiettrich:
Simple solution: use a motor shield that also has a Direction input. Else you can apply the PWM signal directly to the SSR's, to emulate a H-bridge.

You even can map the (signed) direction into a single PWM output, with 50% meaning no motion. Herefor connect the signal to the Direction input, and keep the PWM input in 100% state.

My apologies if this sounds crass, but did you even read the post? To make things clearer, I've attached a new image with PROPOSED setup that I would like to try, and CONVENTIONAL setups that I've seen.

That is not an option. I am not driving the motor using an Arduino. I am using the Arduino to feed the DC CONTROLLER with a speed signal, and then using the Arduino to change the FIXED POLARITY of the DC CONTROLLER OUTPUT using an H-Bridge.

The point of the post was to illustrate the conventional method i've seen used, and to ask whether controlling the direction with an H-Bridge controlled by Arduino, with a high output PWM going through the SSR on the high output side, NOT being controlled by the relay actuation on the low input side.

I'm not looking for another solution for a motor driver. I'm wondering if sending PWM through the high tension leads would cause any issues before I test it myself.

I don't suppose you have links to the items you plan to use?

What does the output from the motor controller look like? The motor controller could easily be putting out a PWM similar to the input signal but with higher magnitude. In this case the power to the SSR won't be DC but AC and I doubt the SSR will like it.

Careless:
The common setup is to send 100% of the power/duty to the SSR, and the % of the power going to the motor/load would be controlled by switching the relay on/off using a PWM signal to lower the overall power being sent to the motor/load.

Is it common to use SSRs as a h-bridge? It sounds cool but I don't think I've heard of it.

Do the SSRs work well when the ground from the load isn't at the same potential as the logic ground? I guess the proper terminology is can they be used as both high side drivers and low side drivers? (At least I think that's the way it's said.)

I'd be very surprised if using SSRs work well in this application but I'm often surprised.

I have attached an image for what I would like to try (in my previous post above, I was editing it while you were posting). I am going to try it anyways- but I am posting here to see if anyone who has tried has experience in letting the smoke out of any of the electronics parts. They don't work well after the smoke is released. :frowning:

The motor controller takes in a 5v PWM signal and matches the OUTPUT (fixed polarity) to the motor using the same PWM signal. It is essentially a voltage booster, it reads the 5v PWM speed signal and sends the same PWM signal to the motor, but reproduces it at 90VDC output side.

I have seen H-Bridge setups using an SSR array, but it's usually speed controlled using the low-tension/optocoupler side, while the high-tension/source-to-load side is fully powered. The problem with that is the DC Controller won't make use of the torque sensing, rpm threshold, and soft-start modes.

Do the SSRs work well when the ground from the load isn't at the same potential as the logic ground? I guess the proper terminology is can they be used as both high side drivers and low side drivers? (At least I think that's the way it's said.)

I'm not sure I understand why this would matter. Can you explain a little more? As far as I know, the two signals have absolutely nothing to do with one another, and as long as it's 3-32 volts, the SSR low/control side will function independantly of the high/source-to-output side.

Careless:
I'm not sure I understand why this would matter. Can you explain a little more? As far as I know, the two signals have absolutely nothing to do with one another, and as long as it's 3-32 volts, the SSR low/control side will function independantly of the high/source-to-output side.

I know the control side of a normal electromechanical relay is independent from the load side but I also know SSR are different since one can't use the same type of SSR for both AC and DC loads.

I was kind of thinking of the SSR acting like a transistor and I know you can't just add a transistor on either side of a load.

So a SSR will work when the high side of the load is at 90V and low side at 45V? If so, cool. If SSRs are commonly used as h-bridges then this must not be an issue.

I think the PWM input to the load will be an issue. It sure seems like PWM input could be considered an AC source and I'd be surprised if a SSR which expects a DC source will be happy with the PWM input.

I hope you share what you learn. This sounds like a very interesting experiment.

DuaneDegn:
I know the control side of a normal electromechanical relay is independent from the load side but I also know SSR are different since one can't use the same type of SSR for both AC and DC loads.

I was kind of thinking of the SSR acting like a transistor and I know you can't just add a transistor on either side of a load.

So a SSR will work when the high side of the load is at 90V and low side at 45V? If so, cool. If SSRs are commonly used as h-bridges then this must not be an issue.

low voltage / trigger side is controlled by 3-32VDC
high voltage / source-to-load side is good for 0-220VDC

I would have bought 2500W N-MOSFETS for $25 a piece, but then I'd have to use a gate voltage of 10 or 20VDC above source. I'm sure it can be done, but I'd like to keep the circuit as simple as possible so field repairs are easy and cheap.

DuaneDegn:
I think the PWM input to the load will be an issue. It sure seems like PWM input could be considered an AC source and I'd be surprised if a SSR which expects a DC source will be happy with the PWM input.

I hope you share what you learn. This sounds like a very interesting experiment.

This is my main concern. Whether or not the high voltage side of the SSR is happy with PWM going through it.

I will definitely post my findings.

I was actually thinking of using these at first,

but I will try with the SSR first.

https://www.fairchildsemi.com/datasheets/FD/FDL100N50F.pdf

Perhaps I will end up using something like that when the time comes, but for now I think the SSR will be a good test!

moderator: crosspost removed

Thank you, I wasn't sure which sub-forum to place it under.

Careless:
I was actually thinking of using these at first,

but I will try with the SSR first.

Intelligent Power and Sensing Technologies | onsemi

Perhaps I will end up using something like that when the time comes, but for now I think the SSR will be a good test!

If the SSR, that you select, has Optically Isolated Inputs then the Motor Voltages at the SSR's Output should not have any affect on the Arduino connections to the SSR Inputs.

I would select 2X Output Voltage rating for the SSR's.
Make sure you have "beefy" internal and/or external reverse bias diodes.
You may be dealing with a highly inductive type load.

Make sure the Red (Positive) wire from your PWM Motor controller is always POSITIVE with respect to the Black (Negative) wire. A scope can prove that easily. If true then a DC SSR would be appropriate.

If the SSR's work then why even mess with a MOSFET H-BRIDGE?

Also, how many AMPS when doing Dynamic Braking?

What if the Arduino accidentally turns on both SSR's on one side of the H-Bridge?
Is there a hardware Fail-Safe design to help prevent that situation?
What is the minimum Dead-Time to prevent Shoot-Through?

mrsummitville:
If the SSR, that you select, has Optically Isolated Inputs then the Motor Voltages at the SSR's Output should not have any affect on the Arduino connections to the SSR Inputs.

Yes, that's what I said to DuaneDegn. They are indeed optoisolated.

mrsummitville:
I would select 2X Output Voltage rating for the SSR's.
Make sure you have "beefy" internal and/or external reverse bias diodes.
You may be dealing with a highly inductive type load.

They are 220VDC / 25AMP SSRs
I'm not sure how to check if the internal reverse bias diode is beefy without damaging one of the units.

mrsummitville:
Make sure the Red (Positive) wire from your PWM Motor controller is always POSITIVE with respect to the Black (Negative) wire. A scope can prove that easily. If true then a DC SSR would be appropriate.

Not sure what you're trying to say here... I don't have any intention of using a red wire for negative when I have a lot of black wire to spare for that purpose. I have had this unit and the motor running in its standard configuration with no directional control or braking through the use of an external circuit. The motor wires and the PCB board for the speed controller are clearly marked MOTOR + and MOTOR -.

mrsummitville:
If the SSR's work then why even mess with a MOSFET H-BRIDGE?

Packaging. I see now that the MOSFET on the unit is an IRFP250N. 200V@30A. These are fairly cheap at 4 dollars a piece, but their P-Channel variants are around 15 dollars. With the SSR's, I would have to have a separate enclosure. With the MOSFETS I could probably fit them within the top-cover of the enclosure. It's not a huge deal. I'm just experimenting, anyways. The MOSFET idea is just in case the SSR doesn't like PWM through the high power side.

mrsummitville:
Also, how many AMPS when doing Dynamic Braking?

No Idea. If I knew, that would mean I have a working H-Bridge :slight_smile:

mrsummitville:
What if the Arduino accidentally turns on both SSR's on one side of the H-Bridge?
Is there a hardware Fail-Safe design to help prevent that situation?
What is the minimum Dead-Time to prevent Shoot-Through?

There will be a very short switch-over delay and pull-down resistors on the + signal lines so that the optoisolators are drained to ground before sending power in the reverse direction.

The rest of the stuff I can't answer because I haven't built the unit yet.

My main question was whether or not anyone has had success driving PWM through the high voltage side of the relay. The rest of the stuff is what I intend to figure out at some point when I have it running.

I don't suppose you have a blog about this project anywhere?

I'd be very curious to see pictures of your setup. Not a big deal. It just sounds interesting.

"My main question was whether or not anyone has had success driving PWM through the high voltage side of the relay. The rest of the stuff is what I intend to figure out at some point when I have it running."

I use DC SSR's with the PWM for solar to battery (12v) charge controlling.

One word of caution: the rated power of the SSR is with heat sinks attached. I had one that was without heatsink that deformed, and smelled, but still works.

Hi,

I am using an Arduino to control a PWM signal which is fed into a DC speed controller.

What is the existing speed controller, link to its specs please.

What are the motor specifications?

Tom...... :slight_smile:

Careless:
My main question was whether or not anyone has had success driving PWM through the high voltage side of the relay. The rest of the stuff is what I intend to figure out at some point when I have it running.

"Electrically" the SSR's don't know and don't care if they are on the High Side or the Low Side of the H-Bridge.

Shoot-Through:
Check the SSR data sheet for "Max Turn-Off" tiime. Then double the "Max Turn-Off" time to determine your "Minimum H-Bridge Delay". Use this delay to wait between turning off one SSR and turning on the next SSR on the same side of the bridge. There is also a SSR "Min Turn-On" time but save that for an extra safety margin. Also, diodes take along time to recover. Shoot-Through will almost instantaneously blow-out both SSR's on one side of the bridge and might even damage your motor controller.

Dynamic Braking:
If you turn on both Low Side SSR's or both High Side SSR's for dynamic braking there will be a huge in-rush of amps. BEMF / ( Motor Internal Resistance + 2 x Mosfet Ron ) = !!! Amps. A Dynamic Braking resistor could make the Braking Amps reasonable. Also, Regenerative Breaking is another option. It is much easier to accelerate a motor than to decelerate.

Discrete Mosfets:
The discrete Mosfets will require Upper and Lower Bridge Drivers, Power Supply, Circuit Board, Terminal Strips, Case and possibly - Opto-Isolators, Capacitors, Resistors and Diodes.

mrsummitville:
"Electrically" the SSR's don't know and don't care if they are on the High Side or the Low Side of the H-Bridge.

Shoot-Through:
Check the SSR data sheet for "Max Turn-Off" tiime. Then double the "Max Turn-Off" time to determine your "Minimum H-Bridge Delay". Use this delay to wait between turning off one SSR and turning on the next SSR on the same side of the bridge. There is also a SSR "Min Turn-On" time but save that for an extra safety margin. Also, diodes take along time to recover. Shoot-Through will almost instantaneously blow-out both SSR's on one side of the bridge and might even damage your motor controller.

Most of these types of SSR's are "<10ms". The time for this particular one seems unpublished. Typical of China products.

mrsummitville:
Dynamic Braking:
If you turn on both Low Side SSR's or both High Side SSR's for dynamic braking there will be a huge in-rush of amps. BEMF / ( Motor Internal Resistance + 2 x Mosfet Ron ) = !!! Amps. A Dynamic Braking resistor could make the Braking Amps reasonable. Also, Regenerative Breaking is another option. It is much easier to accelerate a motor than to decelerate.

Most of the dynamic braking resistors on similar horsepower motor controllers from KB or Calco seem to be generic dummy load resistors, like 100W units. I have plenty of resistors, even extremely large high wattage ones that were recovered from some equipment.

My father is a retired electrical engineer who worked specifically with AC and DC motors, but not with Arduino or the SSR's. He will know what type of resistor is suitable. Thank you for mentioning it, I am going to jot it down in my notes to ask him about implementing.

mrsummitville:
Discrete Mosfets:
The discrete Mosfets will require Upper and Lower Bridge Drivers, Power Supply, Circuit Board, Terminal Strips, Case and possibly - Opto-Isolators, Capacitors, Resistors and Diodes.

Yeah, this is one of the reasons why I figured I should attempt with the SSR's in hopes that it can shoot the PWM through the high side, hopefully. I don't want to tamper too much with the motor controller. It seems capable of doing the job as far as its rating. I just want to populate an arduino board, a small breadboard or PCB, and a small enclosure with SSRs and verify that it works. Then I can purchase these controllers or recover them, and the motors that go with them, and make tools that I can use around my shop.

Having an extra controller to swap in if something decides to die at an inopportune time would be nice and it's the overall goal.

:slight_smile:

Could you please share more detail about your configuration? Are you actually controlling power output from the panels or just switching ON/OFF?
Thank you.