Table of Contents
Indefinite Integral
Overview
This pipeline command computes an indefinite integral from the start event to the stop event. This is a cumulative integral, with the value of each frame indicating the cumulative sum from the start event's initial value. This cumulative sum process uses the trapezoidal rule.
For a given signal, s, the value of its integral at a given frame at time t is computed from the previous frame, at time t-1, as follows:
integral (t) = integral (t-1) + ((s(t)+s(t-1))* T / 2)
where T = time between frames (this is the data rate)
Pipeline Command
The command can be found in the Pipeline Workshop under Signal Math as so:
Indefinite_Integral ! /SIGNAL_TYPES= ! /SIGNAL_FOLDER=ORIGINAL ! /SIGNAL_NAMES= ! /RESULT_TYPES= ! /RESULT_FOLDERS=PROCESSED ! /RESULT_NAME= ! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE ! /EVENT_SEQUENCE= ! /EXCLUDE_EVENTS= ! /EVENT_INSTANCE=0 ! /INITIAL_VALUES= ;
Command Parameters
The parameters that can be modified for this command are as follows:
| Signal Types | The type of signal to be evaluated |
| Signal Name | The name of the signal to be evaluated |
| Signal Folder | The name of the signal folder |
| Result Types | The type of the resulting signal |
| Result Name | The name of the resulting signal |
| Result Folder | The name of the resulting folder |
| Apply As Suffix To Signal Name | The result is given the same name as the original signal with the result name added as a suffix |
| Event Sequence | A specific sequence of events to which this command is applied |
| Exclude Events | Exclude sequences that include a certain event |
| Event Instance | Which instance of the event sequence to apply the command to (default is all) |
| Initial Values | Initial value of the integral |
Notes
The Metric_Integrate command will return the integral as a metric.
Valid Result_Types are restricted according to the Signal_Types that are input into the command. If the Signal_Types are from the TARGET data type, then the result type can only be TARGET, DERIVED, or METRIC.
The Initial_Value parameter, if used, must be a signal expression that can return multiple components. The same Initial_Value expression is used for all signals.
Legacy Paramters
Earlier versions of Visual3D accepted the following parameters for this command. These parameters are no longer supported.
| Indefinite_Integral | |
| Result_Suffix | The result is given the same name as the original signal with the suffix added |
| Start_At_Event | The event at the beginning of the range |
| End_At_Event | The event at the end of the range |
| Initial_Value | The value of the integral at the start event |
Example: Foot Angular Velocity from Angular Acceleration
This example shows how the Indefinite_Integral command can be used to calculate the angular velocity of a subject's right foot from its angular acceleration:
Indefinite_Integral /SIGNAL_TYPES=KINETIC_KINEMATIC /SIGNAL_FOLDER=RFT /SIGNAL_NAMES=AngAcc /RESULT_TYPES=KINETIC_KINEMATIC ! /RESULT_FOLDERS=PROCESSED /RESULT_NAME=Foot_Ang_Velocity ! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE ! /EVENT_SEQUENCE= ! /EXCLUDE_EVENTS= ! /EVENT_INSTANCE=0 ! /INITIAL_VALUES= ;
Example: COM Velocity from GRF
This example calculates the velocity of the center of mass from force platform data during a vertical jump using the Indefinite_Integral command. Constants of integration (initial value) must be determined. In this case, the initial value is the initial velocity at the start of the preparation for the jump which is zero.
Note: This is only an example and you should check the constants of integration for your analysis.
!************************************************************************ ! Take the vertical GRF, subtract the body weight, and divide the ! result by body mass to get the vertical COM acceleration !************************************************************************ ! Add the two signals from F1 and F2 - end result is GRF for both plates Add_Signals /SIGNAL_TYPES=FORCE+FORCE /SIGNAL_NAMES=FP1+FP2 /SIGNAL_FOLDER=PROCESSED+PROCESSED /RESULT_NAME=GRF /RESULT_FOLDER=PROCESSED ; ! Subtract the body weight in N - Metric is MASS_N Subtract_Signals /SIGNAL_TYPES=DERIVED+METRIC /SIGNAL_FOLDER=PROCESSED /SIGNAL_NAMES=GRF+MASS_N /COMPONENT_SEQUENCE=Z, ALL /RESULT_NAME=GRF_R ! /RESULT_FOLDER=PROCESSED ;
! Divide the result by body mass to get the vertical COM acceleration Divide_Signals /SIGNAL_TYPES=DERIVED+METRIC /SIGNAL_FOLDER=PROCESSED /SIGNAL_NAMES=GRF_R+MASS /COMPONENT_SEQUENCE=ALL /RESULT_NAME=COM_GRF_Z_ACCEL ! /RESULT_FOLDER=PROCESSED ; !************************************************************ ! Integrate the vertical COM acceleration over time to get the ! change in vertical COM velocity. Initial value is zero !*********************************************************** Indefinite_Integral /SIGNAL_TYPES=DERIVED /SIGNAL_NAMES=COM_GRF_Z_ACCEL /SIGNAL_FOLDER=PROCESSED /RESULT_NAME=_VEL ! /RESULT_FOLDERS=PROCESSED /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE ! /EVENT_SEQUENCE= ! /EXCLUDE_EVENTS= ! /EVENT_INSTANCE=0 ! /INITIAL_VALUES= ;
