Difference between revisions of "AXY:Element Synchronization/Design"
(Created page with "Design document") |
m (Miborich moved page Axystems:Element Synchronization/Design to AXY:Element Synchronization/Design: internal document) |
||
(20 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | Design | + | = Element Synchronization Design = |
+ | |||
+ | Common algorithms to both '''SyncStart''' and '''SyncAll''': | ||
+ | |||
+ | |||
+ | <center> | ||
+ | <gallery widths= 400px heights= 450px> | ||
+ | Image:AXY;SyncStartMotionObject.jpg|''SyncStart Object model'' | ||
+ | Image:AXY;SyncStartClassModel.jpg|''SyncStart Class model'' | ||
+ | </gallery> | ||
+ | </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 | |
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? |