The Modulo block calculates the remaining whole number of the division of the input by the divisor. The Modulo calculation (update rate) is determined by the Evaluate Block.
Example
The following example demonstrates how to implement a cyclic error compensation based on actual position. For example, an un-balanced pulley is spinning horizontally on a motor shaft. Gravity causes the imbalance to require more force to rotate the heavy side up and require less force as the heavy side makes its way down. By using the Raw encoder feedback and setting the Modulo equal to the encoder resolution, the output of the Modulo will always be between Zero and the encoder resolution. A lookup table based on absolute motor angle can now be created and output an extra torque command based on what angle the motor is currently at. |
The following parameters are used to configure this block:
|
Simulink Interface
The Output of a Modulo block is the whole number remainder of the Input divided by the divisor. The block has two user data fields (User Data 0, User Data 1) to store application-specific data for convenient storage and retrieval. See User Data Storage for details. The block's update schedule is determined by the Evaluate Block.
The following Parameter Dialog Box can be opened by double-clicking on the
block in a Simulink Model:
|
Declaration
Public Method
class MODULOBlock: public virtual Block
{
public:
// User accessible coefficients
long Divisor;
};
|
|
Required Header: mechaware.h |
Description
The Modulo block calculates the whole number remainder of division of the input by the divisor.
|
Methods