From: Jerry Avins on
martind wrote:
>> martind wrote:
>>> Hi All,
>>> I am a newbie to DSP, and near the bottom of the learning curve. I am
>>> currently designing a 3-phase IDMT protection relay, which monitors
>>> voltage, current, earth leakage etc.
>>> The question I have is related to the monitoring of the current. I am
>>> sampling 3-phases of current and need to convert each phase to True
> RMS,
>>> and in it's simplest form, output a signal when the any phases true
>>> current reaches either a predefined trip point, or IDMT output level.
>>> I am using 32-bit fixed point hardware, with MAC.
>>> My confusion is the True RMS conversion itself. One way is to take 1
> cycle
>>> of samples, square each sample as received, then divide by total number
> of
>>> samples then sqrt. But this has a disadvantage as the result if the
>>> calculation is given at the end of the cycle. And the response time
> would
>>> not meet the spec.


Why do you need square roots at all? When I > I_trip, it is also true
that I^2 > (I_trip)^2. Given I_trip as a spec or input, calculate
(I_trip)^2 once and compare against that. Such simple transformations
are what make embedded systems practical. (At Siemens, we did what you
propose with a 68HC11 that also calculated the motor's thermal model and
would trip on winding excessive temperature.

Engineering is the art of making what you want from things you can get.