visual3d:documentation:pipeline:model_based_data_commands:joint_work
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
visual3d:documentation:pipeline:model_based_data_commands:joint_work [2024/07/16 19:30] – created sgranger | visual3d:documentation:pipeline:model_based_data_commands:joint_work [2024/09/25 06:58] (current) – Fleshed out the page and re-included some examples from the Wayback Machine. wikisysop | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | || | + | This page provides three different overviews of how to calculate mechanical work (the time integration of power profiles) at a joint. All three examples assume that a [[visual3d: |
- | This page discusses how to calculate mechanical work (time integration of the power profiles) at a joint. | + | Calculating mechanical work at a joint requires |
+ | |||
+ | ==== Example 1: Use Evaluate_Expression ==== | ||
+ | |||
+ | In this method we use [[visual3d: | ||
< | < | ||
- | ! Set all frames for all three components to DATA NOT FOUND for any frame | + | ! Save a " |
- | ! | + | ! three components to DATA NOT FOUND for any frame ABOVE zero |
Evaluate_Expression | Evaluate_Expression | ||
Line 20: | Line 24: | ||
; | ; | ||
- | ! Set all frames for all three components to DATA NOT FOUND for any frame | + | ! Save a " |
- | ! | + | ! three components to DATA NOT FOUND for any frame BELOW zero |
Evaluate_Expression | Evaluate_Expression | ||
Line 34: | Line 38: | ||
; | ; | ||
- | ! Integrate over stance | + | ! Integrate over the right stance |
Metric_Integrate | Metric_Integrate | ||
Line 51: | Line 55: | ||
! / | ! / | ||
; | ; | ||
+ | |||
+ | ! Integrate over the left stance phase | ||
Metric_Integrate | Metric_Integrate | ||
Line 69: | Line 75: | ||
</ | </ | ||
+ | ==== Example 2: Calculate Positive and Negative Work Separately ==== | ||
+ | In this method we determine the phases of positive and negative power by computing [[visual3d: | ||
+ | < | ||
+ | !************************************** | ||
+ | ! Calculate zero crossing events | ||
+ | !************************************** | ||
+ | |||
+ | ! Calculate the PowerPos event - when signal crossing ascends | ||
+ | Event_Threshold | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | /Radius=8 | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | ! Calculate the PowerNeg event - when signal crossing descends | ||
+ | Event_Threshold | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | /Radius=8 | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | !********************************************************************** | ||
+ | ! Compute positive and negative work for each range of positive power. | ||
+ | !********************************************************************** | ||
+ | |||
+ | ! Calculate right ankle positive work by time integration of right ankle power from | ||
+ | ! PowerPos event to PowerNeg event | ||
+ | Metric_Integrate | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | ! Calculate right ankle negative work by time integration of right ankle power | ||
+ | ! from PowerNeg event to PowerPos event | ||
+ | Metric_Integrate | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | !************************************************************************ | ||
+ | ! Compute the total positive and total negative work by summing the work. | ||
+ | !************************************************************************ | ||
+ | |||
+ | !Compute total positive work for the right ankle | ||
+ | Metric_Sum | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | !Compute total negative work for the right ankle | ||
+ | Metric_Sum | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | ==== Example 3: Calculate Work for Kinetic Event Sequences ==== | ||
+ | |||
+ | The previous example breaks down if you want to compute work between kinetic events such as RON and ROFF because 2 occurrences of the event PowerNeg may not be created. This happens because RON is an event in which the Ankle Power is already negative and ROFF is an event in which Ankle Power hasn't become negative yet. | ||
+ | |||
+ | The workaround is to create a PowerNeg event at RON and create a PowerNeg event at ROFF using the following commands before the events section of the script above. | ||
+ | |||
+ | < | ||
+ | Event_Copy | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ; | ||
+ | |||
+ | Event_Copy | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ; | ||
+ | </ |
visual3d/documentation/pipeline/model_based_data_commands/joint_work.1721158223.txt.gz · Last modified: 2024/07/16 19:30 by sgranger