Processing blocks

A processing block is a block of code that consumes data from its inputs, processes this data based on the provided configuration, and produces the result on its output signals.

The number of inputs, outputs & parameters of the processing block and its behavior are defined by a template. The templates can be loaded from files provided by Prodrive Technologies or can be created yourself. In Simulink code generation is described how to generate custom processing block templates via Simulink and C++. This section describes the processing block templates provided by Prodrive Technologies.

Note

Processing block templates are provided for different processor architectures. Make sure you use the binary that corresponds with the architecture of your target platform:

  • bb-armv8a_64 - ARM based controller, e.g. the Arcas motion controller.

  • bb-x86_64 - x86 based controller, e.g. the Poseidon-CFL motion controller.

  • windows-x86_64 - PMP simulator on Windows.

  • linux-x86_64 - PMP simulator on Linux.

Control networks

Control networks

Name

Description

Feedforward

Feedforward implementation with Coulomb, viscous, acceleration, jerk and snap feedforward.

PositionControlAdvanced

Position feedback control implementation with PID, 4 biquad filters, settling state machine and delay matching.

PositionControlSimple

Position feedback control implementation with PID and 2 biquad filters.

VelocityControlAdvanced

Velocity feedback control implementation with PID, 2 biquad filters, velocity state observer and delay matching.

VelocityControlSimple

Velocity feedback control implementation with PID and a biquad filter.

GenericFeedbackControl

Generic feedback control implementation for control processes unrelated to motion.

PlantSecondOrderMechanical

Second order mechanical model for plant simulation.

Signal routing and conversion

Signal routing and conversion

Name

Description

Sum

Sum with 2 or 10 inputs.

GainOffset

Gain with an offset after the gain, for example for position feedback scaling from encoder counts to SI units.

OffsetGainOffset

Gain with offsets before and after the gain.

PositionBasedAngle

Electrical angle determination from a position sensor using the pole pair count and the pole distance.

NtcConversion

Temperature determination from a resistance using the Steinhart-Hart equation.

Waveform generators

Waveform generators

Name

Description

PseudoRandomNoiseGenerator

Pseudo-random noise generator.

SineGenerator

Sine waveform generator with support for sine sweeps.

TrapeziumGenerator

Trapezium waveform generator.

UserDefinedSequence

User-defined sequence waveform generator with 10k or 1M samples.

Event generators

Event generators

Name

Description

BooleanMatch

Event generation based on a boolean condition.

MovingStatistics

Moving mean, variance and standard deviation calculation with anomaly detection based on dynamically calculated thresholds.

Miscellaneous

Miscellaneous

Name

Description

UserSignals

Additional general purpose read-write signals.

See also

Processing block templates

General concept of template creation, instantiation and configuration.