User Tools

Site Tools


visual3d:documentation:pipeline:signal_commands:indefinite_integral

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 TypesThe type of signal to be evaluated
Signal NameThe name of the signal to be evaluated
Signal FolderThe name of the signal folder
Result TypesThe type of the resulting signal
Result NameThe name of the resulting signal
Result FolderThe name of the resulting folder
Apply As Suffix To Signal NameThe result is given the same name as the original signal with the result name added as a suffix
Event SequenceA specific sequence of events to which this command is applied
Exclude EventsExclude sequences that include a certain event
Event InstanceWhich instance of the event sequence to apply the command to (default is all)
Initial ValuesInitial 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=
;
visual3d/documentation/pipeline/signal_commands/indefinite_integral.txt · Last modified: 2026/01/22 18:42 by wikisysop