Difference between revisions of "AXY:Element Synchronization/Design"

From SoftMC-Wiki
Jump to: navigation, search
 
(19 intermediate revisions by 2 users not shown)
Line 10: Line 10:
 
</gallery>
 
</gallery>
 
</center>
 
</center>
 +
 +
==Pre-Calculation==
 +
 +
Is done in MotionManager task, initiated by message sent from SyncStart/All commands:
 +
 +
In case of SyncStart we sperately execute MotCalc on every element from the '''sync-list''': (el<sub>1</sub> , el<sub>2</sub> , el<sub>3</sub> , ... el<sub>n</sub> ):
 +
 +
<pre>
 +
FOR element FROM sync-list
 +
  element->MotCalc()
 +
NEXT
 +
</pre>
 +
 +
In case of SyncAll it is little bit more complicated, every element is pre-calculated in order to estimate its own max profile values:
 +
 +
<pre>
 +
FOR element FROM sync-list
 +
element->MotCalc() ==> Li , Vi , Ai , Di , Jai ,  Jdi
 +
NEXT
 +
</pre>
 +
And then generate a master profile with the following parameters:
 +
 +
=== Master Profile ===
 +
 +
The master profile data-structure will be copied to the profile-data-structure of all other elements. Master profile:
 +
 +
<math>L</math> , <math>min(V_i \cdot \frac{L_i} {L})</math> , <math>min(A_i \cdot \frac{L_i} {L})</math> , <math>min(D_i \cdot \frac{L_i} {L})</math> , <math>min(Ja_i \cdot \frac{L_i} {L})</math> , <math>min(Jd_i \cdot \frac{L_i} {L})</math>
 +
 +
 +
where <math>L = \sqrt{\sum L_i ^2}</math>
 +
 +
The master profile data-structure will be copied to the profile-data-structure of all other elements.
 +
 +
The complete system of the sync-list motion profiles will be executed together just be scaling each of them by the factor of: <math>\frac{L_i}{\sqrt{\sum L_i ^2}}</math>
 +
 +
<math>TShort = min(TShort _i)</math><br/>
 +
 +
<math>TAccMin = max(TAccMin_i)</math><br/>
 +
 +
<math>TDecMin  = max(TDecMin_i)</math>
 +
 +
{{Note| The global profile type is defined according to the longest (in time) movement}}
 +
 +
{{Note| Stopping profile continues the global profile. So in case of Proceed command this profile will be used.}}
 +
 +
{{Note/Caution| What happens if profiler changes its type?}}
 +
 +
{{Note/Caution| What happens in case of extremely short motions?}}
 +
 +
<center>
 +
<gallery widths= 400px heights= 300px>
 +
Image:AXY;MasterProfiler.png|''Master profiler''
 +
Image:AXY;MasterProfilerAcceleration.png|''Master profiler accleration''
 +
</gallery>
 +
</center>
 +
 +
 +
 +
<gallery widths= 700px heights= 600px>
 +
Image:AXY;SyncAllPreclaculation.jpg|'' Sync All pre-calculation algorithm ""
 +
Image:AXY;SyncListProfiles.png|''Sync List profiles''
 +
</gallery>

Latest revision as of 13:07, 12 May 2014

Element Synchronization Design

Common algorithms to both SyncStart and SyncAll:


Pre-Calculation

Is done in MotionManager task, initiated by message sent from SyncStart/All commands:

In case of SyncStart we sperately execute MotCalc on every element from the sync-list: (el1 , el2 , el3 , ... eln ):

FOR element FROM sync-list
   element->MotCalc()
NEXT

In case of SyncAll it is little bit more complicated, every element is pre-calculated in order to estimate its own max profile values:

FOR element FROM sync-list
element->MotCalc() ==> Li , Vi , Ai , Di , Jai ,  Jdi
NEXT

And then generate a master profile with the following parameters:

Master Profile

The master profile data-structure will be copied to the profile-data-structure of all other elements. Master profile:

, , , , ,


where

The master profile data-structure will be copied to the profile-data-structure of all other elements.

The complete system of the sync-list motion profiles will be executed together just be scaling each of them by the factor of:



NOTE-Info.svgNOTE
The global profile type is defined according to the longest (in time) movement
NOTE-Info.svgNOTE
Stopping profile continues the global profile. So in case of Proceed command this profile will be used.
CAUTION.svgCAUTION
What happens if profiler changes its type?
CAUTION.svgCAUTION
What happens in case of extremely short motions?