Correcting the linearity of a PMP24 proportional relay

Correcting the linearity of a PMP24 proportional relay

Specialized online stores offer a variety of proportional control solid-state relays, enabling you to control, for example, the output power of a resistive heating element more precisely than with a simple on/off relay. However, these components are often not as proportional as their name suggests, which can affect how the control process works. So we're going to take a few measures to see if this can be improved.



For these tests, we use the Crydom PMP2425W, a fairly common proportional control solid-state relay, which accepts a 4-20 mA, 0-10 V, or 0-5 V control signal.

The Crydom PMP2425W with its large cooling radiator
The Crydom PMP2425W with its large cooling radiator


We drive it using a Yocto-4-20mA-Tx-V2-C and simultaneously measure the control signal (using a Yocto-4-20mA-Rx-C) and the power consumed by the load (using a Yocto-Watt-V2-C). Our load is a simple incandescent bulb. Here's the diagram of the wiring:


The PMP2425W offers two power modulation modes: burst fire and phase angle. According to the user manual, the first mode regulates power by inhibiting the output with a half-phase granularity, while the phase-control mode works like the dimmers we tested a while back, with delayed activation at each phase.

Let's start by testing the burst fire mode. A small program written in Python linearly varies the control signal from 4 to 20mA, rising then falling. We use the free Yocto-Visualization software to plot the measures. Here are the resulting power measures:


We observe that the control granularity of burst mode does not allow us to obtain a stable consumption measure at the 5 Hz scale. The Yocto-Watt-V2-C allows us to visualize the operation of burst fire control:


It is likely that at a larger scale, and averaged over the latency of a heating element, the dissipated energy would be more stable than this measure of electrical consumption. Nevertheless, such a granularity is likely to affect a typical PID control process, so we would not recommend using burst fire mode for that kind of application.

Let's take a look at the result if we switch the PMP2425W to phase angle mode:


In this mode, the power consumed by the load varies much more clearly as a function of the control signal. But proportionality is not really respected. Let's open the Yocto-Watt-V2-C interface to try and understand:


A few observations:

  • the phase control at minimum level (4.3mA) doesn't seem to start at 2%, but rather at around 20%.
  • the phase control above 95% is atypical; this is probably an area to be avoided
  • the PMP2425W seems to linearly drive the activation time, not the power

This latter point probably explains the non-linearity of the power measure: as instantaneous power is not constant over a period, relay activation for a time proportional to the command does not result in proportional control. We must take into account the fact that the output power integrates the sine over the active duration.

We are therefore going to correct the control signal to take account of sine integral. As the integral of a sine is a cosine, it can be inverted using the arccos function. And to take into account the other two observations above, we're going to distribute the control signal between 0-19mA rather than 4-20mA, knowing that values below 4mA won't really be taken into account.

def set_power(x: float):
    "x is the desired relative power, between 0.0 and 1.0".
    current = 19 * math.acos(1 - 2 * x) / math.pi
    control.set_current(current)


And here's the result:


It's not perfect, but it's much better than the original result. Just goes to show, it's a lot easier to fix problems when you have the tools to visualize them...

Add a comment No comment yet Back to blog












Yoctopuce, get your stuff connected.