.

Actual Position Output

Overview

Overview

Description

The Actual Position Output block allows you to write a different actual position than what the encoder on the motor is reading. This is important when input filtering is implemented, where the command motion trajectory is different from the actual motion commanded.

This block is crucial when designing Inverse Kinematics for Scara robots that may have two or three rotary axes that convert coordinated rotation into an R-Theta coordinate system motion.

The block is updated at the update rate, determined by the Evaluate Block.

Note:  The Actual Position Output block allows you to Command Motion and have resulting Actual position in different units otherb than Encoder Counts. This is useful in situations where Inverse Kinematics is needed to command motion. As shown in the following diagram, if an Inverse Kinematics transform is used on the coordinate space, there is a one sample delay between Command Position and resulting Actual Position (transformed by the inverse IK transform). Note this does not affect control system performance, as the control system performance is based on the Encoder itself. However, if any other calculation is done on Actual Position by the user, it must be known that this Actual Position is delayed by one sample.

Example

This example demonstrates how to design a simple model that changes the units of a rotary axis from its standard encoder resolution to accept movement in terms of degrees. The rotation will now rotate between 0 and 3600 for one revolution giving each count an accuracy of 0.1 degrees. Additionally, providing an simplified interface to commanding motion.

To accomplish this, after the Error sum is generated a gain with a value of the Encoder Resolution/3600 (360*10 to get 0.1 degree resolution) is added. This results in a problem because the commanded motion is not in terms of encoder counts. This causes the motion controller to acknowledge a large position error resulting in a fault or instability based on tuning.

To resolve this issue, take the Feedback block (which reads the raw motor feedback at the motor level) and write the previous inverse gain value (3600/Encoder Resolution) back to the Actual Position (at the Axis level). Now when the error sum is generated, it is commanded in 0.1 degree increments and is generated in 0.1 degree increments.


The configuration values for this block are as follows:

 
Axis Number

The index value of the desired axis

Evaluate Block This block allows you to specify whether the block executes Every Sample, Every Other Sample (Odd or Even), or Every Fourth Sample (and specify the First, Second, Third, or Fourth). This provides greater flexibility in controlling the execution of a model and to preserve performance for other areas of motion control.
User Defined Block Priority When selected, allows you to enter a Priority Code to modify Execution Ordering of this block. For more information, see Block Execution Order and User Defined Block Priority.
Priority For an explanation of how the Priority field is used by the MechaWare Model Downloader, see Block Execution Order and User Defined Block Priority.
User Data 0

Application-specific data. See User Data Storage.

User Data 1 Application-specific data. See User Data Storage.
Order Block update group number. See User Data Storage.

Matlab/Simulink

Simulink Interface

The Actual Position Output specifies which axis is being spoken-for in terms of its actual position feedback value.

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:

  1

C++ API

Actual Position Out

There is no C++ API interface for this block.

See Also

Memory | Noise Generator | Actual Position | Command Position | Position Error | Memory User Buffer | Command Acceleration | Command Velocity | Torque Output | Memory Out | Memory Out User Buffer | Scope | Feedback | Reset Status | Test In | Test Out

 

       Legal Notice  |  Tech Email  |  Feedback
      
Copyright ©
2001-2012 Motion Engineering