Grid Templates Dashboard
| ▼ 1. MASTER GRID SETTINGS | ||||
| ☰ | \( T_{seg} \) | GRID Target Segments |
View Help GuidePurpose: Sets the number of segments to display in the grid view
Logic: Manually adjust the numbers of segments to interrogate
Type: Manual Entry
Render on Grids: None
Mathematical Formula:
$$\text{User Input}$$ Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
|
| ☰ | \( N_{\text{enablers}} \) | GRID Enablers Per Segment | 7.00 |
View Help GuidePurpose: Details the number of enablers used in the GMEG
Logic: Pulls the number of enablers directly from the GMEG settings
Type: Calculated (Math Output)
Render on Grids: None
Mathematical Formula:
$$N_{\text{enablers}} = N_{\text{enablers}}$$ Python Logic:
v["Number of Gravity Enablers"]Live Evaluation: [ROUTE: GRID] 7.0000 = 7.0000
|
| ☰ | \( G_{\text{hz}} \) | GRID Operating Frequency Hz | 60.00 |
View Help GuidePurpose: States the operational interrogation frequency
Logic: Changing the track slant impacts the operating frequency
Type: Calculated (Math Output)
Render on Grids: None
Mathematical Formula:
$$G_{\text{hz}} = \theta_{\text{tilt}} \times 2$$ Python Logic:
v["Angle tilt (degrees)"]*2Live Evaluation: [ROUTE: GRID] 30.0000*2 = 60.0000
|
| ▼ 3. SPATIAL BLUEPRINTS - S1 E1 Base | ||||
| ☰ | \( d_{track} \) | Distance on track (m) | 0.77 |
View Help GuidePurpose: Tracking where each individual enabler is on the physical track layout while making sure it resets cleanly to zero once it finishes a complete lap.
Logic: Establishes the absolute zero starting point for the master train sequence in the simulation.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque
Mathematical Formula:
$$d_{track} = ( L_{\text{run}} + R_{z1, start} ) - ( L_{\text{seg}} + ( ( ( N_{\text{enablers}} -1 ) / 2 ) \times L_{\text{gap}} ) ) if R_{z1, start} - L_{\text{seg}} - ( ( ( N_{\text{enablers}} -1 ) / 2 ) \times L_{\text{gap}} ) < 0 else R_{z1, start} - L_{\text{seg}} - ( ( ( N_{\text{enablers}} -1 ) / 2 ) \times L_{\text{gap}} )$$ Python Logic:
( v["Track full run length (m)"] + v["RotZone1 Start (m)"] ) - ( v["Distance travelled per segment (m)"] + ( ( ( v["Number of Gravity Enablers"] -1 ) / 2 ) * v["Enabler gap length (m)"] ) ) if v["RotZone1 Start (m)"] - v["Distance travelled per segment (m)"] - ( ( ( v["Number of Gravity Enablers"] -1 ) / 2 ) * v["Enabler gap length (m)"] ) < 0 else v["RotZone1 Start (m)"] - v["Distance travelled per segment (m)"] - ( ( ( v["Number of Gravity Enablers"] -1 ) / 2 ) * v["Enabler gap length (m)"] )Live Evaluation: [ROUTE: GRID] ( 20.0000 + 3.4000 ) - ( 0.1200 + ( ( ( 7.0000 -1 ) / 2 ) * 0.8354 ) ) if 3.4000 - 0.1200 - ( ( ( 7.0000 -1 ) / 2 ) * 0.8354 ) < 0 else 3.4000 - 0.1200 - ( ( ( 7.0000 -1 ) / 2 ) * 0.8354 ) = 0.7739
|
| ☰ | \( d_{ce} \) | Centre Enabler Distance (m) | 3.28 |
View Help GuidePurpose: Pulling the exact track distance of the center enabler for the current segment to use as our master structural baseline.
Logic: Uses SUMIFS to target and isolate the specific track position of the "Centre" enabler from the Rotational Torque sheet.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque
Mathematical Formula:
$$d_{ce} = R_{z1, start} - L_{\text{seg}}$$ Python Logic:
v["RotZone1 Start (m)"] - v["Distance travelled per segment (m)"]Live Evaluation: [ROUTE: GRID] 3.4000 - 0.1200 = 3.2800
|
| ☰ | \( \Delta d_{ce} \) | Centre Enabler Difference (m) | 0.12 |
View Help GuidePurpose: Calculating the master spatial step size based directly on the velocity and track slant gear ratio.
Logic: Divides the operational velocity by the track slant gear ratio to determine exactly how far the train moves per simulation tick.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$\Delta d_{ce} = L_{\text{seg}} if d_{ce} == 0 else (R_{z1, start} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z1, start} else L_{\text{seg}}) if d_{ce} < (R_{z1, start} - 0.0001) else (R_{z1, end} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z1, end} else L_{\text{seg}}) if d_{ce} < (R_{z1, end} - 0.0001) else (R_{z2, start} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z2, start} else L_{\text{seg}}) if d_{ce} < (R_{z2, start} - 0.0001) else (R_{z2, end} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z2, end} else L_{\text{seg}}) if d_{ce} < (R_{z2, end} - 0.0001) else L_{\text{seg}}$$ Python Logic:
v["Distance travelled per segment (m)"] if v["Centre Enabler Distance (m)"] == 0 else (v["RotZone1 Start (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone1 Start (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone1 Start (m)"] - 0.0001) else (v["RotZone1 End (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone1 End (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone1 End (m)"] - 0.0001) else (v["RotZone2 Start (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone2 Start (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone2 Start (m)"] - 0.0001) else (v["RotZone2 End (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone2 End (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone2 End (m)"] - 0.0001) else v["Distance travelled per segment (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 if 2.5061 == 0 else (3.4000 - 2.5061 if (2.5061 + 0.1200) > 3.4000 else 0.1200) if 2.5061 < (3.4000 - 0.0001) else (10.6000 - 2.5061 if (2.5061 + 0.1200) > 10.6000 else 0.1200) if 2.5061 < (10.6000 - 0.0001) else (13.4000 - 2.5061 if (2.5061 + 0.1200) > 13.4000 else 0.1200) if 2.5061 < (13.4000 - 0.0001) else (20.6000 - 2.5061 if (2.5061 + 0.1200) > 20.6000 else 0.1200) if 2.5061 < (20.6000 - 0.0001) else 0.1200 = 0.1200
|
| ☰ | \( P_{trans} \) | Transformed Enabler Distance (m) | 0.12 |
View Help GuidePurpose: Figuring out the new position of the enabler after it takes a step, making sure it cleanly wraps around the finish line back to the start if it overshoots.
Logic: Adds the step difference to the current distance, using an IF statement to subtract the total track length if it exceeds the finish line, ensuring an infinite mathematical loop.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{trans} = d_{track}+\Delta d_{ce} - L_{c2} if d_{track}+\Delta d_{ce} > L_{c2} else d_{track}+\Delta d_{ce}$$ Python Logic:
v["Distance on track (m)"]+v["Centre Enabler Difference (m)"] - v["Physical End Corner2 (m)"] if v["Distance on track (m)"]+v["Centre Enabler Difference (m)"] > v["Physical End Corner2 (m)"] else v["Distance on track (m)"]+v["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.1200 - 20.0000 if 0.0000+0.1200 > 20.0000 else 0.0000+0.1200 = 0.1200
|
| ☰ | \( d_{track} \) | TAR Distance on track (m) | 0.77 |
View Help GuidePurpose: Establishing the baseline distance on the track specifically for the TAR sandbox calculations.
Logic: Mirrors the master track distance to identically initialize the isolated Track Arc Rotation (TAR) physics sandbox.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$d_{track} = ( L_{\text{run}} + R_{z1, start} ) - ( L_{\text{seg}} + ( ( ( N_{\text{enablers}} -1 ) / 2 ) \times L_{\text{gap}} ) ) if R_{z1, start} - L_{\text{seg}} - ( ( ( N_{\text{enablers}} -1 ) / 2 ) \times L_{\text{gap}} ) < 0 else R_{z1, start} - L_{\text{seg}} - ( ( ( N_{\text{enablers}} -1 ) / 2 ) \times L_{\text{gap}} )$$ Python Logic:
( v["Track full run length (m)"] + v["RotZone1 Start (m)"] ) - ( v["Distance travelled per segment (m)"] + ( ( ( v["Number of Gravity Enablers"] -1 ) / 2 ) * v["Enabler gap length (m)"] ) ) if v["RotZone1 Start (m)"] - v["Distance travelled per segment (m)"] - ( ( ( v["Number of Gravity Enablers"] -1 ) / 2 ) * v["Enabler gap length (m)"] ) < 0 else v["RotZone1 Start (m)"] - v["Distance travelled per segment (m)"] - ( ( ( v["Number of Gravity Enablers"] -1 ) / 2 ) * v["Enabler gap length (m)"] )Live Evaluation: [ROUTE: GRID] ( 20.0000 + 3.4000 ) - ( 0.1200 + ( ( ( 7.0000 -1 ) / 2 ) * 0.8354 ) ) if 3.4000 - 0.1200 - ( ( ( 7.0000 -1 ) / 2 ) * 0.8354 ) < 0 else 3.4000 - 0.1200 - ( ( ( 7.0000 -1 ) / 2 ) * 0.8354 ) = 0.7739
|
| ☰ | \( P_{TAR,ce} \) | TAR Centre Enabler Distance (m) | 3.28 |
View Help GuidePurpose: Isolating the exact position of the center enabler inside the TAR tracking loop to manage our process boundaries.
Logic: Pulls the "Centre" enabler's sandbox position to serve as the local spatial anchor for TAR logic.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{TAR,ce} = R_{z1, start} - L_{\text{seg}}$$ Python Logic:
v["RotZone1 Start (m)"] - v["Distance travelled per segment (m)"]Live Evaluation: [ROUTE: GRID] 3.4000 - 0.1200 = 3.2800
|
| ☰ | \( \Delta d_{TAR} \) | TAR Difference (m) | 0.12 |
View Help GuidePurpose: Setting the step size for the TAR tracker, locking it perfectly in sync with our master track step.
Logic: Inherits the master step size so the TAR sandbox moves at the exact same velocity as the primary simulation.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$\Delta d_{TAR} = L_{\text{seg}} if d_{ce} == 0 else (R_{z1, start} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z1, start} else L_{\text{seg}}) if d_{ce} < (R_{z1, start} - 0.0001) else (R_{z1, end} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z1, end} else L_{\text{seg}}) if d_{ce} < (R_{z1, end} - 0.0001) else (R_{z2, start} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z2, start} else L_{\text{seg}}) if d_{ce} < (R_{z2, start} - 0.0001) else (R_{z2, end} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z2, end} else L_{\text{seg}}) if d_{ce} < (R_{z2, end} - 0.0001) else L_{\text{seg}}$$ Python Logic:
v["Distance travelled per segment (m)"] if v["Centre Enabler Distance (m)"] == 0 else (v["RotZone1 Start (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone1 Start (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone1 Start (m)"] - 0.0001) else (v["RotZone1 End (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone1 End (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone1 End (m)"] - 0.0001) else (v["RotZone2 Start (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone2 Start (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone2 Start (m)"] - 0.0001) else (v["RotZone2 End (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone2 End (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone2 End (m)"] - 0.0001) else v["Distance travelled per segment (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 if 2.5061 == 0 else (3.4000 - 2.5061 if (2.5061 + 0.1200) > 3.4000 else 0.1200) if 2.5061 < (3.4000 - 0.0001) else (10.6000 - 2.5061 if (2.5061 + 0.1200) > 10.6000 else 0.1200) if 2.5061 < (10.6000 - 0.0001) else (13.4000 - 2.5061 if (2.5061 + 0.1200) > 13.4000 else 0.1200) if 2.5061 < (13.4000 - 0.0001) else (20.6000 - 2.5061 if (2.5061 + 0.1200) > 20.6000 else 0.1200) if 2.5061 < (20.6000 - 0.0001) else 0.1200 = 0.1200
|
| ☰ | \( P_{trans} \) | TAR Transformed Enabler Distance (m) | 0.12 |
View Help GuidePurpose: Moving the TAR tracker forward by one step and executing our critical structural overshoot adjustment at the end of TAR 2 to keep the degrees perfect.
Logic: Advances the sandbox position and triggers a geometric correction if the enabler overshoots the final rotation zone, keeping the structural degrees perfectly aligned.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{trans} = d_{track} + \Delta d_{ce} - R_{z2, end} if d_{track} + \Delta d_{ce} > R_{z2, end} else d_{track} + \Delta d_{ce}$$ Python Logic:
v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"] - v["RotZone2 End (m)"] if v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"] > v["RotZone2 End (m)"] else v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.0000 + 0.1200 - 20.6000 if 0.0000 + 0.1200 > 20.6000 else 0.0000 + 0.1200 = 0.1200
|
| ▼ 3. SPATIAL BLUEPRINTS - S1 E2 Loop | ||||
| ☰ | \( d_{track} \) | Distance on track (m) | 0.84 |
View Help GuidePurpose: Tracking where each individual enabler is on the physical track layout while making sure it resets cleanly to zero once it finishes a complete lap.
Logic: Pulls the absolute starting position for Enabler 2 from the master sheet, which inherently accounts for the physical gap between the enablers.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque
Mathematical Formula:
$$d_{track} = v_pred_{track} + L_{\text{gap}} - L_{c2} if v_pred_{track} + L_{\text{gap}} > L_{c2} else v_pred_{track}+L_{\text{gap}}$$ Python Logic:
v_prev["Distance on track (m)"] + v["Enabler gap length (m)"] - v["Physical End Corner2 (m)"] if v_prev["Distance on track (m)"] + v["Enabler gap length (m)"] > v["Physical End Corner2 (m)"] else v_prev["Distance on track (m)"]+v["Enabler gap length (m)"]Live Evaluation: [ROUTE: GRID] 0.0000 + 0.8354 - 20.0000 if 0.0000 + 0.8354 > 20.0000 else 0.0000+0.8354 = 0.8354
|
| ☰ | \( d_{ce} \) | Centre Enabler Distance (m) | 2.51 |
View Help GuidePurpose: Pulling the exact track distance of the center enabler for the current segment to use as our master structural baseline.
Logic: Uses SUMIFS to target and isolate the specific track position of the "Centre" enabler from the Rotational Torque sheet.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque
Mathematical Formula:
$$d_{ce} = v_pred_{ce}$$ Python Logic:
v_prev["Centre Enabler Distance (m)"]Live Evaluation: [ROUTE: GRID] 2.5061 = 2.5061
|
| ☰ | \( \Delta d_{ce} \) | Centre Enabler Difference (m) | 0.12 |
View Help GuidePurpose: Calculating the master spatial step size based directly on the velocity and track slant gear ratio.
Logic: Directly points to the Enabler 1 step size, mathematically guaranteeing the entire train moves in perfect unison as a single rigid body.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$\Delta d_{ce} = v_pre\Delta d_{ce}$$ Python Logic:
v_prev["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 = 0.1200
|
| ☰ | \( P_{trans} \) | Transformed Enabler Distance (m) | 0.96 |
View Help GuidePurpose: Figuring out the new position of the enabler after it takes a step, making sure it cleanly wraps around the finish line back to the start if it overshoots.
Logic: Applies the shared step size to this enabler's unique starting distance, employing the same finish-line wrap-around logic as Enabler 1.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{trans} = d_{track} + \Delta d_{ce} - L_{c2} if d_{track} + \Delta d_{ce} > L_{c2} else d_{track}+\Delta d_{ce}$$ Python Logic:
v["Distance on track (m)"] + v["Centre Enabler Difference (m)"] - v["Physical End Corner2 (m)"] if v["Distance on track (m)"] + v["Centre Enabler Difference (m)"] > v["Physical End Corner2 (m)"] else v["Distance on track (m)"]+v["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.8354 + 0.1200 - 20.0000 if 0.8354 + 0.1200 > 20.0000 else 0.8354+0.1200 = 0.9554
|
| ☰ | \( d_{track} \) | TAR Distance on track (m) | 0.84 |
View Help GuidePurpose: Establishing the baseline distance on the track specifically for the TAR sandbox calculations.
Logic: Mirrors the master track distance to identically initialize the isolated Track Arc Rotation (TAR) physics sandbox for this enabler.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$d_{track} = v_pred_{track}+L_{\text{gap}}$$ Python Logic:
v_prev["TAR Distance on track (m)"]+v["Enabler gap length (m)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.8354 = 0.8354
|
| ☰ | \( P_{TAR,ce} \) | TAR Centre Enabler Distance (m) | 2.51 |
View Help GuidePurpose: Isolating the exact position of the center enabler inside the TAR tracking loop to manage our process boundaries.
Logic: Pulls the "Centre" enabler's sandbox position to serve as the local spatial anchor for TAR logic.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{TAR,ce} = v_preP_{TAR,ce}$$ Python Logic:
v_prev["TAR Centre Enabler Distance (m)"]Live Evaluation: [ROUTE: GRID] 2.5061 = 2.5061
|
| ☰ | \( \Delta d_{TAR} \) | TAR Difference (m) | 0.12 |
View Help GuidePurpose: Setting the step size for the TAR tracker, locking it perfectly in sync with our master track step.
Logic: Inherits the sandbox step size from Enabler 1 to keep the secondary TAR tracking in perfect sync with the primary system's velocity.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$\Delta d_{TAR} = v_pre\Delta d_{TAR}$$ Python Logic:
v_prev["TAR Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 = 0.1200
|
| ☰ | \( P_{trans} \) | TAR Transformed Enabler Distance (m) | 0.96 |
View Help GuidePurpose: Moving the TAR tracker forward by one step and executing our critical structural overshoot adjustment at the end of TAR 2 to keep the degrees perfect.
Logic: Advances the sandbox position and triggers a geometric correction if this enabler overshoots the final rotation zone, keeping the structural degrees perfectly aligned.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{trans} = d_{track} + \Delta d_{ce} - R_{z2, end} if d_{track} + \Delta d_{ce} > R_{z2, end} else d_{track} + \Delta d_{ce}$$ Python Logic:
v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"] - v["RotZone2 End (m)"] if v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"] > v["RotZone2 End (m)"] else v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.8354 + 0.1200 - 20.6000 if 0.8354 + 0.1200 > 20.6000 else 0.8354 + 0.1200 = 0.9554
|
| ▼ 3. SPATIAL BLUEPRINTS - S2 E1 Transition | ||||
| ☰ | \( d_{track} \) | Distance on track (m) | 0.12 |
View Help GuidePurpose: Tracking where each individual enabler is on the physical track layout while making sure it resets cleanly to zero once it finishes a complete lap.
Logic: The Time Bridge: Reaches back exactly one time segment to grab the Transformed Position, making the end of Segment 1 the exact starting point of Segment 2.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque
Mathematical Formula:
$$d_{track} = v_prev_seg["Transformed Enabler Distance (m)"]$$ Python Logic:
v_prev_seg["Transformed Enabler Distance (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 = 0.1200
|
| ☰ | \( d_{ce} \) | Centre Enabler Distance (m) | 0.00 |
View Help GuidePurpose: Pulling the exact track distance of the center enabler for the current segment to use as our master structural baseline.
Logic: Uses SUMIFS to isolate the center enabler's position in this new time step.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque
Mathematical Formula:
$$d_{ce} = v_prev_seg["TAR Centre Enabler Distance (m)"] + v_prev_seg["TAR Difference (m)"] - R_{z2, end} + (D_{\text{centre}} - C_{\text{corner, dist}}) if round(v_prev_seg["TAR Centre Enabler Distance (m)"] + v_prev_seg["TAR Difference (m)"],1) >= (R_{z2, end} - 0.001) else v_prev_seg["TAR Centre Enabler Distance (m)"] + v_prev_seg["TAR Difference (m)"]$$ Python Logic:
v_prev_seg["TAR Centre Enabler Distance (m)"] + v_prev_seg["TAR Difference (m)"] - v["RotZone2 End (m)"] + (v["Centre enabler distance from rounded corner centre (m)"] - v["Half semi corner Circumference (m)"]) if round(v_prev_seg["TAR Centre Enabler Distance (m)"] + v_prev_seg["TAR Difference (m)"],1) >= (v["RotZone2 End (m)"] - 0.001) else v_prev_seg["TAR Centre Enabler Distance (m)"] + v_prev_seg["TAR Difference (m)"]Live Evaluation: Error calculating preview: name 'round' is not defined
|
| ☰ | \( \Delta d_{ce} \) | Centre Enabler Difference (m) | 0.12 |
View Help GuidePurpose: Calculating the master spatial step size based directly on the velocity and track slant gear ratio.
Logic: The Boundary Engine: Evaluates the enabler's proximity to all four Rotational Zone boundaries. If a standard step would cross a boundary, it dynamically shrinks the step size to land exactly on the line.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$\Delta d_{ce} = L_{\text{seg}} if d_{ce} == 0 else (R_{z1, start} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z1, start} else L_{\text{seg}}) if d_{ce} < (R_{z1, start} - 0.0001) else (R_{z1, end} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z1, end} else L_{\text{seg}}) if d_{ce} < (R_{z1, end} - 0.0001) else (R_{z2, start} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z2, start} else L_{\text{seg}}) if d_{ce} < (R_{z2, start} - 0.0001) else (R_{z2, end} - d_{ce} if (d_{ce} + L_{\text{seg}}) > R_{z2, end} else L_{\text{seg}}) if d_{ce} < (R_{z2, end} - 0.0001) else L_{\text{seg}}$$ Python Logic:
v["Distance travelled per segment (m)"] if v["Centre Enabler Distance (m)"] == 0 else (v["RotZone1 Start (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone1 Start (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone1 Start (m)"] - 0.0001) else (v["RotZone1 End (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone1 End (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone1 End (m)"] - 0.0001) else (v["RotZone2 Start (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone2 Start (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone2 Start (m)"] - 0.0001) else (v["RotZone2 End (m)"] - v["Centre Enabler Distance (m)"] if (v["Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone2 End (m)"] else v["Distance travelled per segment (m)"]) if v["Centre Enabler Distance (m)"] < (v["RotZone2 End (m)"] - 0.0001) else v["Distance travelled per segment (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 if 3.2425 == 0 else (3.4000 - 3.2425 if (3.2425 + 0.1200) > 3.4000 else 0.1200) if 3.2425 < (3.4000 - 0.0001) else (10.6000 - 3.2425 if (3.2425 + 0.1200) > 10.6000 else 0.1200) if 3.2425 < (10.6000 - 0.0001) else (13.4000 - 3.2425 if (3.2425 + 0.1200) > 13.4000 else 0.1200) if 3.2425 < (13.4000 - 0.0001) else (20.6000 - 3.2425 if (3.2425 + 0.1200) > 20.6000 else 0.1200) if 3.2425 < (20.6000 - 0.0001) else 0.1200 = 0.1200
|
| ☰ | \( P_{trans} \) | Transformed Enabler Distance (m) | 0.24 |
View Help GuidePurpose: Figuring out the new position of the enabler after it takes a step, making sure it cleanly wraps around the finish line back to the start if it overshoots.
Logic: Adds the newly calculated (and potentially boundary-shrunk) step size to the current distance, employing the lap wrap-around logic.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{trans} = d_{track}+\Delta d_{ce}-L_{c2} if d_{track}+\Delta d_{ce}>L_{c2} else d_{track}+\Delta d_{ce}$$ Python Logic:
v["Distance on track (m)"]+v["Centre Enabler Difference (m)"]-v["Physical End Corner2 (m)"] if v["Distance on track (m)"]+v["Centre Enabler Difference (m)"]>v["Physical End Corner2 (m)"] else v["Distance on track (m)"]+v["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.1200+0.1200-20.0000 if 0.1200+0.1200>20.0000 else 0.1200+0.1200 = 0.2400
|
| ☰ | \( d_{track} \) | TAR Distance on track (m) | 0.12 |
View Help GuidePurpose: Establishing the baseline distance on the track specifically for the TAR sandbox calculations.
Logic: Inherits the TAR Transformed position from the previous time step, mirroring the master time transition for the sandbox.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$d_{track} = v_prev_seg["TAR Transformed Enabler Distance (m)"]$$ Python Logic:
v_prev_seg["TAR Transformed Enabler Distance (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 = 0.1200
|
| ☰ | \( P_{TAR,ce} \) | TAR Centre Enabler Distance (m) | 0.00 |
View Help GuidePurpose: Isolating the exact position of the center enabler inside the TAR tracking loop to manage our process boundaries.
Logic: Pulls the "Centre" enabler's sandbox position to serve as the local spatial anchor for TAR logic in the new time step.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{TAR,ce} = v_prev_seg["TAR Centre Enabler Distance (m)"]+v_prev_seg["TAR Difference (m)"]-R_{z2, end}+(D_{\text{centre}}-C_{\text{corner, dist}} ) if round(v_prev_seg["TAR Centre Enabler Distance (m)"]+v_prev_seg["TAR Difference (m)"]+0.001,3)>=R_{z2, end} else v_prev_seg["TAR Centre Enabler Distance (m)"]+v_prev_seg["TAR Difference (m)"]$$ Python Logic:
v_prev_seg["TAR Centre Enabler Distance (m)"]+v_prev_seg["TAR Difference (m)"]-v["RotZone2 End (m)"]+(v["Centre enabler distance from rounded corner centre (m)"]-v["Half semi corner Circumference (m)"] ) if round(v_prev_seg["TAR Centre Enabler Distance (m)"]+v_prev_seg["TAR Difference (m)"]+0.001,3)>=v["RotZone2 End (m)"] else v_prev_seg["TAR Centre Enabler Distance (m)"]+v_prev_seg["TAR Difference (m)"]Live Evaluation: Error calculating preview: name 'round' is not defined
|
| ☰ | \( \Delta d_{TAR} \) | TAR Difference (m) | 0.12 |
View Help GuidePurpose: Setting the step size for the TAR tracker, locking it perfectly in sync with our master track step.
Logic: Uses the exact same Boundary Engine logic as the master track to precisely calculate the step size for the sandbox, checking for RotZone intersections.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$\Delta d_{TAR} = L_{\text{seg}} if P_{TAR,ce} == 0 else (R_{z1, start} - P_{TAR,ce} if (P_{TAR,ce} + L_{\text{seg}}) > R_{z1, start} else L_{\text{seg}}) if P_{TAR,ce} < (R_{z1, start} - 0.0001) else (R_{z1, end} - P_{TAR,ce} if (P_{TAR,ce} + L_{\text{seg}}) > R_{z1, end} else L_{\text{seg}}) if P_{TAR,ce} < (R_{z1, end} - 0.0001) else (R_{z2, start} - P_{TAR,ce} if (P_{TAR,ce} + L_{\text{seg}}) > R_{z2, start} else L_{\text{seg}}) if P_{TAR,ce} < (R_{z2, start} - 0.0001) else (R_{z2, end} - P_{TAR,ce} if (P_{TAR,ce} + L_{\text{seg}}) > R_{z2, end} else L_{\text{seg}}) if P_{TAR,ce} < (R_{z2, end} - 0.0001) else L_{\text{seg}}$$ Python Logic:
v["Distance travelled per segment (m)"] if v["TAR Centre Enabler Distance (m)"] == 0 else (v["RotZone1 Start (m)"] - v["TAR Centre Enabler Distance (m)"] if (v["TAR Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone1 Start (m)"] else v["Distance travelled per segment (m)"]) if v["TAR Centre Enabler Distance (m)"] < (v["RotZone1 Start (m)"] - 0.0001) else (v["RotZone1 End (m)"] - v["TAR Centre Enabler Distance (m)"] if (v["TAR Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone1 End (m)"] else v["Distance travelled per segment (m)"]) if v["TAR Centre Enabler Distance (m)"] < (v["RotZone1 End (m)"] - 0.0001) else (v["RotZone2 Start (m)"] - v["TAR Centre Enabler Distance (m)"] if (v["TAR Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone2 Start (m)"] else v["Distance travelled per segment (m)"]) if v["TAR Centre Enabler Distance (m)"] < (v["RotZone2 Start (m)"] - 0.0001) else (v["RotZone2 End (m)"] - v["TAR Centre Enabler Distance (m)"] if (v["TAR Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"]) > v["RotZone2 End (m)"] else v["Distance travelled per segment (m)"]) if v["TAR Centre Enabler Distance (m)"] < (v["RotZone2 End (m)"] - 0.0001) else v["Distance travelled per segment (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 if 3.2425 == 0 else (3.4000 - 3.2425 if (3.2425 + 0.1200) > 3.4000 else 0.1200) if 3.2425 < (3.4000 - 0.0001) else (10.6000 - 3.2425 if (3.2425 + 0.1200) > 10.6000 else 0.1200) if 3.2425 < (10.6000 - 0.0001) else (13.4000 - 3.2425 if (3.2425 + 0.1200) > 13.4000 else 0.1200) if 3.2425 < (13.4000 - 0.0001) else (20.6000 - 3.2425 if (3.2425 + 0.1200) > 20.6000 else 0.1200) if 3.2425 < (20.6000 - 0.0001) else 0.1200 = 0.1200
|
| ☰ | \( P_{trans} \) | TAR Transformed Enabler Distance (m) | 0.24 |
View Help GuidePurpose: Moving the TAR tracker forward by one step and executing our critical structural overshoot adjustment at the end of TAR 2 to keep the degrees perfect.
Logic: Advances the TAR position while applying a highly specific ROUND check against RotZone2_End to forcefully snap the geometry back into alignment at the exact end of the rotation phase.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{trans} = d_{track} + \Delta d_{ce} - R_{z2, end} if d_{track} + \Delta d_{ce} > R_{z2, end} else d_{track} + \Delta d_{ce}$$ Python Logic:
v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"] - v["RotZone2 End (m)"] if v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"] > v["RotZone2 End (m)"] else v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 + 0.1200 - 20.6000 if 0.1200 + 0.1200 > 20.6000 else 0.1200 + 0.1200 = 0.2400
|
| ▼ 3. SPATIAL BLUEPRINTS - S2 E2 Cascade | ||||
| ☰ | \( d_{track} \) | Distance on track (m) | 0.96 |
View Help GuidePurpose: Tracking where each individual enabler is on the physical track layout while making sure it resets cleanly to zero once it finishes a complete lap.
Logic: Establishes the absolute zero starting point for the master train sequence in the simulation.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque
Mathematical Formula:
$$d_{track} = v_prev_seg["Transformed Enabler Distance (m)"]$$ Python Logic:
v_prev_seg["Transformed Enabler Distance (m)"]Live Evaluation: [ROUTE: GRID] 0.9554 = 0.9554
|
| ☰ | \( d_{ce} \) | Centre Enabler Distance (m) | 3.24 |
View Help GuidePurpose: Pulling the exact track distance of the center enabler for the current segment to use as our master structural baseline.
Logic: Uses SUMIFS to isolate the center enabler's position in this new time step.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque
Mathematical Formula:
$$d_{ce} = v_pred_{ce}$$ Python Logic:
v_prev["Centre Enabler Distance (m)"]Live Evaluation: [ROUTE: GRID] 3.2425 = 3.2425
|
| ☰ | \( \Delta d_{ce} \) | Centre Enabler Difference (m) | 0.12 |
View Help GuidePurpose: Calculating the master spatial step size based directly on the velocity and track slant gear ratio.
Logic: The Rigid Body Link: Inherits the dynamically calculated (and potentially boundary-shrunk) step size directly from S2E1 in the same time step, ensuring the train moves perfectly together.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$\Delta d_{ce} = v_pre\Delta d_{ce}$$ Python Logic:
v_prev["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 = 0.1200
|
| ☰ | \( P_{trans} \) | Transformed Enabler Distance (m) | 1.08 |
View Help GuidePurpose: Figuring out the new position of the enabler after it takes a step, making sure it cleanly wraps around the finish line back to the start if it overshoots.
Logic: Adds the S2E1 step size to the S1E2 time-shifted distance, maintaining the rigid-body gap and executing the lap-wrap check.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{trans} = d_{track}+\Delta d_{ce}-L_{c2} if d_{track}+\Delta d_{ce}>L_{c2} else d_{track}+\Delta d_{ce}$$ Python Logic:
v["Distance on track (m)"]+v["Centre Enabler Difference (m)"]-v["Physical End Corner2 (m)"] if v["Distance on track (m)"]+v["Centre Enabler Difference (m)"]>v["Physical End Corner2 (m)"] else v["Distance on track (m)"]+v["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.9554+0.1200-20.0000 if 0.9554+0.1200>20.0000 else 0.9554+0.1200 = 1.0754
|
| ☰ | \( d_{track} \) | TAR Distance on track (m) | 0.96 |
View Help GuidePurpose: Establishing the baseline distance on the track specifically for the TAR sandbox calculations.
Logic: Inherits the TAR Transformed position from the previous time step for this specific enabler, mirroring the master time transition cascade.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$d_{track} = v_prev_seg["TAR Transformed Enabler Distance (m)"]$$ Python Logic:
v_prev_seg["TAR Transformed Enabler Distance (m)"]Live Evaluation: [ROUTE: GRID] 0.9554 = 0.9554
|
| ☰ | \( P_{TAR,ce} \) | TAR Centre Enabler Distance (m) | 3.24 |
View Help GuidePurpose: Isolating the exact position of the center enabler inside the TAR tracking loop to manage our process boundaries.
Logic: Inherits the anchor position directly from S2E1, allowing the sandbox cascade to flow autonomously alongside the master track.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{TAR,ce} = v_preP_{TAR,ce}$$ Python Logic:
v_prev["TAR Centre Enabler Distance (m)"]Live Evaluation: [ROUTE: GRID] 3.2425 = 3.2425
|
| ☰ | \( \Delta d_{TAR} \) | TAR Difference (m) | 0.12 |
View Help GuidePurpose: Setting the step size for the TAR tracker, locking it perfectly in sync with our master track step.
Logic: Uses the exact same Boundary Engine logic to calculate the step size for the sandbox, checking for RotZone intersections.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$\Delta d_{TAR} = v_pre\Delta d_{TAR}$$ Python Logic:
v_prev["TAR Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.1200 = 0.1200
|
| ☰ | \( P_{trans} \) | TAR Transformed Enabler Distance (m) | 1.08 |
View Help GuidePurpose: Moving the TAR tracker forward by one step and executing our critical structural overshoot adjustment at the end of TAR 2 to keep the degrees perfect.
Logic: Advances the TAR position while applying a highly specific ROUND check against RotZone2_End to forcefully snap the geometry back into alignment at the exact end of the rotation phase.
Type: Calculated (Math Output)
Render on Grids: Spatial
Mathematical Formula:
$$P_{trans} = d_{track} + \Delta d_{ce} - R_{z2, end} if d_{track} + \Delta d_{ce} > R_{z2, end} else d_{track} + \Delta d_{ce}$$ Python Logic:
v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"] - v["RotZone2 End (m)"] if v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"] > v["RotZone2 End (m)"] else v["TAR Distance on track (m)"] + v["Centre Enabler Difference (m)"]Live Evaluation: [ROUTE: GRID] 0.9554 + 0.1200 - 20.6000 if 0.9554 + 0.1200 > 20.6000 else 0.9554 + 0.1200 = 1.0754
|
| ▼ 2. MASTER SEQUENCE BLUEPRINTS - S1 E1 Base | ||||
| ☰ | \( Rev \) | Revolution |
View Help GuidePurpose: The base revolution
Logic: Calculates the revolution number increments based on the train completing a run across the full track length
Type: Manual Entry
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\text{User Input}$$ Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
|
| ☰ | \( C \) | Cycle |
View Help GuidePurpose: Cycle 1 includes top straight track and right rounded corner, Cycle 2 includes bottom straight track and left rounded corner, repeated for cyclical observation
Logic: Calculates the cycle based on TARs, cycle 1 is TAR 1 and cycle 2 is TAR 2
Type: Manual Entry
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\text{User Input}$$ Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
|
| ☰ | \( N_{seg} \) | Segment Number |
View Help GuidePurpose: Starting at 1, each segment will equal the arc degree + 1 / lift time of a second for operational performance analysis across chosen number of enablers
Logic: Incrementally increases the segment numbers across the full operation of the machine
Type: Manual Entry
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\text{User Input}$$ Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
|
| ☰ | \( N_{en} \) | Enabler Number |
View Help GuidePurpose: A row for each of the chosen number of gravity enablers in order
Logic: Identifies the specific payload unit being tracked in this initialization row.
Type: Manual Entry
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\text{User Input}$$ Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
|
| ☰ | \( P \) | Position | Back (2) |
View Help GuidePurpose: Determine position of enablers in the train, centre with back and front
Logic: By identifying the correct position of an enabler the correct parallel force can be determined
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$P = 2 if N_{en}<(((N_{\text{enablers}}-1)/2)+1) else (1 if N_{en}==(((N_{\text{enablers}}-1)/2)+1) else 3)$$ Python Logic:
2 if v["Enabler Number"]<(((v["Number of Gravity Enablers"]-1)/2)+1) else (1 if v["Enabler Number"]==(((v["Number of Gravity Enablers"]-1)/2)+1) else 3)Live Evaluation: [ROUTE: GRID] 2 if 1.0000<(((7.0000-1)/2)+1) else (1 if 1.0000==(((7.0000-1)/2)+1) else 3) = 2.0000
|
| ☰ | \( \theta_{slant} \) | Track Slant (degree) | 30.00 |
View Help GuidePurpose: Determines when the centre enabler is a certain distance from the centre of a rounded corner, at the given velocity, track arc rotations are excecuted.
Logic: The Tilt State Machine: Evaluates if the master centre enabler is in a flat zone or rotation zone, dynamically incrementing or decrementing the track tilt angle frame-by-frame.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\theta_{slant} = \theta_{\text{tilt}}$$ Python Logic:
v["Angle tilt (degrees)"]Live Evaluation: [ROUTE: GRID] 30.0000 = 30.0000
|
| ☰ | \( S_{track} \) | Track Section | Straight Track (1) |
View Help GuidePurpose: Determining if an enabler is on the straight part of the track with a constant torque, or in the rounded corner producing variable torque
Logic: Evaluates the current distance against the physical track boundaries to tag the enabler as being on a "Straight Track" or "Rounded Corner".
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$S_{track} = 1 if d_{track}<=L_{s1} else (2 if d_{track}<L_{s2} else (1 if d_{track}<=L_{c1} else (2 if d_{track}<L_{c2} else 0)))$$ Python Logic:
1 if v["Distance on track (m)"]<=v["Physical End Straight1 (m)"] else (2 if v["Distance on track (m)"]<v["Physical End Corner1 (m)"] else (1 if v["Distance on track (m)"]<=v["Physical End Straight2 (m)"] else (2 if v["Distance on track (m)"]<v["Physical End Corner2 (m)"] else 0)))Live Evaluation: [ROUTE: GRID] 1 if 0.0000<=4.0000 else (2 if 0.0000<10.0000 else (1 if 0.0000<=14.0000 else (2 if 0.0000<20.0000 else 0))) = 1.0000
|
| ☰ | \( \text{Status} \) | Status | Idle (1) |
View Help GuidePurpose: Idle = DLLS switched off
Rotation = when centre enabler is 0.5 velocity distance from the centre of the rounded corner, rotation is activated over velocity distance for a track arc rotation from track slant degree to -track slant degree, or -track slant degree to track slant degree
Logic: The operational state machine: Swaps the drive status between "Idle" and "Rotation" based on the Centre Enabler's proximity to the corner zones.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\text{Status} = 1 if d_{ce}< R_{z1, start} else 2 if d_{ce}<R_{z1, end} else 1 if d_{ce}<R_{z2, start}else 2 if d_{ce}<R_{z2, end} else 0$$ Python Logic:
1 if v["Centre Enabler Distance (m)"]< v["RotZone1 Start (m)"] else 2 if v["Centre Enabler Distance (m)"]<v["RotZone1 End (m)"] else 1 if v["Centre Enabler Distance (m)"]<v["RotZone2 Start (m)"]else 2 if v["Centre Enabler Distance (m)"]<v["RotZone2 End (m)"] else 0Live Evaluation: [ROUTE: GRID] 1 if 2.5061< 3.4000 else 2 if 2.5061<10.6000 else 1 if 2.5061<13.4000else 2 if 2.5061<20.6000 else 0 = 1.0000
|
| ▼ 2. MASTER SEQUENCE BLUEPRINTS - S1 E2 Loop | ||||
| ☰ | \( Rev \) | Revolution | 1.00 |
View Help GuidePurpose: The base revolution
Logic: Calculates the revolution number increments based on the train completing a run across the full track length
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$Rev = v_preRev$$ Python Logic:
v_prev["Revolution"]Live Evaluation: [ROUTE: GRID] 1.0000 = 1.0000
|
| ☰ | \( C \) | Cycle | 1.00 |
View Help GuidePurpose: Cycle 1 in cludes top straight track and right rounded corner, Cycle 2 includes bottom straight track and left rounded corner, repeated for cyclical observation
Logic: Calculates the cycle based on TARs, cycle 1 is TAR 1 and cycle 2 is TAR 2
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$C = v_preC$$ Python Logic:
v_prev["Cycle"]Live Evaluation: [ROUTE: GRID] 1.0000 = 1.0000
|
| ☰ | \( N_{seg} \) | Segment Number | 1.00 |
View Help GuidePurpose: Starting at 1, each segment will equal the arc degree + 1 / lift time of a second for operational performance analysis across chosen number of enablers
Logic: Incrementally increases the segment numbers across the full operation of the machine
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$N_{seg} = v_preN_{seg}$$ Python Logic:
v_prev["Segment Number"]Live Evaluation: [ROUTE: GRID] 1.0000 = 1.0000
|
| ☰ | \( N_{en} \) | Enabler Number | 2.00 |
View Help GuidePurpose: A row for each of the chosen number of gravity enablers in order
Logic: Identifies the specific payload unit being tracked in this initialization row.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$N_{en} = v_preN_{en}+1$$ Python Logic:
v_prev["Enabler Number"]+1Live Evaluation: [ROUTE: GRID] 1.0000+1 = 2.0000
|
| ☰ | \( P \) | Position | Back (2) |
View Help GuidePurpose: Determine position of enablers in the train, centre with back and front
Logic: By identifying the correct position of an enabler the correct parallel force can be determined
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$P = 2 if N_{en}<(((N_{\text{enablers}}-1)/2)+1) else 1 if N_{en}==(((N_{\text{enablers}}-1)/2)+1) else 3$$ Python Logic:
2 if v["Enabler Number"]<(((v["Number of Gravity Enablers"]-1)/2)+1) else 1 if v["Enabler Number"]==(((v["Number of Gravity Enablers"]-1)/2)+1) else 3Live Evaluation: [ROUTE: GRID] 2 if 2.0000<(((7.0000-1)/2)+1) else 1 if 2.0000==(((7.0000-1)/2)+1) else 3 = 2.0000
|
| ☰ | \( \theta_{slant} \) | Track Slant (degree) | 30.00 |
View Help GuidePurpose: Determines when the centre enabler is a certain distance from the centre of a rounded corner, at the given velocity, track arc rotations are excecuted.
Logic: The Tilt State Machine: Evaluates if the master centre enabler is in a flat zone or rotation zone, dynamically incrementing or decrementing the track tilt angle frame-by-frame.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\theta_{slant} = v_pre\theta_{slant}$$ Python Logic:
v_prev["Track Slant (degree)"]Live Evaluation: [ROUTE: GRID] 30.0000 = 30.0000
|
| ☰ | \( S_{track} \) | Track Section | Straight Track (1) |
View Help GuidePurpose: Determining if an enabler is on the straight part of the track with a constant torque, or in the rounded corner producing variable torque.
Logic: Evaluates the current distance against the physical track boundaries to tag the enabler as being on a "Straight Track" or "Rounded Corner".
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$S_{track} = 1 if d_{track}<=L_{s1} else 2 if d_{track}<L_{s2}else 1 if d_{track}<=L_{c1} else 2 if d_{track}<L_{c2} else 0$$ Python Logic:
1 if v["Distance on track (m)"]<=v["Physical End Straight1 (m)"] else 2 if v["Distance on track (m)"]<v["Physical End Corner1 (m)"]else 1 if v["Distance on track (m)"]<=v["Physical End Straight2 (m)"] else 2 if v["Distance on track (m)"]<v["Physical End Corner2 (m)"] else 0Live Evaluation: [ROUTE: GRID] 1 if 0.8354<=4.0000 else 2 if 0.8354<10.0000else 1 if 0.8354<=14.0000 else 2 if 0.8354<20.0000 else 0 = 1.0000
|
| ☰ | \( \text{Status} \) | Status | Idle (1) |
View Help GuidePurpose: Idle = DLLS switched off
Rotation = when centre enabler is 0.5 velocity distance from the centre of the rounded corner, rotation is activated over velocity distance for a track arc rotation from track slant degree to -track slant degree, or -track slant degree to track slant degree
Logic: The operational state machine: Swaps the drive status between "Idle" and "Rotation" based on the Centre Enabler's proximity to the corner zones.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\text{Status} = v_pre\text{Status}$$ Python Logic:
v_prev["Status"]Live Evaluation: [ROUTE: GRID] 1.0000 = 1.0000
|
| ▼ 2. MASTER SEQUENCE BLUEPRINTS - S2 E1 Transition | ||||
| ☰ | \( Rev \) | Revolution | 1.00 |
View Help GuidePurpose: The base revolution
Logic: Calculates the revolution number increments based on the train completing a run across the full track length
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$Rev = v_prev_seg["Revolution"] + 1 if v_prev_seg["TAR Centre Enabler Distance (m)"] + L_{\text{seg}} >= ( R_{z2, end} - 0.001 ) else v_prev_seg["Revolution"]$$ Python Logic:
v_prev_seg["Revolution"] + 1 if v_prev_seg["TAR Centre Enabler Distance (m)"] + v["Distance travelled per segment (m)"] >= ( v["RotZone2 End (m)"] - 0.001 ) else v_prev_seg["Revolution"]Live Evaluation: [ROUTE: GRID] 1.0000 + 1 if 2.5061 + 0.1200 >= ( 20.6000 - 0.001 ) else 1.0000 = 1.0000
|
| ☰ | \( C \) | Cycle | 1.00 |
View Help GuidePurpose: Cycle 1 in cludes top straight track and right rounded corner, Cycle 2 includes bottom straight track and left rounded corner, repeated for cyclical observation
Logic: Calculates the cycle based on TARs, cycle 1 is TAR 1 and cycle 2 is TAR 2
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$C = 1 if P_{TAR,ce}<R_{z1, end}else 2 if P_{TAR,ce}<R_{z2, end} else 0$$ Python Logic:
1 if v["TAR Centre Enabler Distance (m)"]<v["RotZone1 End (m)"]else 2 if v["TAR Centre Enabler Distance (m)"]<v["RotZone2 End (m)"] else 0Live Evaluation: [ROUTE: GRID] 1 if 3.2425<10.6000else 2 if 3.2425<20.6000 else 0 = 1.0000
|
| ☰ | \( N_{seg} \) | Segment Number | 2.00 |
View Help GuidePurpose: Starting at 1, each segment will equal the arc degree + 1 / lift time of a second for operational performance analysis across chosen number of enablers
Logic: Incrementally increases the segment numbers across the full operation of the machine
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$N_{seg} = v_preN_{seg}+1$$ Python Logic:
v_prev["Segment Number"]+1Live Evaluation: [ROUTE: GRID] 1.0000+1 = 2.0000
|
| ☰ | \( N_{en} \) | Enabler Number | 1.00 |
View Help GuidePurpose: A row for each of the chosen number of gravity enablers in order
Logic: Identifies the specific payload unit being tracked in this initialization row.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$N_{en} = v_prev_seg["Enabler Number"]$$ Python Logic:
v_prev_seg["Enabler Number"]Live Evaluation: [ROUTE: GRID] 1.0000 = 1.0000
|
| ☰ | \( P \) | Position | Back (2) |
View Help GuidePurpose: Determine position of enablers in the train, centre with back and front
Logic: By identifying the correct position of an enabler the correct parallel force can be determined
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$P = v_prev_seg["Position"]$$ Python Logic:
v_prev_seg["Position"]Live Evaluation: [ROUTE: GRID] 2.0000 = 2.0000
|
| ☰ | \( \theta_{slant} \) | Track Slant (degree) | 30.00 |
View Help GuidePurpose: Determines when the centre enabler is a certain distance from the centre of a rounded corner, at the given velocity, track arc rotations are excecuted.
Logic: The Tilt State Machine: Evaluates if the master centre enabler is in a flat zone or rotation zone, dynamically incrementing or decrementing the track tilt angle frame-by-frame.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\theta_{slant} = \theta_{\text{tilt}} if P_{TAR,ce} <= R_{z1, start} else (v_prev_seg["Track Slant (degree)"] - 1 if P_{TAR,ce} < R_{z1, end} else (-\theta_{\text{tilt}} if P_{TAR,ce} <= R_{z2, start} else (v_prev_seg["Track Slant (degree)"] + 1 if P_{TAR,ce} < R_{z2, end} else 0)))$$ Python Logic:
v["Angle tilt (degrees)"] if v["TAR Centre Enabler Distance (m)"] <= v["RotZone1 Start (m)"] else (v_prev_seg["Track Slant (degree)"] - 1 if v["TAR Centre Enabler Distance (m)"] < v["RotZone1 End (m)"] else (-v["Angle tilt (degrees)"] if v["TAR Centre Enabler Distance (m)"] <= v["RotZone2 Start (m)"] else (v_prev_seg["Track Slant (degree)"] + 1 if v["TAR Centre Enabler Distance (m)"] < v["RotZone2 End (m)"] else 0)))Live Evaluation: [ROUTE: GRID] 30.0000 if 3.2425 <= 3.4000 else (30.0000 - 1 if 3.2425 < 10.6000 else (-30.0000 if 3.2425 <= 13.4000 else (30.0000 + 1 if 3.2425 < 20.6000 else 0))) = 30.0000
|
| ☰ | \( S_{track} \) | Track Section | Straight Track (1) |
View Help GuidePurpose: Determining if an enabler is on the straight part of the track with a constant torque, or in the rounded corner producing variable torque
Logic: Evaluates the current distance against the physical track boundaries to tag the enabler as being on a "Straight Track" or "Rounded Corner".
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$S_{track} = 1 if d_{track}<=L_{s1} else 2 if d_{track}<L_{s2} else 1 if d_{track}<=L_{c1} else 2 if d_{track}<L_{c2} else 0$$ Python Logic:
1 if v["Distance on track (m)"]<=v["Physical End Straight1 (m)"] else 2 if v["Distance on track (m)"]<v["Physical End Corner1 (m)"] else 1 if v["Distance on track (m)"]<=v["Physical End Straight2 (m)"] else 2 if v["Distance on track (m)"]<v["Physical End Corner2 (m)"] else 0Live Evaluation: [ROUTE: GRID] 1 if 0.1200<=4.0000 else 2 if 0.1200<10.0000 else 1 if 0.1200<=14.0000 else 2 if 0.1200<20.0000 else 0 = 1.0000
|
| ☰ | \( \text{Status} \) | Status | Idle (1) |
View Help GuidePurpose: Idle = DLLS switched off
Rotation = when centre enabler is 0.5 velocity distance from the centre of the rounded corner, rotation is activated over velocity distance for a track arc rotation from track slant degree to -track slant degree, or -track slant degree to track slant degree
Logic: The operational state machine: Swaps the drive status between "Idle" and "Rotation" based on the Centre Enabler's proximity to the corner zones.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\text{Status} = 1 if d_{ce} < R_{z1, start} - 0.001 else (2 if d_{ce} < R_{z1, end} - 0.001 else (1 if d_{ce} < R_{z2, start} - 0.001 else (2 if d_{ce} < (R_{z2, end} - 0.001) else 1)))$$ Python Logic:
1 if v["Centre Enabler Distance (m)"] < v["RotZone1 Start (m)"] - 0.001 else (2 if v["Centre Enabler Distance (m)"] < v["RotZone1 End (m)"] - 0.001 else (1 if v["Centre Enabler Distance (m)"] < v["RotZone2 Start (m)"] - 0.001 else (2 if v["Centre Enabler Distance (m)"] < (v["RotZone2 End (m)"] - 0.001) else 1)))Live Evaluation: [ROUTE: GRID] 1 if 3.2425 < 3.4000 - 0.001 else (2 if 3.2425 < 10.6000 - 0.001 else (1 if 3.2425 < 13.4000 - 0.001 else (2 if 3.2425 < (20.6000 - 0.001) else 1))) = 1.0000
|
| ▼ 2. MASTER SEQUENCE BLUEPRINTS - S2 E2 Cascade | ||||
| ☰ | \( Rev \) | Revolution | 1.00 |
View Help GuidePurpose: The base revolution
Logic: Calculates the revolution number increments based on the train completing a run across the full track length
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$Rev = v_preRev$$ Python Logic:
v_prev["Revolution"]Live Evaluation: [ROUTE: GRID] 1.0000 = 1.0000
|
| ☰ | \( C \) | Cycle | 1.00 |
View Help GuidePurpose: Cycle 1 includes top straight track and right rounded corner, Cycle 2 includes bottom straight track and left rounded corner, repeated for cyclical observation
Logic: Calculates the cycle based on TARs, cycle 1 is TAR 1 and cycle 2 is TAR 2
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$C = v_preC$$ Python Logic:
v_prev["Cycle"]Live Evaluation: [ROUTE: GRID] 1.0000 = 1.0000
|
| ☰ | \( N_{seg} \) | Segment Number | 2.00 |
View Help GuidePurpose: Starting at 1, each segment will equal the arc degree + 1 / lift time of a second for operational performance analysis across chosen number of enablers
Logic: Incrementally increases the segment numbers across the full operation of the machine
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$N_{seg} = v_preN_{seg}$$ Python Logic:
v_prev["Segment Number"]Live Evaluation: [ROUTE: GRID] 2.0000 = 2.0000
|
| ☰ | \( N_{en} \) | Enabler Number | 2.00 |
View Help GuidePurpose: A row for each of the chosen number of gravity enablers in order
Logic: Identifies the specific payload unit being tracked in this initialization row.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$N_{en} = v_prev_seg["Enabler Number"]$$ Python Logic:
v_prev_seg["Enabler Number"]Live Evaluation: [ROUTE: GRID] 2.0000 = 2.0000
|
| ☰ | \( P \) | Position | Back (2) |
View Help GuidePurpose: Determine position of enablers in the train, centre with back and front
Logic: By identifying the correct position of an enabler the correct parallel force can be determined
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$P = v_prev_seg["Position"]$$ Python Logic:
v_prev_seg["Position"]Live Evaluation: [ROUTE: GRID] 2.0000 = 2.0000
|
| ☰ | \( \theta_{slant} \) | Track Slant (degree) | 30.00 |
View Help GuidePurpose: Determines when the centre enabler is a certain distance from the centre of a rounded corner, at the given velocity, track arc rotations are excecuted.
Logic: The Tilt State Machine: Evaluates if the master centre enabler is in a flat zone or rotation zone, dynamically incrementing or decrementing the track tilt angle frame-by-frame.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\theta_{slant} = v_pre\theta_{slant}$$ Python Logic:
v_prev["Track Slant (degree)"]Live Evaluation: [ROUTE: GRID] 30.0000 = 30.0000
|
| ☰ | \( S_{track} \) | Track Section | Straight Track (1) |
View Help GuidePurpose: Determining if an enabler is on the straight part of the track with a constant torque, or in the rounded corner producing variable torque
Logic: Evaluates the current distance against the physical track boundaries to tag the enabler as being on a "Straight Track" or "Rounded Corner".
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$S_{track} = 1 if d_{track}<=L_{s1} else 2 if d_{track}<L_{s2} else 1 if d_{track}<=L_{c1} else 2 if d_{track}<L_{c2} else 0$$ Python Logic:
1 if v["Distance on track (m)"]<=v["Physical End Straight1 (m)"] else 2 if v["Distance on track (m)"]<v["Physical End Corner1 (m)"] else 1 if v["Distance on track (m)"]<=v["Physical End Straight2 (m)"] else 2 if v["Distance on track (m)"]<v["Physical End Corner2 (m)"] else 0Live Evaluation: [ROUTE: GRID] 1 if 0.9554<=4.0000 else 2 if 0.9554<10.0000 else 1 if 0.9554<=14.0000 else 2 if 0.9554<20.0000 else 0 = 1.0000
|
| ☰ | \( \text{Status} \) | Status | Idle (1) |
View Help GuidePurpose: Idle = DLLS switched off
Rotation = when centre enabler is 0.5 velocity distance from the centre of the rounded corner, rotation is activated over velocity distance for a track arc rotation from track slant degree to -track slant degree, or -track slant degree to track slant degree
Logic: The operational state machine: Swaps the drive status between "Idle" and "Rotation" based on the Centre Enabler's proximity to the corner zones.
Type: Calculated (Math Output)
Render on Grids: Spatial, Rotational Torque, Energy Balance, Operational Totals
Mathematical Formula:
$$\text{Status} = v_pre\text{Status}$$ Python Logic:
v_prev["Status"]Live Evaluation: [ROUTE: GRID] 1.0000 = 1.0000
|
| ▼ 4. ROTATIONAL TORQUE BLUEPRINTS - S1 E1 Base | ||||
| ☰ | \( P_{circ} \) | Enabler Circumference Distance (m) | 0.00 |
View Help GuidePurpose: Determines distance travelled by a gravity enabler on the rounded corner
Logic: (v["Distance on track (m)"] - v["Physical End Straight1 (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else v["Distance on track (m)"] - v["Physical End Straight2 (m)"]) if v["Track Section"] == 2 else 0
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$P_{circ} = IF(S_{track}==2,IF(d_{track}<L_{s2},d_{track}-L_{s1},d_{track}-L_{c1}),0)$$ Python Logic:
(v["Distance on track (m)"] - v["Physical End Straight1 (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else v["Distance on track (m)"] - v["Physical End Straight2 (m)"]) if v["Track Section"] == 2 else 0Live Evaluation: [ROUTE: GRID] (0.0000 - 4.0000 if 0.0000 < 10.0000 else 0.0000 - 14.0000) if 1.0000 == 2 else 0 = 0.0000
|
| ☰ | \( \alpha \) | Enabler Circumference Angle (degree) | 0.00 |
View Help GuidePurpose: The rounded corner enabler position angle
Logic: Converts the curved distance travelled into an exact geometric angle around the gear hub.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\alpha = \text{deg}(P_{circ}/r_{gear})$$ Python Logic:
DEGREES(v["Enabler Circumference Distance (m)"]/v["Internal Gear Radius (m)"])Live Evaluation: [ROUTE: GRID] DEGREES(0.0000/1.9099) = 0.0000
|
| ☰ | \( \theta_{eff,static} \) | Static Effective Angle for parallel force (degree) | 30.00 |
View Help GuidePurpose: Intermediate calculation for Effective Angle considering the track slant
Logic: v["Track Slant (degree)"] if v["Enabler Circumference Angle (degree)"] == 0 else v["Track Slant (degree)"] + v["Enabler Circumference Angle (degree)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\theta_{eff,static} = IF(\alpha==0,\theta_{slant},\theta_{slant}+\alpha)$$ Python Logic:
v["Track Slant (degree)"] if v["Enabler Circumference Angle (degree)"] == 0 else v["Track Slant (degree)"] + v["Enabler Circumference Angle (degree)"]Live Evaluation: [ROUTE: GRID] 30.0000 if 0.0000 == 0 else 30.0000 + 0.0000 = 30.0000
|
| ☰ | \( \theta_{eff} \) | Effective Angle for Parallel Force (degree) | 30.00 |
View Help GuidePurpose: Determinging the correct effective parallel force angle based on the geometry of the GMEG design
Logic: abs(v["Track Slant (degree)"]) if v["Track Section"] == 1 else ((v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["Cycle"] == 1 else -(v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\theta_{eff} = IF(S_{track} == 1, abs(\theta_{slant}), IF(C == 1, IF(\theta_{eff,static} < 90, \theta_{eff,static}, 180 - \theta_{eff,static}), -IF(\theta_{eff,static} < 90, \theta_{eff,static}, 180 - \theta_{eff,static})))$$ Python Logic:
abs(v["Track Slant (degree)"]) if v["Track Section"] == 1 else ((v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["Cycle"] == 1 else -(v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]))Live Evaluation: [ROUTE: GRID] abs(30.0000) if 1.0000 == 1 else ((30.0000 if 30.0000 < 90 else 180 - 30.0000) if 1.0000 == 1 else -(30.0000 if 30.0000 < 90 else 180 - 30.0000)) = 30.0000
|
| ☰ | \( X_{flat} \) | X flat (m) | -2.00 |
View Help GuidePurpose: Horizontal position with the track in a horizontal position
Logic: (v["Distance on track (m)"] - (v["Straight track length (m)"] / 2) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else (v["Straight track length (m)"] / 2) - (v["Distance on track (m)"] - v["Physical End Corner1 (m)"])) if v["Track Section"] == 1 else ((v["Straight track length (m)"] / 2) + (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -(v["Straight track length (m)"] / 2) - (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{flat} = IF(S_{track}==1, IF(d_{track}<L_{s2},
d_{track}-(L_{\text{straight}}/2),(L_{\text{straight}}/2)-(d_{track}-L_{s2})),
IF(d_{track}<L_{s2},
(L_{\text{straight}}/2)+(r_{gear} \times \sin(\text{rad}(\alpha))),-(L_{\text{straight}}/2)-(r_{gear} \times \sin(\text{rad}(\alpha)))))$$ Python Logic:
(v["Distance on track (m)"] - (v["Straight track length (m)"] / 2) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else (v["Straight track length (m)"] / 2) - (v["Distance on track (m)"] - v["Physical End Corner1 (m)"])) if v["Track Section"] == 1 else ((v["Straight track length (m)"] / 2) + (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -(v["Straight track length (m)"] / 2) - (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))))Live Evaluation: [ROUTE: GRID] (0.0000 - (4.0000 / 2) if 0.0000 < 10.0000 else (4.0000 / 2) - (0.0000 - 10.0000)) if 1.0000 == 1 else ((4.0000 / 2) + (1.9099 * __import__("math").sin(__import__("math").radians(0.0000))) if 0.0000 < 10.0000 else -(4.0000 / 2) - (1.9099 * __import__("math").sin(__import__("math").radians(0.0000)))) = -2.0000
|
| ☰ | \( Y_{flat} \) | Y flat (m) | 1.91 |
View Help GuidePurpose: Vertical position with the track in a horizontal position
Logic: (v["Internal Gear Radius (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"]) if v["Track Section"] == 1 else (v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$Y_{flat} = IF(S_{track}==1,
IF(d_{track}<L_{s2},r_{gear},-r_{gear}),
IF(d_{track}<L_{s2},r_{gear} \times \cos(\text{rad}(\alpha)),-r_{gear} \times \cos(\text{rad}(\alpha))))$$ Python Logic:
(v["Internal Gear Radius (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"]) if v["Track Section"] == 1 else (v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])))Live Evaluation: [ROUTE: GRID] (1.9099 if 0.0000 < 10.0000 else -1.9099) if 1.0000 == 1 else (1.9099 * __import__("math").cos(__import__("math").radians(0.0000)) if 0.0000 < 10.0000 else -1.9099 * __import__("math").cos(__import__("math").radians(0.0000))) = 1.9099
|
| ☰ | \( X_{final} \) | Horizontal Distance X final (m) | -0.78 |
View Help GuidePurpose: Horizontal position taking track slant into account
Logic: Applies a 2D rotational matrix to the flat X/Y coordinates based on the track slant degree to find the true horizontal position in 3D space.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{final} = (X_{flat} \times \cos(\text{rad}(-\theta_{slant})))-(Y_{flat} \times \sin(\text{rad}(-\theta_{slant})))$$ Python Logic:
(v["X flat (m)"]*COS(RADIANS(-v["Track Slant (degree)"])))-(v["Y flat (m)"]*SIN(RADIANS(-v["Track Slant (degree)"])))Live Evaluation: [ROUTE: GRID] (-2.0000*COS(RADIANS(-30.0000)))-(1.9099*SIN(RADIANS(-30.0000))) = -0.7771
|
| ☰ | \( X_{\text{min, lever}} \) | Min Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{\text{min, lever}} = IF ( \text{Status} ==1, 0, X_{final} )$$ Python Logic:
IF ( v["Status"] ==1, 0, v["Horizontal Distance X final (m)"] )Live Evaluation: [ROUTE: GRID] IF ( 1.0000 ==1, 0, -0.7771 ) = 0.0000
|
| ☰ | \( X_{\text{max, lever}} \) | Max Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{\text{max, lever}} = IF ( \text{Status} == 1, 0, X_{final} )$$ Python Logic:
IF ( v["Status"] == 1, 0, v["Horizontal Distance X final (m)"] )Live Evaluation: [ROUTE: GRID] IF ( 1.0000 == 1, 0, -0.7771 ) = 0.0000
|
| ☰ | \( Y_{final} \) | Vertical Distance Y final (m) | 2.65 |
View Help GuidePurpose: Vertical position taking track slant into accovnt
Logic: Applies the secondary rotational matrix formula to find the true vertical position of the enabler as the track tilts.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$Y_{final} = (X_{flat} \times \sin(\text{rad}(-\theta_{slant})))+(Y_{flat} \times \cos(\text{rad}(-\theta_{slant})))$$ Python Logic:
(v["X flat (m)"]*SIN(RADIANS(-v["Track Slant (degree)"])))+(v["Y flat (m)"]*COS(RADIANS(-v["Track Slant (degree)"])))Live Evaluation: [ROUTE: GRID] (-2.0000*SIN(RADIANS(-30.0000)))+(1.9099*COS(RADIANS(-30.0000))) = 2.6540
|
| ☰ | \( F_g \) | Gravitational Force Fg (N) | 437,245.71 |
View Help GuidePurpose: Determining the gravitational force of each enabler for energy calculations
Logic: Calculates standard downward force (Fg = mg) based on the combined mass of the enabler and its holder.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$F_g = (M_{\text{unit}}+M_{\text{holder}}) \times N$$ Python Logic:
(v["Weight per gravity enabler (kg)"]+v["Gravity enabler holder weight (kg)"])*v["Gravitational Field Strength (N/kg)"]Live Evaluation: [ROUTE: GRID] (5571.4286+39000.0000)*9.8100 = 437,245.7143
|
| ☰ | \( E_p \) | Gravitational Potential Energy GPE per Enabler (J) | 126,985.24 |
View Help GuidePurpose: The total gravitational potential energy of each enabler taking the GMEG system inefficiencies into account
Logic: Calculates standard potential energy (Ep = mgh) and cascades it through the mechanical efficiency multipliers (gear losses, bearing friction, etc.).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$E_p = ((((M_{\text{unit}} \times N \times Y_{final}) \times \eta_{\text{gear}}) \times \eta_{\text{bearing}}) \times (1-\mu))$$ Python Logic:
((((v["Weight per gravity enabler (kg)"]*v["Gravitational Field Strength (N/kg)"]*v["Vertical Distance Y final (m)"])*v["Gear efficiency (%)"])*v["Bearing efficiency friction factor (%)"])*(1-v["Friction factor (%)"]))Live Evaluation: [ROUTE: GRID] ((((5571.4286*9.8100*2.6540)*0.9500)*0.9700)*(1-0.0500)) = 126,985.2444
|
| ☰ | \( \Sigma E_{\text{gpe, enablers}} \) | Total Gravitational Potential Energy GPE of all Enablers (J) | 126,985.24 |
View Help GuidePurpose: The sum of the total gravitational potential energy of all enablers taking the GMEG system inefficiencies into account.
Logic: Calculates standard potential energy of teh train (Ep = mgh) and cascades it through the mechanical efficiency multipliers (gear losses, bearing friction, etc.).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\Sigma E_{\text{gpe, enablers}} = E_p$$ Python Logic:
v["Gravitational Potential Energy GPE per Enabler (J)"]Live Evaluation: [ROUTE: GRID] 126985.2444 = 126,985.2444
|
| ☰ | \( F_p \) | GMEG Parallel Force Fp (N) | 218,622.86 |
View Help GuidePurpose: Enabler parallel force taking the parallel angle into account
Logic: Resolves the downward gravitational vector into the actual driving force acting parallel to the track using Fp = Fg sin(Effective Angle).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$F_p = F_g \times \sin(\text{rad}(\theta_{eff}))$$ Python Logic:
v["Gravitational Force Fg (N)"]*SIN(RADIANS(v["Effective Angle for Parallel Force (degree)"]))Live Evaluation: [ROUTE: GRID] 437245.7143*SIN(RADIANS(30.0000)) = 218,622.8571
|
| ☰ | \( m_{en,p} \) | Parallel mass per Enabler (kg) | 22,285.71 |
View Help GuidePurpose: Quantifies the exact portion of the enabler's physical mass that is actively contributing to the downward drive.
Logic: Multiplies the total enabler mass (unit + holder) by the sine of its effective angle to isolate the parallel mass vector.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$m_{en,p} = F_p/N$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]/v["Gravitational Field Strength (N/kg)"]Live Evaluation: [ROUTE: GRID] 218622.8571/9.8100 = 22,285.7143
|
| ☰ | \( \tau_{GMEG} \) | GMEG Nm Output (Nm) | 417,538.90 |
View Help GuidePurpose: Enabler torque delivery based on internal gear radius
Logic: Calculates the instantaneous rotational torque produced by this specific enabler by multiplying the parallel force by the lever arm (radius).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{GMEG} = F_p \times r_{gear}$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]*v["Internal Gear Radius (m)"]Live Evaluation: [ROUTE: GRID] 218622.8571*1.9099 = 417,538.9006
|
| ☰ | \( \eta_{\text{op}} \) | Operational Efficiency (%) | 0.89 |
View Help GuidePurpose: Torque delivery based on adjustable user efficiency setting
Logic: Applies the baseline mechanical loss/friction coefficient to the system.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\eta_{\text{GMEG}}$$ Python Logic:
v["GMEG Efficiency (%)"]Live Evaluation: [ROUTE: GRID] 0.8884 = 0.8884
|
| ☰ | \( \tau_{GMEG,final} \) | Final GMEG Output (Nm) | 370,941.56 |
View Help GuidePurpose: Enabler torque delivery based on operational inefficiency
Logic: The net, real-world usable torque generated by this single enabler after losses.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{GMEG,final} = \tau_{GMEG} \times \eta_{loss}$$ Python Logic:
v["GMEG Nm Output (Nm)"]* v["Operational Efficiency (%)"]Live Evaluation: [ROUTE: GRID] 417538.9006* 0.8884 = 370,941.5593
|
| ☰ | \( \Sigma\tau_{GMEG} \) | Total GMEG Output per Segment (Nm) | 370,941.56 |
View Help GuidePurpose: Total potential torque delivery of the total train with all enablers in the segment
Logic: v["Final GMEG Output (Nm)"] if v["Enabler Number"] == 1 else v_prev["Total GMEG Output per Segment (Nm)"] + v["Final GMEG Output (Nm)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\Sigma\tau_{GMEG} = IF(N_{en} == 1, \tau_{GMEG,final}, v_pre\Sigma\tau_{GMEG} + \tau_{GMEG,final})$$ Python Logic:
v["Final GMEG Output (Nm)"] if v["Enabler Number"] == 1 else v_prev["Total GMEG Output per Segment (Nm)"] + v["Final GMEG Output (Nm)"]Live Evaluation: [ROUTE: GRID] 370941.5593 if 1.0000 == 1 else 0.0000 + 370941.5593 = 370,941.5593
|
| ☰ | \( \tau_{def} \) | Torque Deficit (Nm) | 29,118.91 |
View Help GuidePurpose: Total torque delivery from the gravity enabler train minus the base load torque delivery requirement
Logic: Compares the generated torque against the required load to identify structural power shortages.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{def} = \tau_{GMEG,final}-(\tau_{\text{out}}/N_{\text{enablers}})$$ Python Logic:
v["Final GMEG Output (Nm)"]-(v["GMEG Output Torque (Nm)"]/v["Number of Gravity Enablers"])Live Evaluation: [ROUTE: GRID] 370941.5593-(2392758.5285/7.0000) = 29,118.9124
|
| ☰ | \( \Sigma \tau_{\text{deficit}} \) | Total Torque Deficit (Nm) | 29,118.91 |
View Help GuidePurpose: Accounting for where negative values may influence total torque deficit
Logic: Aggregates the generated torque against the required load to identify structural power shortages.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{def}$$ Python Logic:
v["Torque Deficit (Nm)"]Live Evaluation: [ROUTE: GRID] 29118.9124 = 29,118.9124
|
| ☰ | \( \tau_{gear} \) | Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: Torque experienced by the DLLS per enabler during rotation cycles
Logic: 0 if v["Status"] == 1 else v["Horizontal Distance X final (m)"] * v["Gravitational Force Fg (N)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{gear} = IF(\text{Status}==1,0,X_{final} \times F_g)$$ Python Logic:
0 if v["Status"] == 1 else v["Horizontal Distance X final (m)"] * v["Gravitational Force Fg (N)"]Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else -0.7771 * 437245.7143 = 0.0000
|
| ☰ | \( \tau \) | Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: Absolute values to represent positive values for torque experienced by the DLLS
Logic: 0 if v["Status"] == 1 else abs(v["Gear System Torque (Nm)"])
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$` = IF(\text{Status}==1,0,ABS(\tau_{gear}))$$ Python Logic:
0 if v["Status"] == 1 else abs(v["Gear System Torque (Nm)"])Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else abs(0.0000) = 0.0000
|
| ☰ | \( \tau_{gear,train} \) | Enabler train Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: 0
Logic: Sums the absolute torque across all enablers to find the total stress on the rotation gears for this time step.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{gear,train} = `$$ Python Logic:
v["Absolute Gear System Torque (Nm)"]Live Evaluation: [ROUTE: GRID] 0.0000 = 0.0000
|
| ☰ | \( W_{DLLS} \) | Work Done by DLLS Joule per Segment (J) | 0.00 |
View Help GuidePurpose: Work done by the DLLS for that segment time frame, based on the angle per segment
Logic: 0 if v["Status"] == 1 else v["Absolute Gear System Torque (Nm)"] * v["Angle Per Segment radians (rad/s)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$W_{DLLS} = IF(\text{Status}==1,0,` \times \text{Angle Per Segment radians (rad/s)})$$ Python Logic:
0 if v["Status"] == 1 else v["Absolute Gear System Torque (Nm)"] * v["Angle Per Segment radians (rad/s)"]Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else 0.0000 * 0.0175 = 0.0000
|
| ☰ | \( TW_{DLLS} \) | Total Work Done by DLLS Joule per Segment (J) | 0.00 |
View Help GuidePurpose: Count of the required work impacting the DLLS during a TAR
Logic: Aggregates the rotational torque across the train during the rotation phase.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$TW_{DLLS} = W_{DLLS}$$ Python Logic:
v["Work Done by DLLS Joule per Segment (J)"]Live Evaluation: [ROUTE: GRID] 0.0000 = 0.0000
|
| ☰ | \( I_{en} \) | Moment of inertia per enabler (kg.m2) | 0.00 |
View Help GuidePurpose: Modelling inertia during a track arc rotation based on each enablers' position on the track
Logic: 0 if v["Status"] == 1 else ((v["TOTAL WEIGHT (KG)"] / v["Number of Gravity Enablers"]) * (v["Horizontal Distance X final (m)"] ** 2))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$I_{en} = IF(\text{Status}==1,0,((M_{\text{total}}/N_{\text{enablers}}) \times (X_{final}^2)))$$ Python Logic:
0 if v["Status"] == 1 else ((v["TOTAL WEIGHT (KG)"] / v["Number of Gravity Enablers"]) * (v["Horizontal Distance X final (m)"] ** 2))Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else ((312000.0000 / 7.0000) * (-0.7771 ** 2)) = 0.0000
|
| ☰ | \( I_{train} \) | Enabler train Moment of inertia (kg.m2) | 0.00 |
View Help GuidePurpose: Running total inertia based on all enablers
Logic: Aggregates the individual inertia values to find the total resistance the system must overcome to swivel the track.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$I_{train} = I_{en}$$ Python Logic:
v["Moment of inertia per enabler (kg.m2)"]Live Evaluation: [ROUTE: GRID] 0.0000 = 0.0000
|
| ▼ 4. ROTATIONAL TORQUE BLUEPRINTS - S1 E2 Loop | ||||
| ☰ | \( P_{circ} \) | Enabler Circumference Distance (m) | 0.00 |
View Help GuidePurpose: Determines distance travelled by a gravity enabler on the rounded corner
Logic: (v["Distance on track (m)"] - v["Physical End Straight1 (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else v["Distance on track (m)"] - v["Physical End Straight2 (m)"]) if v["Track Section"] == 2 else 0
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$P_{circ} = IF(S_{track}==2,
IF(d_{track}<L_{s2},d_{track}-L_{s1},d_{track}-L_{c1}), 0)$$ Python Logic:
(v["Distance on track (m)"] - v["Physical End Straight1 (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else v["Distance on track (m)"] - v["Physical End Straight2 (m)"]) if v["Track Section"] == 2 else 0Live Evaluation: [ROUTE: GRID] (0.8354 - 4.0000 if 0.8354 < 10.0000 else 0.8354 - 14.0000) if 1.0000 == 2 else 0 = 0.0000
|
| ☰ | \( \alpha \) | Enabler Circumference Angle (degree) | 0.00 |
View Help GuidePurpose: The rounded corner enabler position angle
Logic: Converts the curved distance travelled into an exact geometric angle around the gear hub.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\alpha = \text{deg}(P_{circ}/r_{gear})$$ Python Logic:
DEGREES(v["Enabler Circumference Distance (m)"]/v["Internal Gear Radius (m)"])Live Evaluation: [ROUTE: GRID] DEGREES(0.0000/1.9099) = 0.0000
|
| ☰ | \( \theta_{eff,static} \) | Static Effective Angle for parallel force (degree) | 30.00 |
View Help GuidePurpose: Intermediate calculation for Effective Angle considering the track slant
Logic: v["Track Slant (degree)"] if v["Enabler Circumference Angle (degree)"] == 0 else v["Track Slant (degree)"] + v["Enabler Circumference Angle (degree)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\theta_{eff,static} = IF(\alpha==0,\theta_{slant},\theta_{slant}+\alpha)$$ Python Logic:
v["Track Slant (degree)"] if v["Enabler Circumference Angle (degree)"] == 0 else v["Track Slant (degree)"] + v["Enabler Circumference Angle (degree)"]Live Evaluation: [ROUTE: GRID] 30.0000 if 0.0000 == 0 else 30.0000 + 0.0000 = 30.0000
|
| ☰ | \( \theta_{eff} \) | Effective Angle for Parallel Force (degree) | 30.00 |
View Help GuidePurpose: Determinging the correct effective parallel force angle based on the geometry of the GMEG design
Logic: abs(v["Track Slant (degree)"]) if v["Track Section"] == 1 else ((v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["Cycle"] == 1 else -(v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\theta_{eff} = IF(S_{track} == 1, abs(\theta_{slant}), IF(C == 1, IF(\theta_{eff,static} < 90, \theta_{eff,static}, 180 - \theta_{eff,static}), -IF(\theta_{eff,static} < 90, \theta_{eff,static}, 180 - \theta_{eff,static})))$$ Python Logic:
abs(v["Track Slant (degree)"]) if v["Track Section"] == 1 else ((v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["Cycle"] == 1 else -(v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]))Live Evaluation: [ROUTE: GRID] abs(30.0000) if 1.0000 == 1 else ((30.0000 if 30.0000 < 90 else 180 - 30.0000) if 1.0000 == 1 else -(30.0000 if 30.0000 < 90 else 180 - 30.0000)) = 30.0000
|
| ☰ | \( X_{flat} \) | X flat (m) | -1.16 |
View Help GuidePurpose: Horizontal position with the track in a horizontal position
Logic: (v["Distance on track (m)"] - (v["Straight track length (m)"] / 2) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else (v["Straight track length (m)"] / 2) - (v["Distance on track (m)"] - v["Physical End Corner1 (m)"])) if v["Track Section"] == 1 else ((v["Straight track length (m)"] / 2) + (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -(v["Straight track length (m)"] / 2) - (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{flat} = IF(S_{track}==1, IF(d_{track}<L_{s2},d_{track}-(L_{\text{straight}}/2),(L_{\text{straight}}/2)-(d_{track}-L_{s2})),
IF(d_{track}<L_{s2},(L_{\text{straight}}/2)+(r_{gear} \times \sin(\text{rad}(\alpha))),-(L_{\text{straight}}/2)-(r_{gear} \times \sin(\text{rad}(\alpha)))))$$ Python Logic:
(v["Distance on track (m)"] - (v["Straight track length (m)"] / 2) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else (v["Straight track length (m)"] / 2) - (v["Distance on track (m)"] - v["Physical End Corner1 (m)"])) if v["Track Section"] == 1 else ((v["Straight track length (m)"] / 2) + (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -(v["Straight track length (m)"] / 2) - (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))))Live Evaluation: [ROUTE: GRID] (0.8354 - (4.0000 / 2) if 0.8354 < 10.0000 else (4.0000 / 2) - (0.8354 - 10.0000)) if 1.0000 == 1 else ((4.0000 / 2) + (1.9099 * __import__("math").sin(__import__("math").radians(0.0000))) if 0.8354 < 10.0000 else -(4.0000 / 2) - (1.9099 * __import__("math").sin(__import__("math").radians(0.0000)))) = -1.1646
|
| ☰ | \( Y_{flat} \) | Y flat (m) | 1.91 |
View Help GuidePurpose: Vertical position with the track in a horizontal position
Logic: (v["Internal Gear Radius (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"]) if v["Track Section"] == 1 else (v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$Y_{flat} = IF(S_{track}==1,
IF(d_{track}<L_{s2},r_{gear},-r_{gear}),IF(d_{track}<L_{s2},r_{gear} \times \cos(\text{rad}(\alpha)),-r_{gear} \times \cos(\text{rad}(\alpha))))$$ Python Logic:
(v["Internal Gear Radius (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"]) if v["Track Section"] == 1 else (v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])))Live Evaluation: [ROUTE: GRID] (1.9099 if 0.8354 < 10.0000 else -1.9099) if 1.0000 == 1 else (1.9099 * __import__("math").cos(__import__("math").radians(0.0000)) if 0.8354 < 10.0000 else -1.9099 * __import__("math").cos(__import__("math").radians(0.0000))) = 1.9099
|
| ☰ | \( X_{final} \) | Horizontal Distance X final (m) | -0.05 |
View Help GuidePurpose: Horizontal position taking track slant into account
Logic: Applies a 2D rotational matrix to the flat X/Y coordinates based on the track slant degree to find the true horizontal position in 3D space.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{final} = (X_{flat} \times \cos(\text{rad}(-\theta_{slant})))-(Y_{flat} \times \sin(\text{rad}(-\theta_{slant})))$$ Python Logic:
(v["X flat (m)"]*COS(RADIANS(-v["Track Slant (degree)"])))-(v["Y flat (m)"]*SIN(RADIANS(-v["Track Slant (degree)"])))Live Evaluation: [ROUTE: GRID] (-1.1646*COS(RADIANS(-30.0000)))-(1.9099*SIN(RADIANS(-30.0000))) = -0.0537
|
| ☰ | \( X_{\text{min, lever}} \) | Min Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{\text{min, lever}} = IF ( \text{Status} == 1, 0, IF ( X_{final} < v_preX_{\text{min, lever}} , X_{final} , v_preX_{\text{min, lever}} ) )$$ Python Logic:
IF ( v["Status"] == 1, 0, IF ( v["Horizontal Distance X final (m)"] < v_prev["Min Lever Arm (m)"] , v["Horizontal Distance X final (m)"] , v_prev["Min Lever Arm (m)"] ) )Live Evaluation: [ROUTE: GRID] IF ( 1.0000 == 1, 0, IF ( -0.0537 < 0.0000 , -0.0537 , 0.0000 ) ) = 0.0000
|
| ☰ | \( X_{\text{max, lever}} \) | Max Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{\text{max, lever}} = IF ( \text{Status} == 1 , 0, IF ( X_{final} > v_preX_{\text{max, lever}} , X_{final} , v_preX_{\text{max, lever}} ) )$$ Python Logic:
IF ( v["Status"] == 1 , 0, IF ( v["Horizontal Distance X final (m)"] > v_prev["Max Lever Arm (m)"] , v["Horizontal Distance X final (m)"] , v_prev["Max Lever Arm (m)"] ) )Live Evaluation: [ROUTE: GRID] IF ( 1.0000 == 1 , 0, IF ( -0.0537 > 0.0000 , -0.0537 , 0.0000 ) ) = 0.0000
|
| ☰ | \( Y_{final} \) | Vertical Distance Y final (m) | 2.24 |
View Help GuidePurpose: Vertical position taking track slant into accovnt
Logic: Applies the secondary rotational matrix formula to find the true vertical position of the enabler as the track tilts.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$Y_{final} = (X_{flat} \times \sin(\text{rad}(-\theta_{slant})))+(Y_{flat} \times \cos(\text{rad}(-\theta_{slant})))$$ Python Logic:
(v["X flat (m)"]*SIN(RADIANS(-v["Track Slant (degree)"])))+(v["Y flat (m)"]*COS(RADIANS(-v["Track Slant (degree)"])))Live Evaluation: [ROUTE: GRID] (-1.1646*SIN(RADIANS(-30.0000)))+(1.9099*COS(RADIANS(-30.0000))) = 2.2363
|
| ☰ | \( F_g \) | Gravitational Force Fg (N) | 437,245.71 |
View Help GuidePurpose: Determining the gravitational force of each enabler for energy calculations
Logic: Calculates standard downward force (Fg = mg) based on the combined mass of the enabler and its holder.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$F_g = (M_{\text{unit}}+M_{\text{holder}}) \times N$$ Python Logic:
(v["Weight per gravity enabler (kg)"]+v["Gravity enabler holder weight (kg)"])*v["Gravitational Field Strength (N/kg)"]Live Evaluation: [ROUTE: GRID] (5571.4286+39000.0000)*9.8100 = 437,245.7143
|
| ☰ | \( E_p \) | Gravitational Potential Energy GPE per Enabler (J) | 107,000.64 |
View Help GuidePurpose: The total gravitational potential energy of each enabler taking the GMEG system inefficiencies into account
Logic: Calculates standard potential energy (Ep = mgh) and cascades it through the mechanical efficiency multipliers (gear losses, bearing friction, etc.).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$E_p = (((M_{\text{unit}} \times N \times Y_{final}) \times \eta_{\text{gear}}) \times \eta_{\text{bearing}} \times (1-\mu))$$ Python Logic:
(((v["Weight per gravity enabler (kg)"]*v["Gravitational Field Strength (N/kg)"]*v["Vertical Distance Y final (m)"]) *v["Gear efficiency (%)"])*v["Bearing efficiency friction factor (%)"]*(1-v["Friction factor (%)"]))Live Evaluation: [ROUTE: GRID] (((5571.4286*9.8100*2.2363) *0.9500)*0.9700*(1-0.0500)) = 107,000.6392
|
| ☰ | \( \Sigma E_{\text{gpe, enablers}} \) | Total Gravitational Potential Energy GPE of all Enablers (J) | 233,985.88 |
View Help GuidePurpose: The sum of the total gravitational potential energy of all enablers taking the GMEG system inefficiencies into account.
Logic: Calculates standard potential energy of teh train (Ep = mgh) and cascades it through the mechanical efficiency multipliers (gear losses, bearing friction, etc.).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\Sigma E_{\text{gpe, enablers}} = E_p+v_pre\Sigma E_{\text{gpe, enablers}}$$ Python Logic:
v["Gravitational Potential Energy GPE per Enabler (J)"]+v_prev["Total Gravitational Potential Energy GPE of all Enablers (J)"]Live Evaluation: [ROUTE: GRID] 107000.6392+126985.2444 = 233,985.8836
|
| ☰ | \( F_p \) | GMEG Parallel Force Fp (N) | 218,622.86 |
View Help GuidePurpose: Enabler parallel force taking the parallel angle into account
Logic: Resolves the downward gravitational vector into the actual driving force acting parallel to the track using Fp = Fg sin(Effective Angle).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$F_p = F_g \times \sin(\text{rad}(\theta_{eff}))$$ Python Logic:
v["Gravitational Force Fg (N)"]*SIN(RADIANS(v["Effective Angle for Parallel Force (degree)"]))Live Evaluation: [ROUTE: GRID] 437245.7143*SIN(RADIANS(30.0000)) = 218,622.8571
|
| ☰ | \( m_{en,p} \) | Parallel mass per Enabler (kg) | 22,285.71 |
View Help GuidePurpose: Quantifies the exact portion of the enabler's physical mass that is actively contributing to the downward drive.
Logic: Multiplies the total enabler mass (unit + holder) by the sine of its effective angle to isolate the parallel mass vector.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$m_{en,p} = F_p/N$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]/v["Gravitational Field Strength (N/kg)"]Live Evaluation: [ROUTE: GRID] 218622.8571/9.8100 = 22,285.7143
|
| ☰ | \( \tau_{GMEG} \) | GMEG Nm Output (Nm) | 417,538.90 |
View Help GuidePurpose: Enabler torque delivery based on internal gear radius
Logic: Calculates the instantaneous rotational torque produced by this specific enabler by multiplying the parallel force by the lever arm (radius).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{GMEG} = F_p \times r_{gear}$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]*v["Internal Gear Radius (m)"]Live Evaluation: [ROUTE: GRID] 218622.8571*1.9099 = 417,538.9006
|
| ☰ | \( \eta_{loss} \) | Operational Efficiency (%) | 0.89 |
View Help GuidePurpose: Torque delivery based on adjustable user inefficiency setting
Logic: Applies the baseline mechanical loss/friction coefficient to the system.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\eta_{loss} = \eta_{\text{GMEG}}$$ Python Logic:
v["GMEG Efficiency (%)"]Live Evaluation: [ROUTE: GRID] 0.8884 = 0.8884
|
| ☰ | \( \tau_{GMEG,final} \) | Final GMEG Output (Nm) | 370,941.56 |
View Help GuidePurpose: Enabler torque delivery based on operational inefficiency
Logic: The net, real-world usable torque generated by this single enabler after losses.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{GMEG,final} = \tau_{GMEG} \times \eta_{loss}$$ Python Logic:
v["GMEG Nm Output (Nm)"]*v["Operational Efficiency (%)"]Live Evaluation: [ROUTE: GRID] 417538.9006*0.8884 = 370,941.5593
|
| ☰ | \( \Sigma\tau_{GMEG} \) | Total GMEG Output per Segment (Nm) | 741,883.12 |
View Help GuidePurpose: Total potential torque delivery of the total train with all enablers in the segment
Logic: Aggregates the torque from every enabler in the train for this specific moment in time to find the total system output.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\Sigma\tau_{GMEG} = v_pre\Sigma\tau_{GMEG} + \tau_{GMEG,final}$$ Python Logic:
v_prev["Total GMEG Output per Segment (Nm)"] + v["Final GMEG Output (Nm)"]Live Evaluation: [ROUTE: GRID] 370941.5593 + 370941.5593 = 741,883.1187
|
| ☰ | \( \tau_{def} \) | Torque Deficit (Nm) | 29,118.91 |
View Help GuidePurpose: Total torque delivery from the gravity enabler train minus the base load torque delivery requirement
Logic: Compares the generated torque against the required load to identify structural power shortages.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{def} = \tau_{GMEG,final}-(\tau_{\text{out}}/N_{\text{enablers}})$$ Python Logic:
v["Final GMEG Output (Nm)"]-(v["GMEG Output Torque (Nm)"]/v["Number of Gravity Enablers"])Live Evaluation: [ROUTE: GRID] 370941.5593-(2392758.5285/7.0000) = 29,118.9124
|
| ☰ | \( \Sigma \tau_{\text{deficit}} \) | Total Torque Deficit (Nm) | 58,237.82 |
View Help GuidePurpose: Accounting for where negative values may influence total torque deficit
Logic: Aggregates the generated torque against the required load to identify structural power shortages.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{def}+v_pre\text{Total Torque Deficit (Nm)}$$ Python Logic:
v["Torque Deficit (Nm)"]+v_prev["Total Torque Deficit (Nm)"]Live Evaluation: [ROUTE: GRID] 29118.9124+29118.9124 = 58,237.8248
|
| ☰ | \( \tau_{gear} \) | Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: Torque experienced by the DLLS per enabler during rotation cycles
Logic: 0 if v["Status"] == 1 else v["Horizontal Distance X final (m)"] * v["Gravitational Force Fg (N)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{gear} = IF(\text{Status}==1,0,X_{final} \times F_g)$$ Python Logic:
0 if v["Status"] == 1 else v["Horizontal Distance X final (m)"] * v["Gravitational Force Fg (N)"]Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else -0.0537 * 437245.7143 = 0.0000
|
| ☰ | \( \tau \) | Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: Absolute values to represent positive values for torque experienced by the DLLS
Logic: 0 if v["Status"] == 1 else abs(v["Gear System Torque (Nm)"])
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$` = IF(\text{Status}==1,0,ABS(\tau_{gear}))$$ Python Logic:
0 if v["Status"] == 1 else abs(v["Gear System Torque (Nm)"])Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else abs(0.0000) = 0.0000
|
| ☰ | \( \tau_{gear,train} \) | Enabler train Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: 0
Logic: Sums the absolute torque across all enablers to find the total stress on the rotation gears for this time step.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{gear,train} = `+v_pre\tau_{gear,train}$$ Python Logic:
v["Absolute Gear System Torque (Nm)"]+v_prev["Enabler train Absolute Gear System Torque (Nm)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ☰ | \( W_{DLLS} \) | Work Done by DLLS Joule per Segment (J) | 0.00 |
View Help GuidePurpose: Work done by the DLLS for that segment time frame, based on the angle per segment
Logic: 0 if v["Status"] == 1 else v["Absolute Gear System Torque (Nm)"] * v["Angle Per Segment radians (rad/s)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$W_{DLLS} = IF(\text{Status}==1,0,` \times \text{Angle Per Segment radians (rad/s)})$$ Python Logic:
0 if v["Status"] == 1 else v["Absolute Gear System Torque (Nm)"] * v["Angle Per Segment radians (rad/s)"]Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else 0.0000 * 0.0175 = 0.0000
|
| ☰ | \( TW_{DLLS} \) | Total Work Done by DLLS Joule per Segment (J) | 0.00 |
View Help GuidePurpose: Count of the required work impacting the DLLS during a TAR
Logic: Aggregates the rotational torque across the train during the rotation phase.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$TW_{DLLS} = W_{DLLS}+v_preTW_{DLLS}$$ Python Logic:
v["Work Done by DLLS Joule per Segment (J)"]+v_prev["Total Work Done by DLLS Joule per Segment (J)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ☰ | \( I_{en} \) | Moment of inertia per enabler (kg.m2) | 0.00 |
View Help GuidePurpose: Modelling inertia during a track arc rotation based on each enablers' position on the track
Logic: 0 if v["Status"] == 1 else ((v["TOTAL WEIGHT (KG)"] / v["Number of Gravity Enablers"]) * (v["Horizontal Distance X final (m)"] ** 2))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$I_{en} = IF(\text{Status}==1,0,((M_{\text{total}}/N_{\text{enablers}}) \times (X_{final}^2)))$$ Python Logic:
0 if v["Status"] == 1 else ((v["TOTAL WEIGHT (KG)"] / v["Number of Gravity Enablers"]) * (v["Horizontal Distance X final (m)"] ** 2))Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else ((312000.0000 / 7.0000) * (-0.0537 ** 2)) = 0.0000
|
| ☰ | \( I_{train} \) | Enabler train Moment of inertia (kg.m2) | 0.00 |
View Help GuidePurpose: Running total inertia based on all enablers
Logic: Aggregates the individual inertia values to find the total resistance the system must overcome to swivel the track.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$I_{train} = I_{en}+v_preI_{train}$$ Python Logic:
v["Moment of inertia per enabler (kg.m2)"]+v_prev["Enabler train Moment of inertia (kg.m2)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ▼ 4. ROTATIONAL TORQUE BLUEPRINTS - S2 E1 Transition | ||||
| ☰ | \( P_{circ} \) | Enabler Circumference Distance (m) | 0.00 |
View Help GuidePurpose: Determines distance travelled by a gravity enabler on the rounded corner
Logic: (v["Distance on track (m)"] - v["Physical End Straight1 (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else v["Distance on track (m)"] - v["Physical End Straight2 (m)"]) if v["Track Section"] == 2 else 0
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$P_{circ} = IF(S_{track}==2,IF(
d_{track}<L_{s2},d_{track}-L_{s1},d_{track}-L_{c1}),0)$$ Python Logic:
(v["Distance on track (m)"] - v["Physical End Straight1 (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else v["Distance on track (m)"] - v["Physical End Straight2 (m)"]) if v["Track Section"] == 2 else 0Live Evaluation: [ROUTE: GRID] (0.1200 - 4.0000 if 0.1200 < 10.0000 else 0.1200 - 14.0000) if 1.0000 == 2 else 0 = 0.0000
|
| ☰ | \( \alpha \) | Enabler Circumference Angle (degree) | 0.00 |
View Help GuidePurpose: The rounded corner enabler position angle
Logic: Converts the curved distance travelled into an exact geometric angle around the gear hub.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\alpha = \text{deg}(P_{circ}/r_{gear})$$ Python Logic:
DEGREES(v["Enabler Circumference Distance (m)"]/v["Internal Gear Radius (m)"])Live Evaluation: [ROUTE: GRID] DEGREES(0.0000/1.9099) = 0.0000
|
| ☰ | \( \theta_{eff,static} \) | Static Effective Angle for parallel force (degree) | 30.00 |
View Help GuidePurpose: Intermediate calculation for Effective Angle considering the track slant
Logic: v["Track Slant (degree)"] if v["Enabler Circumference Angle (degree)"] == 0 else v["Track Slant (degree)"] + v["Enabler Circumference Angle (degree)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\theta_{eff,static} = IF(\alpha==0,\theta_{slant},\theta_{slant}+\alpha)$$ Python Logic:
v["Track Slant (degree)"] if v["Enabler Circumference Angle (degree)"] == 0 else v["Track Slant (degree)"] + v["Enabler Circumference Angle (degree)"]Live Evaluation: [ROUTE: GRID] 30.0000 if 0.0000 == 0 else 30.0000 + 0.0000 = 30.0000
|
| ☰ | \( \theta_{eff} \) | Effective Angle for Parallel Force (degree) | 30.00 |
View Help GuidePurpose: Determinging the correct effective parallel force angle based on the geometry of the GMEG design
Logic: abs(v["Track Slant (degree)"]) if v["Track Section"] == 1 else ((v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["TAR Transformed Enabler Distance (m)"] < v["RotZone1 End (m)"] else (-(v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["TAR Transformed Enabler Distance (m)"] < v["RotZone2 End (m)"] else 0.0))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\theta_{eff} = IF(S_{track} == 1, abs(\theta_{slant}), IF(P_{trans}<R_{z1, end},IF(\theta_{eff,static} < 90, \theta_{eff,static}, 180 - \theta_{eff,static}),IF(P_{trans}<R_{z2, end},-IF(\theta_{eff,static} < 90, \theta_{eff,static}, 180 - \theta_{eff,static}), 0.0)))$$ Python Logic:
abs(v["Track Slant (degree)"]) if v["Track Section"] == 1 else ((v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["TAR Transformed Enabler Distance (m)"] < v["RotZone1 End (m)"] else (-(v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["TAR Transformed Enabler Distance (m)"] < v["RotZone2 End (m)"] else 0.0))Live Evaluation: [ROUTE: GRID] abs(30.0000) if 1.0000 == 1 else ((30.0000 if 30.0000 < 90 else 180 - 30.0000) if 0.2400 < 10.6000 else (-(30.0000 if 30.0000 < 90 else 180 - 30.0000) if 0.2400 < 20.6000 else 0.0)) = 30.0000
|
| ☰ | \( X_{flat} \) | X flat (m) | -1.88 |
View Help GuidePurpose: Horizontal position with the track in a horizontal position
Logic: (v["Distance on track (m)"] - (v["Straight track length (m)"] / 2) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else (v["Straight track length (m)"] / 2) - (v["Distance on track (m)"] - v["Physical End Corner1 (m)"])) if v["Track Section"] == 1 else ((v["Straight track length (m)"] / 2) + (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -(v["Straight track length (m)"] / 2) - (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{flat} = IF(S_{track}==1,
IF(d_{track}<L_{s2},d_{track}-(L_{\text{straight}}/2),(L_{\text{straight}}/2)-(d_{track}-L_{s2})),
IF(d_{track}<L_{s2},(L_{\text{straight}}/2)+(r_{gear} \times \sin(\text{rad}(\alpha))),-(L_{\text{straight}}/2)-(r_{gear} \times \sin(\text{rad}(\alpha)))))$$ Python Logic:
(v["Distance on track (m)"] - (v["Straight track length (m)"] / 2) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else (v["Straight track length (m)"] / 2) - (v["Distance on track (m)"] - v["Physical End Corner1 (m)"])) if v["Track Section"] == 1 else ((v["Straight track length (m)"] / 2) + (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -(v["Straight track length (m)"] / 2) - (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))))Live Evaluation: [ROUTE: GRID] (0.1200 - (4.0000 / 2) if 0.1200 < 10.0000 else (4.0000 / 2) - (0.1200 - 10.0000)) if 1.0000 == 1 else ((4.0000 / 2) + (1.9099 * __import__("math").sin(__import__("math").radians(0.0000))) if 0.1200 < 10.0000 else -(4.0000 / 2) - (1.9099 * __import__("math").sin(__import__("math").radians(0.0000)))) = -1.8800
|
| ☰ | \( Y_{flat} \) | Y flat (m) | 1.91 |
View Help GuidePurpose: Vertical position with the track in a horizontal position
Logic: (v["Internal Gear Radius (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"]) if v["Track Section"] == 1 else (v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$Y_{flat} = IF(S_{track}==1,
IF(d_{track}<L_{s2},r_{gear},-r_{gear}),
IF(d_{track}<L_{s2},r_{gear} \times \cos(\text{rad}(\alpha)),-r_{gear} \times \cos(\text{rad}(\alpha))))$$ Python Logic:
(v["Internal Gear Radius (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"]) if v["Track Section"] == 1 else (v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])))Live Evaluation: [ROUTE: GRID] (1.9099 if 0.1200 < 10.0000 else -1.9099) if 1.0000 == 1 else (1.9099 * __import__("math").cos(__import__("math").radians(0.0000)) if 0.1200 < 10.0000 else -1.9099 * __import__("math").cos(__import__("math").radians(0.0000))) = 1.9099
|
| ☰ | \( X_{final} \) | Horizontal Distance X final (m) | -0.67 |
View Help GuidePurpose: Horizontal position taking track slant into account
Logic: Applies a 2D rotational matrix to the flat X/Y coordinates based on the track slant degree to find the true horizontal position in 3D space.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{final} = (X_{flat} \times \cos(\text{rad}(-\theta_{slant})))-(Y_{flat} \times \sin(\text{rad}(-\theta_{slant})))$$ Python Logic:
(v["X flat (m)"]*COS(RADIANS(-v["Track Slant (degree)"])))-(v["Y flat (m)"]*SIN(RADIANS(-v["Track Slant (degree)"])))Live Evaluation: [ROUTE: GRID] (-1.8800*COS(RADIANS(-30.0000)))-(1.9099*SIN(RADIANS(-30.0000))) = -0.6732
|
| ☰ | \( X_{\text{min, lever}} \) | Min Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{\text{min, lever}} = IF ( \text{Status} == 1, 0 , X_{final} )$$ Python Logic:
IF ( v["Status"] == 1, 0 , v["Horizontal Distance X final (m)"] )Live Evaluation: [ROUTE: GRID] IF ( 1.0000 == 1, 0 , -0.6732 ) = 0.0000
|
| ☰ | \( X_{\text{max, lever}} \) | Max Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{\text{max, lever}} = IF ( \text{Status} == 1 , 0 , X_{final} )$$ Python Logic:
IF ( v["Status"] == 1 , 0 , v["Horizontal Distance X final (m)"] )Live Evaluation: [ROUTE: GRID] IF ( 1.0000 == 1 , 0 , -0.6732 ) = 0.0000
|
| ☰ | \( Y_{final} \) | Vertical Distance Y final (m) | 2.59 |
View Help GuidePurpose: Vertical position taking track slant into accovnt
Logic: Applies the secondary rotational matrix formula to find the true vertical position of the enabler as the track tilts.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$Y_{final} = (X_{flat} \times \sin(\text{rad}(-\theta_{slant})))+(Y_{flat} \times \cos(\text{rad}(-\theta_{slant})))$$ Python Logic:
(v["X flat (m)"]*SIN(RADIANS(-v["Track Slant (degree)"])))+(v["Y flat (m)"]*COS(RADIANS(-v["Track Slant (degree)"])))Live Evaluation: [ROUTE: GRID] (-1.8800*SIN(RADIANS(-30.0000)))+(1.9099*COS(RADIANS(-30.0000))) = 2.5940
|
| ☰ | \( F_g \) | Gravitational Force Fg (N) | 437,245.71 |
View Help GuidePurpose: Determining the gravitational force of each enabler for energy calculations
Logic: Calculates standard downward force (Fg = mg) based on the combined mass of the enabler and its holder.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$F_g = (M_{\text{unit}}+M_{\text{holder}}) \times N$$ Python Logic:
(v["Weight per gravity enabler (kg)"]+v["Gravity enabler holder weight (kg)"])*v["Gravitational Field Strength (N/kg)"]Live Evaluation: [ROUTE: GRID] (5571.4286+39000.0000)*9.8100 = 437,245.7143
|
| ☰ | \( E_p \) | Gravitational Potential Energy GPE per Enabler (J) | 124,114.43 |
View Help GuidePurpose: Determines the exact harvestable energy from the enabler's physical height, minus inherent mechanical losses.
Logic: Calculates standard potential energy (Ep = mgh) and cascades it through the mechanical efficiency multipliers (gear losses, bearing friction, etc.).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$E_p = (((M_{\text{unit}} \times N \times Y_{final}) \times \eta_{\text{gear}}) \times \eta_{\text{bearing}}) \times (1-\mu)$$ Python Logic:
(((v["Weight per gravity enabler (kg)"]*v["Gravitational Field Strength (N/kg)"]*v["Vertical Distance Y final (m)"])*v["Gear efficiency (%)"])*v["Bearing efficiency friction factor (%)"])*(1-v["Friction factor (%)"])Live Evaluation: [ROUTE: GRID] (((5571.4286*9.8100*2.5940)*0.9500)*0.9700)*(1-0.0500) = 124,114.4257
|
| ☰ | \( \Sigma E_{\text{gpe, enablers}} \) | Total Gravitational Potential Energy GPE of all Enablers (J) | 124,114.43 |
View Help GuidePurpose: The sum of the total gravitational potential energy of all enablers taking the GMEG system inefficiencies into account.
Logic: Calculates standard potential energy of teh train (Ep = mgh) and cascades it through the mechanical efficiency multipliers (gear losses, bearing friction, etc.).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\Sigma E_{\text{gpe, enablers}} = E_p$$ Python Logic:
v["Gravitational Potential Energy GPE per Enabler (J)"]Live Evaluation: [ROUTE: GRID] 124114.4257 = 124,114.4257
|
| ☰ | \( F_p \) | GMEG Parallel Force Fp (N) | 218,622.86 |
View Help GuidePurpose: Enabler parallel force taking the parallel angle into account
Logic: Resolves the downward gravitational vector into the actual driving force acting parallel to the track using Fp = Fg sin(Effective Angle).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$F_p = F_g \times \sin(\text{rad}(\theta_{eff}))$$ Python Logic:
v["Gravitational Force Fg (N)"]*SIN(RADIANS(v["Effective Angle for Parallel Force (degree)"]))Live Evaluation: [ROUTE: GRID] 437245.7143*SIN(RADIANS(30.0000)) = 218,622.8571
|
| ☰ | \( m_{en,p} \) | Parallel mass per Enabler (kg) | 22,285.71 |
View Help GuidePurpose: Quantifies the exact portion of the enabler's physical mass that is actively contributing to the downward drive.
Logic: Multiplies the total enabler mass (unit + holder) by the sine of its effective angle to isolate the parallel mass vector.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$m_{en,p} = F_p/N$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]/v["Gravitational Field Strength (N/kg)"]Live Evaluation: [ROUTE: GRID] 218622.8571/9.8100 = 22,285.7143
|
| ☰ | \( \tau_{GMEG} \) | GMEG Nm Output (Nm) | 417,538.90 |
View Help GuidePurpose: Enabler torque delivery based on internal gear radius
Logic: Calculates the instantaneous rotational torque produced by this specific enabler by multiplying the parallel force by the lever arm (radius).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{GMEG} = F_p \times r_{gear}$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]*v["Internal Gear Radius (m)"]Live Evaluation: [ROUTE: GRID] 218622.8571*1.9099 = 417,538.9006
|
| ☰ | \( \eta_{loss} \) | Operational Efficiency (%) | 0.89 |
View Help GuidePurpose: Torque delivery based on adjustable user inefficiency setting
Logic: Applies the baseline mechanical loss/friction coefficient to the system.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\eta_{loss} = \eta_{\text{GMEG}}$$ Python Logic:
v["GMEG Efficiency (%)"]Live Evaluation: [ROUTE: GRID] 0.8884 = 0.8884
|
| ☰ | \( \tau_{GMEG,final} \) | Final GMEG Output (Nm) | 370,941.56 |
View Help GuidePurpose: Enabler torque delivery based on operational inefficiency
Logic: The net, real-world usable torque generated by this single enabler after losses.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{GMEG,final} = \tau_{GMEG} \times \eta_{loss}$$ Python Logic:
v["GMEG Nm Output (Nm)"]*v["Operational Efficiency (%)"]Live Evaluation: [ROUTE: GRID] 417538.9006*0.8884 = 370,941.5593
|
| ☰ | \( \Sigma\tau_{GMEG} \) | Total GMEG Output per Segment (Nm) | 370,941.56 |
View Help GuidePurpose: Total potential torque delivery of the total train with all enablers in the segment
Logic: Aggregates the torque from every enabler in the train for this specific moment in time to find the total system output.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\Sigma\tau_{GMEG} = \tau_{GMEG,final}$$ Python Logic:
v["Final GMEG Output (Nm)"]Live Evaluation: [ROUTE: GRID] 370941.5593 = 370,941.5593
|
| ☰ | \( \tau_{def} \) | Torque Deficit (Nm) | 29,118.91 |
View Help GuidePurpose: Total torque delivery from the gravity enabler train minus the base load torque delivery requirement
Logic: Compares the generated torque against the required load to identify structural power shortages.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{def} = \tau_{GMEG,final}-(\tau_{\text{out}}/N_{\text{enablers}})$$ Python Logic:
v["Final GMEG Output (Nm)"]-(v["GMEG Output Torque (Nm)"]/v["Number of Gravity Enablers"])Live Evaluation: [ROUTE: GRID] 370941.5593-(2392758.5285/7.0000) = 29,118.9124
|
| ☰ | \( \Sigma \tau_{\text{deficit}} \) | Total Torque Deficit (Nm) | 29,118.91 |
View Help GuidePurpose: Accounting for where negative values may influence total torque deficit
Logic: Aggregates the generated torque against the required load to identify structural power shortages.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$` = \tau_{def}$$ Python Logic:
v["Torque Deficit (Nm)"]Live Evaluation: [ROUTE: GRID] 29118.9124 = 29,118.9124
|
| ☰ | \( \tau_{gear} \) | Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: Torque experienced by the DLLS per enabler during rotation cycles
Logic: 0 if v["Status"] == 1 else v["Horizontal Distance X final (m)"] * v["Gravitational Force Fg (N)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{gear} = IF(\text{Status}==1,0,X_{final} \times F_g)$$ Python Logic:
0 if v["Status"] == 1 else v["Horizontal Distance X final (m)"] * v["Gravitational Force Fg (N)"]Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else -0.6732 * 437245.7143 = 0.0000
|
| ☰ | \( \tau \) | Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: Absolute values to represent positive values for torque experienced by the DLLS
Logic: 0 if v["Status"] == 1 else abs(v["Gear System Torque (Nm)"])
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$` = IF(\text{Status}==1,0,ABS(\tau_{gear}))$$ Python Logic:
0 if v["Status"] == 1 else abs(v["Gear System Torque (Nm)"])Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else abs(0.0000) = 0.0000
|
| ☰ | \( \tau_{gear,train} \) | Enabler train Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: 0
Logic: Sums the absolute torque across all enablers to find the total stress on the rotation gears for this time step.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{gear,train} = `$$ Python Logic:
v["Absolute Gear System Torque (Nm)"]Live Evaluation: [ROUTE: GRID] 0.0000 = 0.0000
|
| ☰ | \( W_{DLLS} \) | Work Done by DLLS Joule per Segment (J) | 0.00 |
View Help GuidePurpose: Work done by the DLLS for that segment time frame, based on the angle per segment
Logic: 0 if v["Status"] == 1 else v["Absolute Gear System Torque (Nm)"] * v["Angle Per Segment radians (rad/s)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$W_{DLLS} = IF(\text{Status}==1,0,` \times \text{Angle Per Segment radians (rad/s)})$$ Python Logic:
0 if v["Status"] == 1 else v["Absolute Gear System Torque (Nm)"] * v["Angle Per Segment radians (rad/s)"]Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else 0.0000 * 0.0175 = 0.0000
|
| ☰ | \( TW_{DLLS} \) | Total Work Done by DLLS Joule per Segment (J) | 0.00 |
View Help GuidePurpose: Count of the required work impacting the DLLS during a TAR
Logic: Aggregates the rotational torque across the train during the rotation phase.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$TW_{DLLS} = W_{DLLS}$$ Python Logic:
v["Work Done by DLLS Joule per Segment (J)"]Live Evaluation: [ROUTE: GRID] 0.0000 = 0.0000
|
| ☰ | \( I_{en} \) | Moment of inertia per enabler (kg.m2) | 0.00 |
View Help GuidePurpose: Modelling inertia during a track arc rotation based on each enablers' position on the track
Logic: 0 if v["Status"] == 1 else ((v["TOTAL WEIGHT (KG)"] / v["Number of Gravity Enablers"]) * (v["Horizontal Distance X final (m)"] ** 2))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$I_{en} = IF(\text{Status}==1,0,((M_{\text{total}}/N_{\text{enablers}}) \times (X_{final}^2)))$$ Python Logic:
0 if v["Status"] == 1 else ((v["TOTAL WEIGHT (KG)"] / v["Number of Gravity Enablers"]) * (v["Horizontal Distance X final (m)"] ** 2))Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else ((312000.0000 / 7.0000) * (-0.6732 ** 2)) = 0.0000
|
| ☰ | \( I_{train} \) | Enabler train Moment of inertia (kg.m2) | 0.00 |
View Help GuidePurpose: Running total inertia based on all enablers
Logic: Aggregates the individual inertia values to find the total resistance the system must overcome to swivel the track.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$I_{train} = I_{en}$$ Python Logic:
v["Moment of inertia per enabler (kg.m2)"]Live Evaluation: [ROUTE: GRID] 0.0000 = 0.0000
|
| ▼ 4. ROTATIONAL TORQUE BLUEPRINTS - S2 E2 Cascade | ||||
| ☰ | \( P_{circ} \) | Enabler Circumference Distance (m) | 0.00 |
View Help GuidePurpose: Determines distance travelled by a gravity enabler on the rounded corner
Logic: (v["Distance on track (m)"] - v["Physical End Straight1 (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else v["Distance on track (m)"] - v["Physical End Straight2 (m)"]) if v["Track Section"] == 2 else 0
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$P_{circ} = IF(S_{track}==2,IF(
d_{track}<L_{s2},d_{track}-L_{s1},d_{track}-L_{c1}),0)$$ Python Logic:
(v["Distance on track (m)"] - v["Physical End Straight1 (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else v["Distance on track (m)"] - v["Physical End Straight2 (m)"]) if v["Track Section"] == 2 else 0Live Evaluation: [ROUTE: GRID] (0.9554 - 4.0000 if 0.9554 < 10.0000 else 0.9554 - 14.0000) if 1.0000 == 2 else 0 = 0.0000
|
| ☰ | \( \alpha \) | Enabler Circumference Angle (degree) | 0.00 |
View Help GuidePurpose: The rounded corner enabler position angle
Logic: Converts the curved distance travelled into an exact geometric angle around the gear hub.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\alpha = \text{deg}(P_{circ}/r_{gear})$$ Python Logic:
DEGREES(v["Enabler Circumference Distance (m)"]/v["Internal Gear Radius (m)"])Live Evaluation: [ROUTE: GRID] DEGREES(0.0000/1.9099) = 0.0000
|
| ☰ | \( \theta_{eff,static} \) | Static Effective Angle for parallel force (degree) | 30.00 |
View Help GuidePurpose: Intermediate calculation for Effective Angle considering the track slant
Logic: v["Track Slant (degree)"] if v["Enabler Circumference Angle (degree)"] == 0 else v["Track Slant (degree)"] + v["Enabler Circumference Angle (degree)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\theta_{eff,static} = IF(\alpha==0,\theta_{slant},\theta_{slant}+\alpha)$$ Python Logic:
v["Track Slant (degree)"] if v["Enabler Circumference Angle (degree)"] == 0 else v["Track Slant (degree)"] + v["Enabler Circumference Angle (degree)"]Live Evaluation: [ROUTE: GRID] 30.0000 if 0.0000 == 0 else 30.0000 + 0.0000 = 30.0000
|
| ☰ | \( \theta_{eff} \) | Effective Angle for Parallel Force (degree) | 30.00 |
View Help GuidePurpose: Determinging the correct effective parallel force angle based on the geometry of the GMEG design
Logic: abs(v["Track Slant (degree)"]) if v["Track Section"] == 1 else ((v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["TAR Transformed Enabler Distance (m)"] < v["RotZone1 End (m)"] else (-(v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["TAR Transformed Enabler Distance (m)"] < v["RotZone2 End (m)"] else 0.0))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\theta_{eff} = IF(S_{track} == 1, abs(\theta_{slant}), IF(P_{trans}<R_{z1, end},IF(\theta_{eff,static} < 90, \theta_{eff,static}, 180 - \theta_{eff,static}),IF(P_{trans}<R_{z2, end},-IF(\theta_{eff,static} < 90, \theta_{eff,static}, 180 - \theta_{eff,static}), 0.0)))$$ Python Logic:
abs(v["Track Slant (degree)"]) if v["Track Section"] == 1 else ((v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["TAR Transformed Enabler Distance (m)"] < v["RotZone1 End (m)"] else (-(v["Static Effective Angle for parallel force (degree)"] if v["Static Effective Angle for parallel force (degree)"] < 90 else 180 - v["Static Effective Angle for parallel force (degree)"]) if v["TAR Transformed Enabler Distance (m)"] < v["RotZone2 End (m)"] else 0.0))Live Evaluation: [ROUTE: GRID] abs(30.0000) if 1.0000 == 1 else ((30.0000 if 30.0000 < 90 else 180 - 30.0000) if 1.0754 < 10.6000 else (-(30.0000 if 30.0000 < 90 else 180 - 30.0000) if 1.0754 < 20.6000 else 0.0)) = 30.0000
|
| ☰ | \( X_{flat} \) | X flat (m) | -1.04 |
View Help GuidePurpose: Horizontal position with the track in a horizontal position
Logic: (v["Distance on track (m)"] - (v["Straight track length (m)"] / 2) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else (v["Straight track length (m)"] / 2) - (v["Distance on track (m)"] - v["Physical End Corner1 (m)"])) if v["Track Section"] == 1 else ((v["Straight track length (m)"] / 2) + (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -(v["Straight track length (m)"] / 2) - (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{flat} = IF(S_{track}==1,
IF(d_{track}<L_{s2},d_{track}-(L_{\text{straight}}/2),(L_{\text{straight}}/2)-(d_{track}-L_{s2})),
IF(d_{track}<L_{s2},(L_{\text{straight}}/2)+(r_{gear} \times \sin(\text{rad}(\alpha))),-(L_{\text{straight}}/2)-(r_{gear} \times \sin(\text{rad}(\alpha)))))$$ Python Logic:
(v["Distance on track (m)"] - (v["Straight track length (m)"] / 2) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else (v["Straight track length (m)"] / 2) - (v["Distance on track (m)"] - v["Physical End Corner1 (m)"])) if v["Track Section"] == 1 else ((v["Straight track length (m)"] / 2) + (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -(v["Straight track length (m)"] / 2) - (v["Internal Gear Radius (m)"] * __import__("math").sin(__import__("math").radians(v["Enabler Circumference Angle (degree)"]))))Live Evaluation: [ROUTE: GRID] (0.9554 - (4.0000 / 2) if 0.9554 < 10.0000 else (4.0000 / 2) - (0.9554 - 10.0000)) if 1.0000 == 1 else ((4.0000 / 2) + (1.9099 * __import__("math").sin(__import__("math").radians(0.0000))) if 0.9554 < 10.0000 else -(4.0000 / 2) - (1.9099 * __import__("math").sin(__import__("math").radians(0.0000)))) = -1.0446
|
| ☰ | \( Y_{flat} \) | Y flat (m) | 1.91 |
View Help GuidePurpose: Vertical position with the track in a horizontal position
Logic: (v["Internal Gear Radius (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"]) if v["Track Section"] == 1 else (v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$Y_{flat} = IF(S_{track}==1,
IF(d_{track}<L_{s2},r_{gear},-r_{gear}),
IF(d_{track}<L_{s2},r_{gear} \times \cos(\text{rad}(\alpha)),-r_{gear} \times \cos(\text{rad}(\alpha))))$$ Python Logic:
(v["Internal Gear Radius (m)"] if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"]) if v["Track Section"] == 1 else (v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])) if v["Distance on track (m)"] < v["Physical End Corner1 (m)"] else -v["Internal Gear Radius (m)"] * __import__("math").cos(__import__("math").radians(v["Enabler Circumference Angle (degree)"])))Live Evaluation: [ROUTE: GRID] (1.9099 if 0.9554 < 10.0000 else -1.9099) if 1.0000 == 1 else (1.9099 * __import__("math").cos(__import__("math").radians(0.0000)) if 0.9554 < 10.0000 else -1.9099 * __import__("math").cos(__import__("math").radians(0.0000))) = 1.9099
|
| ☰ | \( X_{final} \) | Horizontal Distance X final (m) | 0.05 |
View Help GuidePurpose: Horizontal position taking track slant into account
Logic: Applies a 2D rotational matrix to the flat X/Y coordinates based on the track slant degree to find the true horizontal position in 3D space.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{final} = (X_{flat} \times \cos(\text{rad}(-\theta_{slant})))-(Y_{flat} \times \sin(\text{rad}(-\theta_{slant})))$$ Python Logic:
(v["X flat (m)"]*COS(RADIANS(-v["Track Slant (degree)"])))-(v["Y flat (m)"]*SIN(RADIANS(-v["Track Slant (degree)"])))Live Evaluation: [ROUTE: GRID] (-1.0446*COS(RADIANS(-30.0000)))-(1.9099*SIN(RADIANS(-30.0000))) = 0.0502
|
| ☰ | \( X_{\text{min, lever}} \) | Min Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{\text{min, lever}} = IF ( \text{Status} == 1 , 0 , IF ( X_{final} < v_preX_{\text{min, lever}} , X_{final} , v_preX_{\text{min, lever}} ) )$$ Python Logic:
IF ( v["Status"] == 1 , 0 , IF ( v["Horizontal Distance X final (m)"] < v_prev["Min Lever Arm (m)"] , v["Horizontal Distance X final (m)"] , v_prev["Min Lever Arm (m)"] ) )Live Evaluation: [ROUTE: GRID] IF ( 1.0000 == 1 , 0 , IF ( 0.0502 < 0.0000 , 0.0502 , 0.0000 ) ) = 0.0000
|
| ☰ | \( X_{\text{max, lever}} \) | Max Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$X_{\text{max, lever}} = IF ( \text{Status} == 1 , 0 , IF ( X_{final} > v_preX_{\text{max, lever}} , X_{final} , v_preX_{\text{max, lever}} ) )$$ Python Logic:
IF ( v["Status"] == 1 , 0 , IF ( v["Horizontal Distance X final (m)"] > v_prev["Max Lever Arm (m)"] , v["Horizontal Distance X final (m)"] , v_prev["Max Lever Arm (m)"] ) )Live Evaluation: [ROUTE: GRID] IF ( 1.0000 == 1 , 0 , IF ( 0.0502 > 0.0000 , 0.0502 , 0.0000 ) ) = 0.0000
|
| ☰ | \( Y_{final} \) | Vertical Distance Y final (m) | 2.18 |
View Help GuidePurpose: Vertical position taking track slant into accovnt
Logic: Applies the secondary rotational matrix formula to find the true vertical position of the enabler as the track tilts.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$Y_{final} = (X_{flat} \times \sin(\text{rad}(-\theta_{slant})))+(Y_{flat} \times \cos(\text{rad}(-\theta_{slant})))$$ Python Logic:
(v["X flat (m)"]*SIN(RADIANS(-v["Track Slant (degree)"])))+(v["Y flat (m)"]*COS(RADIANS(-v["Track Slant (degree)"])))Live Evaluation: [ROUTE: GRID] (-1.0446*SIN(RADIANS(-30.0000)))+(1.9099*COS(RADIANS(-30.0000))) = 2.1763
|
| ☰ | \( F_g \) | Gravitational Force Fg (N) | 437,245.71 |
View Help GuidePurpose: Determining the gravitational force of each enabler for energy calculations
Logic: Calculates standard downward force (Fg = mg) based on the combined mass of the enabler and its holder.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$F_g = (M_{\text{unit}}+M_{\text{holder}}) \times N$$ Python Logic:
(v["Weight per gravity enabler (kg)"]+v["Gravity enabler holder weight (kg)"])*v["Gravitational Field Strength (N/kg)"]Live Evaluation: [ROUTE: GRID] (5571.4286+39000.0000)*9.8100 = 437,245.7143
|
| ☰ | \( E_p \) | Gravitational Potential Energy GPE per Enabler (J) | 104,129.82 |
View Help GuidePurpose: The total gravitational potential energy of each enabler taking the GMEG system inefficiencies into account
Logic: Calculates standard potential energy (Ep = mgh) and cascades it through the mechanical efficiency multipliers (gear losses, bearing friction, etc.).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$E_p = (((M_{\text{unit}} \times N \times Y_{final}) \times \eta_{\text{gear}}) \times \eta_{\text{bearing}}) \times (1-\mu)$$ Python Logic:
(((v["Weight per gravity enabler (kg)"]*v["Gravitational Field Strength (N/kg)"]*v["Vertical Distance Y final (m)"])*v["Gear efficiency (%)"])*v["Bearing efficiency friction factor (%)"])*(1-v["Friction factor (%)"])Live Evaluation: [ROUTE: GRID] (((5571.4286*9.8100*2.1763)*0.9500)*0.9700)*(1-0.0500) = 104,129.8205
|
| ☰ | \( \Sigma E_{\text{gpe, enablers}} \) | Total Gravitational Potential Energy GPE of all Enablers (J) | 228,244.25 |
View Help GuidePurpose: The sum of the total gravitational potential energy of all enablers taking the GMEG system inefficiencies into account.
Logic: Calculates standard potential energy of teh train (Ep = mgh) and cascades it through the mechanical efficiency multipliers (gear losses, bearing friction, etc.).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\Sigma E_{\text{gpe, enablers}} = E_p+v_pre\Sigma E_{\text{gpe, enablers}}$$ Python Logic:
v["Gravitational Potential Energy GPE per Enabler (J)"]+v_prev["Total Gravitational Potential Energy GPE of all Enablers (J)"]Live Evaluation: [ROUTE: GRID] 104129.8205+124114.4257 = 228,244.2461
|
| ☰ | \( F_p \) | GMEG Parallel Force Fp (N) | 218,622.86 |
View Help GuidePurpose: Enabler parallel force taking the parallel angle into account
Logic: Resolves the downward gravitational vector into the actual driving force acting parallel to the track using Fp = Fg sin(Effective Angle).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$F_p = F_g \times \sin(\text{rad}(\theta_{eff}))$$ Python Logic:
v["Gravitational Force Fg (N)"]*SIN(RADIANS(v["Effective Angle for Parallel Force (degree)"]))Live Evaluation: [ROUTE: GRID] 437245.7143*SIN(RADIANS(30.0000)) = 218,622.8571
|
| ☰ | \( m_{en,p} \) | Parallel mass per Enabler (kg) | 22,285.71 |
View Help GuidePurpose: Quantifies the exact portion of the enabler's physical mass that is actively contributing to the downward drive.
Logic: Multiplies the total enabler mass (unit + holder) by the sine of its effective angle to isolate the parallel mass vector.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$m_{en,p} = F_p/N$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]/v["Gravitational Field Strength (N/kg)"]Live Evaluation: [ROUTE: GRID] 218622.8571/9.8100 = 22,285.7143
|
| ☰ | \( \tau_{GMEG} \) | GMEG Nm Output (Nm) | 417,538.90 |
View Help GuidePurpose: Enabler torque delivery based on internal gear radius
Logic: Calculates the instantaneous rotational torque produced by this specific enabler by multiplying the parallel force by the lever arm (radius).
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{GMEG} = F_p \times r_{gear}$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]*v["Internal Gear Radius (m)"]Live Evaluation: [ROUTE: GRID] 218622.8571*1.9099 = 417,538.9006
|
| ☰ | \( \eta_{loss} \) | Operational Efficiency (%) | 0.89 |
View Help GuidePurpose: Torque delivery based on adjustable user inefficiency setting
Logic: Applies the baseline mechanical loss/friction coefficient to the system.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\eta_{loss} = \eta_{\text{GMEG}}$$ Python Logic:
v["GMEG Efficiency (%)"]Live Evaluation: [ROUTE: GRID] 0.8884 = 0.8884
|
| ☰ | \( \tau_{GMEG,final} \) | Final GMEG Output (Nm) | 370,941.56 |
View Help GuidePurpose: Enabler torque delivery based on operational inefficiency
Logic: The net, real-world usable torque generated by this single enabler after losses.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{GMEG,final} = \tau_{GMEG} \times \eta_{loss}$$ Python Logic:
v["GMEG Nm Output (Nm)"]*v["Operational Efficiency (%)"]Live Evaluation: [ROUTE: GRID] 417538.9006*0.8884 = 370,941.5593
|
| ☰ | \( \Sigma\tau_{GMEG} \) | Total GMEG Output per Segment (Nm) | 741,883.12 |
View Help GuidePurpose: Total potential torque delivery of the total train with all enablers in the segment
Logic: Aggregates the torque from every enabler in the train for this specific moment in time to find the total system output.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\Sigma\tau_{GMEG} = v_pre\Sigma\tau_{GMEG}+\tau_{GMEG,final}$$ Python Logic:
v_prev["Total GMEG Output per Segment (Nm)"]+v["Final GMEG Output (Nm)"]Live Evaluation: [ROUTE: GRID] 370941.5593+370941.5593 = 741,883.1187
|
| ☰ | \( \tau_{def} \) | Torque Deficit (Nm) | 29,118.91 |
View Help GuidePurpose: Total torque delivery from the gravity enabler train minus the base load torque delivery requirement
Logic: Compares the generated torque against the required load to identify structural power shortages.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{def} = \tau_{GMEG,final}-(\tau_{\text{out}}/N_{\text{enablers}})$$ Python Logic:
v["Final GMEG Output (Nm)"]-(v["GMEG Output Torque (Nm)"]/v["Number of Gravity Enablers"])Live Evaluation: [ROUTE: GRID] 370941.5593-(2392758.5285/7.0000) = 29,118.9124
|
| ☰ | \( \tau_{\tau_def} \) | Total Torque Deficit (Nm) | 58,237.82 |
View Help GuidePurpose: Accounting for where negative values may influence total torque deficit
Logic: Aggregates the generated torque against the required load to identify structural power shortages.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{\tau_def} = \tau_{def}+v_pre\tau_{\tau_def}$$ Python Logic:
v["Torque Deficit (Nm)"]+v_prev["Total Torque Deficit (Nm)"]Live Evaluation: [ROUTE: GRID] 29118.9124+29118.9124 = 58,237.8248
|
| ☰ | \( \tau_{gear} \) | Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: Torque experienced by the DLLS per enabler during rotation cycles
Logic: 0 if v["Status"] == 1 else v["Horizontal Distance X final (m)"] * v["Gravitational Force Fg (N)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{gear} = IF(\text{Status}==1,0,X_{final} \times F_g)$$ Python Logic:
0 if v["Status"] == 1 else v["Horizontal Distance X final (m)"] * v["Gravitational Force Fg (N)"]Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else 0.0502 * 437245.7143 = 0.0000
|
| ☰ | \( \tau \) | Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: Absolute values to represent positive values for torque experienced by the DLLS
Logic: 0 if v["Status"] == 1 else abs(v["Gear System Torque (Nm)"])
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$` = IF(\text{Status}==1,0,ABS(\tau_{gear}))$$ Python Logic:
0 if v["Status"] == 1 else abs(v["Gear System Torque (Nm)"])Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else abs(0.0000) = 0.0000
|
| ☰ | \( \tau_{gear,train} \) | Enabler train Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: 0
Logic: Sums the absolute torque across all enablers to find the total stress on the rotation gears for this time step.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$\tau_{gear,train} = `+v_pre\tau_{gear,train}$$ Python Logic:
v["Absolute Gear System Torque (Nm)"]+v_prev["Enabler train Absolute Gear System Torque (Nm)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ☰ | \( W_{DLLS} \) | Work Done by DLLS Joule per Segment (J) | 0.00 |
View Help GuidePurpose: Work done by the DLLS for that segment time frame, based on the angle per segment
Logic: 0 if v["Status"] == 1 else v["Absolute Gear System Torque (Nm)"] * v["Angle Per Segment radians (rad/s)"]
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$W_{DLLS} = IF(\text{Status}==1,0,` \times \text{Angle Per Segment radians (rad/s)})$$ Python Logic:
0 if v["Status"] == 1 else v["Absolute Gear System Torque (Nm)"] * v["Angle Per Segment radians (rad/s)"]Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else 0.0000 * 0.0175 = 0.0000
|
| ☰ | \( TW_{DLLS} \) | Total Work Done by DLLS Joule per Segment (J) | 0.00 |
View Help GuidePurpose: Count of the required work impacting the DLLS during a TAR
Logic: Aggregates the rotational torque across the train during the rotation phase.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$TW_{DLLS} = W_{DLLS}+v_preTW_{DLLS}$$ Python Logic:
v["Work Done by DLLS Joule per Segment (J)"]+v_prev["Total Work Done by DLLS Joule per Segment (J)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ☰ | \( I_{en} \) | Moment of inertia per enabler (kg.m2) | 0.00 |
View Help GuidePurpose: Modelling inertia during a track arc rotation based on each enablers' position on the track
Logic: 0 if v["Status"] == 1 else ((v["TOTAL WEIGHT (KG)"] / v["Number of Gravity Enablers"]) * (v["Horizontal Distance X final (m)"] ** 2))
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$I_{en} = IF(\text{Status}==1,0,((M_{\text{total}}/N_{\text{enablers}}) \times (X_{final}^2)))$$ Python Logic:
0 if v["Status"] == 1 else ((v["TOTAL WEIGHT (KG)"] / v["Number of Gravity Enablers"]) * (v["Horizontal Distance X final (m)"] ** 2))Live Evaluation: [ROUTE: GRID] 0 if 1.0000 == 1 else ((312000.0000 / 7.0000) * (0.0502 ** 2)) = 0.0000
|
| ☰ | \( I_{train} \) | Enabler train Moment of inertia (kg.m2) | 0.00 |
View Help GuidePurpose: Running total inertia based on all enablers
Logic: Aggregates the individual inertia values to find the total resistance the system must overcome to swivel the track.
Type: Calculated (Math Output)
Render on Grids: Rotational Torque
Mathematical Formula:
$$I_{train} = I_{en}+v_preI_{train}$$ Python Logic:
v["Moment of inertia per enabler (kg.m2)"]+v_prev["Enabler train Moment of inertia (kg.m2)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ▼ 5. ENERGY BALANCE BLUEPRINTS - S1 E1 Base | ||||
| ☰ | \( t_{seg} \) | Time per segment (s) | 0.02 |
View Help GuidePurpose: Time period needed for energy balance calculations
Logic: Divides the total track lift time by the total degrees of tilt to find the exact duration of a single simulation frame.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$t_{seg} = t_{\text{lift}}/(\theta_{\text{tilt}} \times 2)$$ Python Logic:
v["Lift Time (s)"]/(v["Angle tilt (degrees)"]*2)Live Evaluation: [ROUTE: GRID] 1.0000/(30.0000*2) = 0.0167
|
| ☰ | \( t_{total} \) | Total time (s) | 0.02 |
View Help GuidePurpose: Accumlituve time per segment for timelime progression
Logic: Tracks the running total of seconds elapsed since Time = 0.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$t_{total} = t_{seg}$$ Python Logic:
v["Time per segment (s)"]Live Evaluation: [ROUTE: GRID] 0.0167 = 0.0167
|
| ☰ | \( W_g \) | Work Done by Gravity (J) | 26,234.74 |
View Help GuidePurpose: Work done calculated per segment
Logic: Multiplies the parallel gravitational force (Fp) by the distance travelled (W = F x d).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$W_g = F_p \times L_{\text{seg}}$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]*v["Distance travelled per segment (m)"]Live Evaluation: [ROUTE: GRID] 218622.8571*0.1200 = 26,234.7429
|
| ☰ | \( E_{trans} \) | DLLS Energy transferred to GMEG (J) | 0.00 |
View Help GuidePurpose: DLLS arc rotation energy transfer with efficiency factor
Logic: Applies the DLLS mechanical transfer efficiency coefficient to the total work done by the DLLS gears.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{trans} = W_{DLLS} \times \eta_{DLLS}$$ Python Logic:
v["Work Done by DLLS Joule per Segment (J)"]*v["Energy Transfer Efficiency DLLS (%)"]Live Evaluation: [ROUTE: GRID] 0.0000*0.9000 = 0.0000
|
| ☰ | \( E_{loss,fric} \) | Energy Lost to Friction (J) | 1,311.74 |
View Help GuidePurpose: Accounting for losses in gravity enabler train
Logic: abs(v["Work Done by Gravity (J)"] * v["Friction factor (%)"])
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{loss,fric} = ABS(W_g \times \mu)$$ Python Logic:
abs(v["Work Done by Gravity (J)"] * v["Friction factor (%)"])Live Evaluation: [ROUTE: GRID] abs(26234.7429 * 0.0500) = 1,311.7371
|
| ☰ | \( E_{req} \) | GMEG Operational Requirement (J) | 20,208.04 |
View Help GuidePurpose: Power needed to the GMEG generator per segment
Logic: Slices the total kW generator load into a micro-Joule requirement per-enabler, per-segment.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{req} = (P_{\text{out}} \times 1000) \times (1/(\theta_{\text{tilt}} \times 2)/N_{\text{enablers}})$$ Python Logic:
(v["Magnetic Generator Power Output (kW)"]*1000)*(1/(v["Angle tilt (degrees)"]*2)/v["Number of Gravity Enablers"])Live Evaluation: [ROUTE: GRID] (8487.3763*1000)*(1/(30.0000*2)/7.0000) = 20,208.0389
|
| ☰ | \( E_{bal} \) | Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Total output considering all inputs and outputs
Logic: Subtracts the friction and generator loads from the combined energy inputs (Gravity Work + DLLS Energy). A value of 0 proves perfect equilibrium.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal} = W_g+E_{trans}-E_{loss,fric}-E_{req}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]-v["GMEG Operational Requirement (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371-20208.0389 = 4,714.9668
|
| ☰ | \( E_k \) | KE for Train (J) | 4,714.97 |
View Help GuidePurpose: Determing kinetic energy availability
Logic: Inherits the net energy balance to model the kinetic state of the enabler train.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_k = E_{bal}$$ Python Logic:
v["Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668 = 4,714.9668
|
| ☰ | \( E_{k,op} \) | Total KE for Train at Operational Speed (J) | 4,714.97 |
View Help GuidePurpose: Total kinetic energy of the gravity enabler train
Logic: Inherits the net energy balance to model the kinetic state of the enabler train.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{k,op} = E_{bal}$$ Python Logic:
v["Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668 = 4,714.9668
|
| ☰ | \( E_{bal,start} \) | Gravitational Startup State Energy Balance (J) | 24,923.01 |
View Help GuidePurpose: System start up with the DLLS powered externally
Logic: Calculates the energy balance excluding the GMEG Operational Requirement to show how the system accelerates from a dead stop.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal,start} = W_g+E_{trans}-E_{loss,fric}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371 = 24,923.0057
|
| ☰ | \( \Sigma E_{bal,start} \) | Gravitational Startup State Accumulative Energy Balance (J) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train
Logic: Sums the sequential Startup State balances over time.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$\Sigma E_{bal,start} = \text{Gravitational Startup State Energy Balance (J)}$$ Python Logic:
v["Gravitational Startup State Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 0.0000 = 0.0000
|
| ☰ | \( v_{start} \) | Gravitational Startup State Velocity (m/s) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Startup Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$v_{start} = \sqrt{2 \times \Sigma E_{bal,start}/M_{\text{total}})$$ Python Logic:
SQRT(2*v["Gravitational Startup State Accumulative Energy Balance (J)"]/v["TOTAL WEIGHT (KG)"])Live Evaluation: [ROUTE: GRID] SQRT(2*0.0000/312000.0000) = 0.0000
|
| ☰ | \( E_{bal,op} \) | Operational State Steady Velocity Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Total output considering all inputs and outputs at normal operational speed
Logic: Identical to the main Energy Balance formula; proves long-term sustainability under full electrical load.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal,op} = W_g+E_{trans}-E_{loss,fric}-E_{req}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]-v["GMEG Operational Requirement (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371-20208.0389 = 4,714.9668
|
| ☰ | \( \Sigma E_{bal,op} \) | Operational State Steady Velocity Accumulative Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train
Logic: Sums the sequential Operational State balances over time.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$\Sigma E_{bal,op} = E_{bal,op}$$ Python Logic:
v["Operational State Steady Velocity Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668 = 4,714.9668
|
| ☰ | \( v_{op} \) | Operational State Steady Velocity (m/s) | 0.17 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: UNUSED
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$v_{op} = \sqrt{2 \times \Sigma E_{bal,op}/M_{\text{total}})$$ Python Logic:
SQRT(2*v["Operational State Steady Velocity Accumulative Energy Balance (J)"]/v["TOTAL WEIGHT (KG)"])Live Evaluation: [ROUTE: GRID] SQRT(2*4714.9668/312000.0000) = 0.1739
|
| ☰ | \( E_{in,supp} \) | Additional Support System Input (J) | 0.00 |
View Help GuidePurpose: Determining impact on the system when adding additional energy through a start up motor
Logic: Translates the available excess support kW into Joules per segment.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( E_{bal,supp} \) | Additional Support System Energy Balance (J) | 0.00 |
View Help GuidePurpose: Total output considering all inputs and outputs
Logic: Adds the auxiliary support energy to the standard Operational Energy Balance.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( \Sigma E_{bal,supp} \) | Additional Support System Accumulative Energy Balance (J) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train with the additional start up energy
Logic: Sums the auxiliary inputs and balances across the time series.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( v_{supp} \) | Additional Support System Velocity (m/s) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Support Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ▼ 5. ENERGY BALANCE BLUEPRINTS - S1 E2 Loop | ||||
| ☰ | \( t_{seg} \) | Time per segment (s) | 0.02 |
View Help GuidePurpose: Time period needed for energy balance calculations
Logic: UNUSED (Inherited from Enabler 1 to ensure a locked time step).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$t_{seg} = v_pret_{seg}$$ Python Logic:
v_prev["Time per segment (s)"]Live Evaluation: [ROUTE: GRID] 0.0167 = 0.0167
|
| ☰ | \( t_{total} \) | Total time (s) | 0.02 |
View Help GuidePurpose: Accumlituve time per segment for timelime progression
Logic: Tracks the running total of seconds elapsed since Time = 0.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$t_{total} = v_pret_{total}$$ Python Logic:
v_prev["Total time (s)"]Live Evaluation: [ROUTE: GRID] 0.0167 = 0.0167
|
| ☰ | \( W_g \) | Work Done by Gravity (J) | 26,234.74 |
View Help GuidePurpose: Work done calculated per segment
Logic: Multiplies the parallel gravitational force (Fp) by the distance travelled (W = F x d).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$W_g = F_p \times L_{\text{seg}}$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]*v["Distance travelled per segment (m)"]Live Evaluation: [ROUTE: GRID] 218622.8571*0.1200 = 26,234.7429
|
| ☰ | \( E_{trans} \) | DLLS Energy transferred to GMEG (J) | 0.00 |
View Help GuidePurpose: DLLS arc rotation energy transfer with efficiency factor
Logic: Applies the DLLS mechanical transfer efficiency coefficient to the total work done by the DLLS gears acting on Enabler 2.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{trans} = W_{DLLS} \times \eta_{DLLS}$$ Python Logic:
v["Work Done by DLLS Joule per Segment (J)"]*v["Energy Transfer Efficiency DLLS (%)"]Live Evaluation: [ROUTE: GRID] 0.0000*0.9000 = 0.0000
|
| ☰ | \( E_{loss,fric} \) | Energy Lost to Friction (J) | 1,311.74 |
View Help GuidePurpose: Accounting for losses in gravity enabler train
Logic: Applies the user-defined friction percentage directly to the raw work done by gravity.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{loss,fric} = W_g \times \mu$$ Python Logic:
v["Work Done by Gravity (J)"]*v["Friction factor (%)"]Live Evaluation: [ROUTE: GRID] 26234.7429*0.0500 = 1,311.7371
|
| ☰ | \( E_{req} \) | GMEG Operational Requirement (J) | 20,208.04 |
View Help GuidePurpose: Power needed to the GMEG generator per segment
Logic: Slices the total kW generator load into a micro-Joule requirement per-enabler, per-segment.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{req} = (P_{\text{out}} \times 1000) \times (1/(\theta_{\text{tilt}} \times 2)/N_{\text{enablers}})$$ Python Logic:
(v["Magnetic Generator Power Output (kW)"]*1000)*(1/(v["Angle tilt (degrees)"]*2)/v["Number of Gravity Enablers"])Live Evaluation: [ROUTE: GRID] (8487.3763*1000)*(1/(30.0000*2)/7.0000) = 20,208.0389
|
| ☰ | \( E_{bal} \) | Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Total output considering all inputs and outputs
Logic: Subtracts the friction and generator loads from the combined energy inputs (Gravity Work + DLLS Energy).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal} = W_g+E_{trans}-E_{loss,fric}-E_{req}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]-v["GMEG Operational Requirement (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371-20208.0389 = 4,714.9668
|
| ☰ | \( E_k \) | KE for Train (J) | 4,714.97 |
View Help GuidePurpose: Determing kinetic energy availability
Logic: Inherits the net energy balance to model the kinetic state of the enabler train.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_k = E_{bal}$$ Python Logic:
v["Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668 = 4,714.9668
|
| ☰ | \( E_{k,op} \) | Total KE for Train at Operational Speed (J) | 9,429.93 |
View Help GuidePurpose: Total kinetic energy of the gravity enabler train
Logic: Inherits the Energy Balance (J).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{k,op} = E_{bal}+v_preE_{k,op}$$ Python Logic:
v["Energy Balance (J)"]+v_prev["Total KE for Train at Operational Speed (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668+4714.9668 = 9,429.9336
|
| ☰ | \( E_{bal,start} \) | Gravitational Startup State Energy Balance (J) | 24,923.01 |
View Help GuidePurpose: System start up with the DLLS powered externally
Logic: Calculates the energy balance excluding the GMEG Operational Requirement to show how the system accelerates from a dead stop.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal,start} = W_g+E_{trans}-E_{loss,fric}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371 = 24,923.0057
|
| ☰ | \( \Sigma E_{bal,start} \) | Gravitational Startup State Accumulative Energy Balance (J) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train
Logic: Sums the sequential Startup State balances over time.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$\Sigma E_{bal,start} = E_{bal,start}+v_pre\Sigma E_{bal,start}$$ Python Logic:
v["Gravitational Startup State Energy Balance (J)"]+v_prev["Gravitational Startup State Accumulative Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ☰ | \( v_{start} \) | Gravitational Startup State Velocity (m/s) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Startup Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$v_{start} = \sqrt{2 \times \Sigma E_{bal,start}/M_{\text{total}})$$ Python Logic:
SQRT(2*v["Gravitational Startup State Accumulative Energy Balance (J)"]/v["TOTAL WEIGHT (KG)"])Live Evaluation: [ROUTE: GRID] SQRT(2*0.0000/312000.0000) = 0.0000
|
| ☰ | \( E_{bal,op} \) | Operational State Steady Velocity Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Total output considering all inputs and outputs at normal operational speed
Logic: Identical to the main Energy Balance formula; proves long-term sustainability under full electrical load.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal,op} = W_g+E_{trans}-E_{loss,fric}-E_{req}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]-v["GMEG Operational Requirement (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371-20208.0389 = 4,714.9668
|
| ☰ | \( \Sigma E_{bal,op} \) | Operational State Steady Velocity Accumulative Energy Balance (J) | 9,429.93 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train
Logic: Sums the sequential Operational State balances over time.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$\Sigma E_{bal,op} = E_{bal,op}+v_pre\Sigma E_{bal,op}$$ Python Logic:
v["Operational State Steady Velocity Energy Balance (J)"]+v_prev["Operational State Steady Velocity Accumulative Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668+4714.9668 = 9,429.9336
|
| ☰ | \( v_{op} \) | Operational State Steady Velocity (m/s) | 0.25 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: UNUSED
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$v_{op} = \sqrt{2 \times \Sigma E_{bal,op}/M_{\text{total}})$$ Python Logic:
SQRT(2*v["Operational State Steady Velocity Accumulative Energy Balance (J)"]/v["TOTAL WEIGHT (KG)"])Live Evaluation: [ROUTE: GRID] SQRT(2*9429.9336/312000.0000) = 0.2459
|
| ☰ | \( E_{in,supp} \) | Additional Support System Input (J) | 0.00 |
View Help GuidePurpose: Determining impact on the system when adding additional energy through a start up motor
Logic: Translates the available excess support kW into Joules per segment, specifically reaching up to pull the time value from Enabler 1 (N2) to maintain a perfectly synced simulation frame.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( E_{bal,supp} \) | Additional Support System Energy Balance (J) | 0.00 |
View Help GuidePurpose: Total output considering all inputs and outputs
Logic: Adds the auxiliary support energy to the standard Operational Energy Balance.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( \Sigma E_{bal,supp} \) | Additional Support System Accumulative Energy Balance (J) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train with the additional start up energy
Logic: Sums the auxiliary inputs and balances across the time series.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( v_{supp} \) | Additional Support System Velocity (m/s) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Support Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ▼ 5. ENERGY BALANCE BLUEPRINTS - S2 E1 Transition | ||||
| ☰ | \( t_{seg} \) | Time per segment (s) | 0.02 |
View Help GuidePurpose: Time period needed for energy balance calculations
Logic: Divides the distance travelled in this segment by the desired operational velocity.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$t_{seg} = \Delta d_{TAR}/v$$ Python Logic:
v["TAR Difference (m)"]/v["Operational Velocity (m/s)"]Live Evaluation: [ROUTE: GRID] 0.1200/7.2000 = 0.0167
|
| ☰ | \( t_{total} \) | Total time (s) | 0.03 |
View Help GuidePurpose: Accumlituve time per segment for timelime progression
Logic: Adds the new Time per segment to the Total time inherited from the previous segment (S1).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$t_{total} = v_prev_seg["Total time (s)"]+t_{seg}$$ Python Logic:
v_prev_seg["Total time (s)"]+v["Time per segment (s)"]Live Evaluation: [ROUTE: GRID] 0.0167+0.0167 = 0.0333
|
| ☰ | \( W_g \) | Work Done by Gravity (J) | 26,234.74 |
View Help GuidePurpose: Work done calculated per segment
Logic: Multiplies the parallel gravitational force (Fp) by the distance travelled (W = F x d).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$W_g = F_p \times \Delta d_{TAR}$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]*v["TAR Difference (m)"]Live Evaluation: [ROUTE: GRID] 218622.8571*0.1200 = 26,234.7429
|
| ☰ | \( E_{trans} \) | DLLS Energy transferred to GMEG (J) | 0.00 |
View Help GuidePurpose: DLLS arc rotation energy transfer with efficiency factor
Logic: Applies the DLLS mechanical transfer efficiency coefficient to the total work done by the DLLS gears.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{trans} = W_{DLLS} \times \eta_{DLLS}$$ Python Logic:
v["Work Done by DLLS Joule per Segment (J)"]*v["Energy Transfer Efficiency DLLS (%)"]Live Evaluation: [ROUTE: GRID] 0.0000*0.9000 = 0.0000
|
| ☰ | \( E_{loss,fric} \) | Energy Lost to Friction (J) | 1,311.74 |
View Help GuidePurpose: Accounting for losses in gravity enabler train
Logic: abs(v["Work Done by Gravity (J)"] * v["Friction factor (%)"])
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{loss,fric} = ABS(W_g \times \mu)$$ Python Logic:
abs(v["Work Done by Gravity (J)"] * v["Friction factor (%)"])Live Evaluation: [ROUTE: GRID] abs(26234.7429 * 0.0500) = 1,311.7371
|
| ☰ | \( E_{req} \) | GMEG Operational Requirement (J) | 20,208.04 |
View Help GuidePurpose: Power needed to the GMEG generator per segment
Logic: Slices the total kW generator load into a micro-Joule requirement per-enabler, per-segment.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{req} = (P_{\text{out}} \times 1000) \times (1/(\theta_{\text{tilt}} \times 2)/N_{\text{enablers}})$$ Python Logic:
(v["Magnetic Generator Power Output (kW)"]*1000)*(1/(v["Angle tilt (degrees)"]*2)/v["Number of Gravity Enablers"])Live Evaluation: [ROUTE: GRID] (8487.3763*1000)*(1/(30.0000*2)/7.0000) = 20,208.0389
|
| ☰ | \( E_{bal} \) | Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Total output considering all inputs and outputs
Logic: Subtracts the friction and generator loads from the combined energy inputs.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal} = W_g+E_{trans}-E_{loss,fric}-E_{req}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]-v["GMEG Operational Requirement (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371-20208.0389 = 4,714.9668
|
| ☰ | \( E_k \) | KE for Train (J) | 4,714.97 |
View Help GuidePurpose: Determing kinetic energy availability
Logic: Inherits the net energy balance to model the kinetic state of the enabler train.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_k = E_{bal}$$ Python Logic:
v["Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668 = 4,714.9668
|
| ☰ | \( E_{k,op} \) | Total KE for Train at Operational Speed (J) | 4,714.97 |
View Help GuidePurpose: Total kinetic energy of the gravity enabler train
Logic: Adds the new Energy Balance to the Total KE inherited from the previous segment (S1).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{k,op} = E_{bal}$$ Python Logic:
v["Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668 = 4,714.9668
|
| ☰ | \( E_{bal,start} \) | Gravitational Startup State Energy Balance (J) | 24,923.01 |
View Help GuidePurpose: System start up with the DLLS powered externally
Logic: Calculates the energy balance excluding the GMEG Operational Requirement to show how the system accelerates from a dead stop.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal,start} = W_g+E_{trans}-E_{loss,fric}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371 = 24,923.0057
|
| ☰ | \( \Sigma E_{bal,start} \) | Gravitational Startup State Accumulative Energy Balance (J) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train
Logic: Sums the sequential Startup balances for this segment and adds them to the previous segment's total.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$\Sigma E_{bal,start} = E_{bal,start}+v_pre\Sigma E_{bal,start}$$ Python Logic:
v["Gravitational Startup State Energy Balance (J)"]+v_prev["Gravitational Startup State Accumulative Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ☰ | \( v_{start} \) | Gravitational Startup State Velocity (m/s) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Startup Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$v_{start} = \sqrt{2 \times \Sigma E_{bal,start}/M_{\text{total}})$$ Python Logic:
SQRT(2*v["Gravitational Startup State Accumulative Energy Balance (J)"]/v["TOTAL WEIGHT (KG)"])Live Evaluation: [ROUTE: GRID] SQRT(2*0.0000/312000.0000) = 0.0000
|
| ☰ | \( E_{bal,op} \) | Operational State Steady Velocity Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Total output considering all inputs and outputs at normal operational speed
Logic: Identical to the main Energy Balance formula; proves long-term sustainability under full electrical load.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal,op} = W_g+E_{trans}-E_{loss,fric}-E_{req}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]-v["GMEG Operational Requirement (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371-20208.0389 = 4,714.9668
|
| ☰ | \( \Sigma E_{bal,op} \) | Operational State Steady Velocity Accumulative Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train
Logic: Sums the sequential Operational State balances over time.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$\Sigma E_{bal,op} = E_{bal,op}$$ Python Logic:
v["Operational State Steady Velocity Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668 = 4,714.9668
|
| ☰ | \( v_{op} \) | Operational State Steady Velocity (m/s) | 0.17 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Operational Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$v_{op} = \sqrt{2 \times \Sigma E_{bal,op}/M_{\text{total}})$$ Python Logic:
SQRT(2*v["Operational State Steady Velocity Accumulative Energy Balance (J)"]/v["TOTAL WEIGHT (KG)"])Live Evaluation: [ROUTE: GRID] SQRT(2*4714.9668/312000.0000) = 0.1739
|
| ☰ | \( E_{in,supp} \) | Additional Support System Input (J) | 0.00 |
View Help GuidePurpose: Determining impact on the system when adding additional energy through a start up motor
Logic: Translates the available excess support kW into Joules per segment.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( E_{bal,supp} \) | Additional Support System Energy Balance (J) | 0.00 |
View Help GuidePurpose: Total output considering all inputs and outputs
Logic: Adds the auxiliary support energy to the standard Operational Energy Balance.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( \Sigma E_{bal,supp} \) | Additional Support System Accumulative Energy Balance (J) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train with the additional start up energy
Logic: Sums the auxiliary inputs and balances across the time series.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( v_{supp} \) | Additional Support System Velocity (m/s) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Support Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ▼ 5. ENERGY BALANCE BLUEPRINTS - S2 E2 Cascade | ||||
| ☰ | \( t_{seg} \) | Time per segment (s) | 0.02 |
View Help GuidePurpose: Time period needed for energy balance calculations
Logic: UNUSED (Inherited from Enabler 1 to ensure a locked time step for the whole train).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$t_{seg} = v_pret_{seg}$$ Python Logic:
v_prev["Time per segment (s)"]Live Evaluation: [ROUTE: GRID] 0.0167 = 0.0167
|
| ☰ | \( t_{total} \) | Total time (s) | 0.03 |
View Help GuidePurpose: Accumlituve time per segment for timelime progression
Logic: Adds the new Time per segment to the Total time inherited from the previous segment (S1).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$t_{total} = v_pret_{total}$$ Python Logic:
v_prev["Total time (s)"]Live Evaluation: [ROUTE: GRID] 0.0333 = 0.0333
|
| ☰ | \( W_g \) | Work Done by Gravity (J) | 26,234.74 |
View Help GuidePurpose: Work done calculated per segment
Logic: Multiplies the parallel gravitational force (Fp) by the distance travelled (W = F x d).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$W_g = F_p \times \Delta d_{TAR}$$ Python Logic:
v["GMEG Parallel Force Fp (N)"]*v["TAR Difference (m)"]Live Evaluation: [ROUTE: GRID] 218622.8571*0.1200 = 26,234.7429
|
| ☰ | \( E_{trans} \) | DLLS Energy transferred to GMEG (J) | 0.00 |
View Help GuidePurpose: DLLS arc rotation energy transfer with efficiency factor
Logic: Applies the DLLS mechanical transfer efficiency coefficient to the total work done by the DLLS gears acting on Enabler 2.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{trans} = W_{DLLS} \times \eta_{DLLS}$$ Python Logic:
v["Work Done by DLLS Joule per Segment (J)"]*v["Energy Transfer Efficiency DLLS (%)"]Live Evaluation: [ROUTE: GRID] 0.0000*0.9000 = 0.0000
|
| ☰ | \( E_{loss,fric} \) | Energy Lost to Friction (J) | 1,311.74 |
View Help GuidePurpose: Accounting for losses in gravity enabler train
Logic: abs(v["Work Done by Gravity (J)"] * v["Friction factor (%)"])
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{loss,fric} = ABS(W_g \times \mu)$$ Python Logic:
abs(v["Work Done by Gravity (J)"] * v["Friction factor (%)"])Live Evaluation: [ROUTE: GRID] abs(26234.7429 * 0.0500) = 1,311.7371
|
| ☰ | \( E_{req} \) | GMEG Operational Requirement (J) | 20,208.04 |
View Help GuidePurpose: Power needed to the GMEG generator per segment
Logic: Slices the total kW generator load into a micro-Joule requirement per-enabler, per-segment.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{req} = (P_{\text{out}} \times 1000) \times (1/(\theta_{\text{tilt}} \times 2)/N_{\text{enablers}})$$ Python Logic:
(v["Magnetic Generator Power Output (kW)"]*1000)*(1/(v["Angle tilt (degrees)"]*2)/v["Number of Gravity Enablers"])Live Evaluation: [ROUTE: GRID] (8487.3763*1000)*(1/(30.0000*2)/7.0000) = 20,208.0389
|
| ☰ | \( E_{bal} \) | Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Total output considering all inputs and outputs
Logic: Subtracts the friction and generator loads from the combined energy inputs (Gravity Work + DLLS Energy).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal} = W_g+E_{trans}-E_{loss,fric}-E_{req}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]-v["GMEG Operational Requirement (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371-20208.0389 = 4,714.9668
|
| ☰ | \( E_k \) | KE for Train (J) | 4,714.97 |
View Help GuidePurpose: Determing kinetic energy availability
Logic: Inherits the net energy balance to model the kinetic state of the enabler train.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_k = E_{bal}$$ Python Logic:
v["Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668 = 4,714.9668
|
| ☰ | \( E_{k,op} \) | Total KE for Train at Operational Speed (J) | 9,429.93 |
View Help GuidePurpose: Total kinetic energy of the gravity enabler train
Logic: The Energy Cascade: Adds the new Energy Balance to Enabler 2's Total KE inherited from the previous segment (S1).
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{k,op} = E_k+v_preE_{k,op}$$ Python Logic:
v["KE for Train (J)"]+v_prev["Total KE for Train at Operational Speed (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668+4714.9668 = 9,429.9336
|
| ☰ | \( E_{bal,start} \) | Gravitational Startup State Energy Balance (J) | 24,923.01 |
View Help GuidePurpose: System start up with the DLLS powered externally
Logic: Calculates the energy balance excluding the GMEG Operational Requirement to show how the system accelerates from a dead stop.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal,start} = W_g+E_{trans}-E_{loss,fric}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371 = 24,923.0057
|
| ☰ | \( \Sigma E_{bal,start} \) | Gravitational Startup State Accumulative Energy Balance (J) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train
Logic: Sums the sequential Startup balances for this segment and adds them to the previous segment's total.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$\Sigma E_{bal,start} = E_{bal,start}+v_pre\Sigma E_{bal,start}$$ Python Logic:
v["Gravitational Startup State Energy Balance (J)"]+v_prev["Gravitational Startup State Accumulative Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 0.0000+0.0000 = 0.0000
|
| ☰ | \( v_{start} \) | Gravitational Startup State Velocity (m/s) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Startup Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$v_{start} = \sqrt{2 \times \Sigma E_{bal,start}/M_{\text{total}})$$ Python Logic:
SQRT(2 *v["Gravitational Startup State Accumulative Energy Balance (J)"]/v["TOTAL WEIGHT (KG)"])Live Evaluation: [ROUTE: GRID] SQRT(2 *0.0000/312000.0000) = 0.0000
|
| ☰ | \( E_{bal,op} \) | Operational State Steady Velocity Energy Balance (J) | 4,714.97 |
View Help GuidePurpose: Total output considering all inputs and outputs at normal operational speed
Logic: Identical to the main Energy Balance formula; proves long-term sustainability under full electrical load.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$E_{bal,op} = W_g+E_{trans}-E_{loss,fric}-E_{req}$$ Python Logic:
v["Work Done by Gravity (J)"]+v["DLLS Energy transferred to GMEG (J)"]-v["Energy Lost to Friction (J)"]-v["GMEG Operational Requirement (J)"]Live Evaluation: [ROUTE: GRID] 26234.7429+0.0000-1311.7371-20208.0389 = 4,714.9668
|
| ☰ | \( \Sigma E_{bal,op} \) | Operational State Steady Velocity Accumulative Energy Balance (J) | 9,429.93 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train
Logic: Sums the sequential Operational State balances over time.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$\Sigma E_{bal,op} = E_{bal,op}+v_pre\Sigma E_{bal,op}$$ Python Logic:
v["Operational State Steady Velocity Energy Balance (J)"]+v_prev["Operational State Steady Velocity Accumulative Energy Balance (J)"]Live Evaluation: [ROUTE: GRID] 4714.9668+4714.9668 = 9,429.9336
|
| ☰ | \( v_{op} \) | Operational State Steady Velocity (m/s) | 0.25 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: UNUSED
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
$$v_{op} = \sqrt{2 \times \Sigma E_{bal,op}/M_{\text{total}})$$ Python Logic:
SQRT(2*v["Operational State Steady Velocity Accumulative Energy Balance (J)"]/v["TOTAL WEIGHT (KG)"])Live Evaluation: [ROUTE: GRID] SQRT(2*9429.9336/312000.0000) = 0.2459
|
| ☰ | \( E_{in,supp} \) | Additional Support System Input (J) | 0.00 |
View Help GuidePurpose: Determining impact on the system when adding additional energy through a start up motor
Logic: Translates the available excess support kW into Joules per segment, reaching up to pull the time value from Enabler 1 of this segment (N22) to maintain a perfectly synced simulation frame.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( E_{bal,supp} \) | Additional Support System Energy Balance (J) | 0.00 |
View Help GuidePurpose: Total output considering all inputs and outputs
Logic: Adds the auxiliary support energy to the standard Operational Energy Balance.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( \Sigma E_{bal,supp} \) | Additional Support System Accumulative Energy Balance (J) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the energy of the enabler train with the additional start up energy
Logic: Sums the auxiliary inputs and balances across the time series.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ☰ | \( v_{supp} \) | Additional Support System Velocity (m/s) | 0.00 |
View Help GuidePurpose: Expected increase or decrease in the speed of the enabler train
Logic: Calculates velocity using v = SQRT(2 * KE / Total Mass), based on the Accumulative Support Energy.
Type: Calculated (Math Output)
Render on Grids: Energy Balance
Mathematical Formula:
N/A Python Logic:
N/ALive Evaluation: N/A (Input Variable)
|
| ▼ 6. OPERATIONAL TOTALS | ||||
| ☰ | \( \Sigma \tau_{\text{seg, gmeg}} \) | Segment Total GMEG Output (Nm) | 2,928,277.41 |
View Help GuidePurpose: The segment total mechanical potential
Logic: This allows for an aggregation function across the operation
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$\Sigma \tau_{\text{seg, gmeg}} = GET_SEGMENT_FINAL("Rotational Torque", "Total GMEG Output per Segment (Nm)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Rotational Torque", "Total GMEG Output per Segment (Nm)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Rotational Torque", "Total GMEG Output per Segment (Nm)", 1.0000) = 2,928,277.4117
|
| ☰ | \( W_{\text{seg, work}} \) | Segment Work Done by DLLS Joule (J) | 0.00 |
View Help GuidePurpose: The segment total of work done to perform a Track Arc Rotation
Logic: This allows for an aggregation function across the operation to size the DLLS
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$W_{\text{seg, work}} = GET_SEGMENT_FINAL("Rotational Torque", "Total Work Done by DLLS Joule per Segment (J)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Rotational Torque", "Total Work Done by DLLS Joule per Segment (J)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Rotational Torque", "Total Work Done by DLLS Joule per Segment (J)", 1.0000) = 0.0000
|
| ☰ | \( \tau_{\text{seg, train}} \) | Segment Enabler train Absolute Gear System Torque (Nm) | 0.00 |
View Help GuidePurpose: The segment total the operational torque to drive a Track Arc Rotation
Logic: This allows for an aggregation function across the operation to size the DLLS
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$\tau_{\text{seg, train}} = GET_SEGMENT_FINAL("Rotational Torque", "Enabler train Absolute Gear System Torque (Nm)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Rotational Torque", "Enabler train Absolute Gear System Torque (Nm)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Rotational Torque", "Enabler train Absolute Gear System Torque (Nm)", 1.0000) = 0.0000
|
| ☰ | \( \Sigma E_{\text{seg, gpe}} \) | Segment Total Gravitational Potential Energy GPE of all Enablers (J) | 459,149.66 |
View Help GuidePurpose: The segment total GPE of the enabler train
Logic: This allows for an aggregation function across the operation to compare the mgh model in comparison to the Fp model
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$\Sigma E_{\text{seg, gpe}} = GET_SEGMENT_FINAL("Rotational Torque", "Total Gravitational Potential Energy GPE of all Enablers (J)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Rotational Torque", "Total Gravitational Potential Energy GPE of all Enablers (J)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Rotational Torque", "Total Gravitational Potential Energy GPE of all Enablers (J)", 1.0000) = 459,149.6586
|
| ☰ | \( I_{\text{seg, train}} \) | Segment Enabler train Moment of inertia (kg.m2) | 0.00 |
View Help GuidePurpose: The segment total inertia of the enabler train
Logic: This allows for an aggregation function across the operation to size the DLLS
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$I_{\text{seg, train}} = GET_SEGMENT_FINAL("Rotational Torque", "Enabler train Moment of inertia (kg.m2)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Rotational Torque", "Enabler train Moment of inertia (kg.m2)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Rotational Torque", "Enabler train Moment of inertia (kg.m2)", 1.0000) = 0.0000
|
| ☰ | \( \Sigma E_{\text{seg, ke}} \) | Segment Total KE for Train at Operational Speed (J) | 55,290.28 |
View Help GuidePurpose: The segment total kinetic energy of the enabler train
Logic: This allows for an aggregation function across the operation
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$\Sigma E_{\text{seg, ke}} = GET_SEGMENT_FINAL("Energy Balance", "Total KE for Train at Operational Speed (J)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Energy Balance", "Total KE for Train at Operational Speed (J)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Energy Balance", "Total KE for Train at Operational Speed (J)", 1.0000) = 55,290.2846
|
| ☰ | \( v_{\text{seg, start}} \) | Segment Gravitational Startup State Velocity (m/s) | 0.00 |
View Help GuidePurpose: The segment total velocity
Logic: This allows for an aggregation function across the operation to understand speed increase during operation and to size the KETS
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$v_{\text{seg, start}} = GET_SEGMENT_FINAL("Energy Balance", "Gravitational Startup State Velocity (m/s)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Energy Balance", "Gravitational Startup State Velocity (m/s)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Energy Balance", "Gravitational Startup State Velocity (m/s)", 1.0000) = 0.0000
|
| ☰ | \( \eta_{\text{seg, op}} \) | Segment Operational State Steady Velocity (m/s) | 0.60 |
View Help GuidePurpose: The segment total velocity during normal operation
Logic: This allows for an aggregation function across the operation to size the KETS
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$\eta_{\text{seg, op}} = GET_SEGMENT_FINAL("Energy Balance", "Operational State Steady Velocity (m/s)",N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Energy Balance", "Operational State Steady Velocity (m/s)",v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Energy Balance", "Operational State Steady Velocity (m/s)",1.0000) = 0.5953
|
| ☰ | \( \Sigma E_{\text{seg, op}} \) | Segment Operational State Steady Velocity Accumulative Energy Balance (J) | 55,290.28 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$\Sigma E_{\text{seg, op}} = GET_SEGMENT_FINAL("Energy Balance", "Operational State Steady Velocity Accumulative Energy Balance (J)",N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Energy Balance", "Operational State Steady Velocity Accumulative Energy Balance (J)",v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Energy Balance", "Operational State Steady Velocity Accumulative Energy Balance (J)",1.0000) = 55,290.2846
|
| ☰ | \( X_{\text{seg, min}} \) | Segment Min Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$GET_SEGMENT_FINAL("Rotational Torque", "Min Lever Arm (m)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Rotational Torque", "Min Lever Arm (m)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Rotational Torque", "Min Lever Arm (m)", 1.0000) = 0.0000
|
| ☰ | \( X_{\text{seg, max}} \) | Segment Max Lever Arm (m) | 0.00 |
View Help GuidePurpose: None
Logic: None
Type: Calculated (Math Output)
Render on Grids: Operational Totals
Mathematical Formula:
$$GET_SEGMENT_FINAL("Rotational Torque", "Max Lever Arm (m)", N_{seg})$$ Python Logic:
GET_SEGMENT_FINAL("Rotational Torque", "Max Lever Arm (m)", v["Segment Number"])Live Evaluation: [ROUTE: GRID] GET_SEGMENT_FINAL("Rotational Torque", "Max Lever Arm (m)", 1.0000) = 0.0000
|