Difference between revisions of "AXY:Element Synchronization/Design"
(→Pre-Calculation) |
m (Miborich moved page Axystems:Element Synchronization/Design to AXY:Element Synchronization/Design: internal document) |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 23: | Line 23: | ||
</pre> | </pre> | ||
− | In case of SyncAll it is little bit more complicated, every element is pre-calculated in order to estimate | + | 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> | <pre> | ||
Line 32: | Line 32: | ||
And then generate a master profile with the following parameters: | 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. | |
− | <math> | + | 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?}} | ||
− | <gallery> | + | <center> |
+ | <gallery widths= 400px heights= 300px> | ||
Image:AXY;MasterProfiler.png|''Master profiler'' | Image:AXY;MasterProfiler.png|''Master profiler'' | ||
Image:AXY;MasterProfilerAcceleration.png|''Master profiler accleration'' | Image:AXY;MasterProfilerAcceleration.png|''Master profiler accleration'' | ||
</gallery> | </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 | |
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. |
CAUTION | |
What happens if profiler changes its type? |
CAUTION | |
What happens in case of extremely short motions? |