Single precision equivalent to the Electrical RMS and Mean blocks

2 次查看(过去 30 天)
Hi,
I am trying to generate C code from a Simulink model, in order to run it on an embedded platform. This platform can only use its hardware acceleration when dealing with single precision floats, meaning that the execution time for double precision computations is (unsurprisingly) atrocious.
Unfortunately, the model features two types of block that appear unable to work with single precision: the RMS and Mean blocks from the “Electrical” library. Would you know of any single precision compatible blocks that could offer an alternative?
Thanks in advance.
  1 个评论
Segmentation Fault
Not finding any better alternative, we ended up re-implementing the Mean block using a cycling array, and the RMS using the similarly named (although not expecting the same form of input) RMS block from the "DSP" library, which does support single precision.

请先登录,再进行评论。

采纳的回答

Joel Van Sickel
Joel Van Sickel 2022-5-5
Hello Segmentation Fault:
You are correct, those blocks (in the Simscape Electrical library) are implemented intended primarily for desktop analysis, not hardware implementation. This is fairly typical for Simulink blocks in the Simscape Libraries, while blocks in the DSP libraries, motor control blockset, etc, will be geared more toward optimal code generation. Your approach is the correct the approach and I'm pasting it into the answers so people will see it. Thank you for updating your question with the self-found solution.
Solution found by Segmentation Fault: Not finding any better alternative, we ended up re-implementing the Mean block using a cycling array, and the RMS using the similarly named (although not expecting the same form of input) RMS block from the "DSP" library, which does support single precision.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Nonlinear Operators 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by