Editor
Visualization
mcdp { # We implent XYZ by having a XY mechanism to which we attach a prismatic joint implements `XYZInterface XY = instance `XY_concrete workspace provided by XY ≽ provided workspace precision provided by XY ≽ provided precision velocity provided by XY ≽ provided velocity acceleration provided by XY ≽ provided acceleration force provided by XY ≽ provided force Z = instance `Joint payload_mass provided by Z ≽ provided payload_mass velocity provided by Z ≽ provided velocity acceleration provided by Z ≽ provided acceleration precision provided by Z ≽ provided precision force provided by Z ≽ provided force workspace provided by Z ≽ provided workspace # Now XY must carry both Z and the payload total_payload_mass = mass required by Z + provided payload_mass payload_mass provided by XY ≽ total_payload_mass required electric_power ≽ āˆ‘ electric_power required by * required mass ≽ āˆ‘ mass required by * required budget ≽ āˆ‘ budget required by * }
Internal representation details
CompositeNDP                                                                                                    
│    provides   workspace      {0.4 m}    │ requires   electric_power   {0.2 W}                                 
│    provides   payload_mass   {200 g}    │ requires   mass             {200 g}                                 
│    provides   precision      {2 1/mm}   │ requires   budget           {20 $}                                  
│    provides   velocity       {4 mm/s}   │                                                                     
│    provides   acceleration   {10 mm/s²} │                                                                     
│    provides   force          {0.001 N}  │                                                                     
│  15 nodes, 23 edges                                                                                           
│   connected rec: āœ“                                                                                            
│  budget required by XY         ≤ XY_budget provided by _sum3           equiv (always satisfied)               
│  electric_power required by XY ≤ XY_electric_power provided by _sum1   equiv (always satisfied)               
│  mass required by XY           ≤ XY_mass provided by _sum2             equiv (always satisfied)               
│  budget required by Z          ≤ Z_budget provided by _sum3            equiv (always satisfied)               
│  electric_power required by Z  ≤ Z_electric_power provided by _sum1    equiv (always satisfied)               
│  mass required by Z            ≤ mass provided by _sum                 equiv (always satisfied)               
│  mass required by Z            ≤ Z_mass provided by _sum2              equiv (always satisfied)               
│  provided acceleration         ≤ acceleration provided by XY           equiv (always satisfied)               
│  provided acceleration         ≤ acceleration provided by Z            diff  (always satisfied)               
│  provided force                ≤ force provided by XY                  equiv (always satisfied)               
│  provided force                ≤ force provided by Z                   diff  (always satisfied)               
│  provided payload_mass         ≤ payload_mass provided by Z            diff  (always satisfied)               
│  provided payload_mass         ≤ payload_mass provided by _sum         equiv (always satisfied)               
│  provided precision            ≤ precision provided by XY              equiv (always satisfied)               
│  provided precision            ≤ precision provided by Z               diff  (always satisfied)               
│  provided velocity             ≤ velocity provided by XY               equiv (always satisfied)               
│  provided velocity             ≤ velocity provided by Z                diff  (always satisfied)               
│  provided workspace            ≤ workspace provided by XY              equiv (always satisfied)               
│  provided workspace            ≤ workspace provided by Z               diff  (always satisfied)               
│  _result required by _sum      ≤ payload_mass provided by XY           equiv (always satisfied)               
│  _result2 required by _sum1    ≤ required electric_power               equiv (always satisfied)               
│  _result3 required by _sum2    ≤ required mass                         equiv (always satisfied)               
│  _result4 required by _sum3    ≤ required budget                       equiv (always satisfied)               
ā”œ    XY: CompositeNDP                                                                                           
│        │    provides   workspace      {0.4 m}    │ requires   electric_power   {0.2 W}                        
│        │    provides   payload_mass   {200 g}    │ requires   mass             {200 g}                        
│        │    provides   precision      {2 1/mm}   │ requires   budget           {20 $}                         
│        │    provides   velocity       {4 mm/s}   │                                                            
│        │    provides   acceleration   {10 mm/s²} │                                                            
│        │    provides   force          {0.001 N}  │                                                            
│        │  19 nodes, 10 edges                                                                                  
│        │   connected rec: āœ“                                                                                   
│        │  _c required by _c          ≤ required electric_power             equiv (always satisfied)           
│        │  _c2 required by _c2        ≤ required mass                       equiv (always satisfied)           
│        │  _c3 required by _c3        ≤ required budget                     equiv (always satisfied)           
│        │  _l required by _conversion ≤ _l provided by _lim                 equiv (always satisfied)           
│        │  provided acceleration      ≤ _l4 provided by _lim4               equiv (always satisfied)           
│        │  provided force             ≤ _l5 provided by _lim5               equiv (always satisfied)           
│        │  provided payload_mass      ≤ _l1 provided by _lim1               equiv (always satisfied)           
│        │  provided precision         ≤ _l2 provided by _lim2               equiv id                           
│        │  provided velocity          ≤ _l3 provided by _lim3               equiv (always satisfied)           
│        │  provided workspace         ≤ workspace provided by _conversion   equiv (always satisfied)           
│        ā”œ          _c: SimpleWrap                                                                              
│        │              │  - │ requires   _c   {0.2 W}                                                          
│        │              ā”” DP_Constant šŸ™  ⇸  {0.2 W}                                                             
│        │                 0.2 W ≤ š’“                                                                            
│        ā”œ         _c2: SimpleWrap                                                                              
│        │              │  - │ requires   _c2   {200 g}                                                         
│        │              ā”” DP_Constant šŸ™  ⇸  {200 g}                                                             
│        │                 200 g ≤ š’“                                                                            
│        ā”œ         _c3: SimpleWrap                                                                              
│        │              │  - │ requires   _c3   {20 $}                                                          
│        │              ā”” DP_Constant šŸ™  ⇸  {20 $}                                                              
│        │                 20 $ ≤ š’“                                                                             
│        ā”œ _conversion: SimpleWrap                                                                              
│        │              │  provides   workspace   {0.4 m} │ requires   _l   {40 cm}                             
│        │              ā”” DP_True {0.4 m}  ⇸  {40 cm} val = * > ()                                              
│        │                 true                                                                                 
│        ā”œ        _lim: SimpleWrap                                                                              
│        │              │  provides   _l   {40 cm} │ -                                                          
│        │              ā”” DP_Limit {40 cm}  ⇸  šŸ™  > NVU:40 cm                                                   
│        │                 š’‡ ≤ 40 cm                                                                            
│        ā”œ       _lim1: SimpleWrap                                                                              
│        │              │  provides   _l1   {200 g} │ -                                                         
│        │              ā”” DP_Limit {200 g}  ⇸  šŸ™  > NVU:200 g                                                   
│        │                 š’‡ ≤ 200 g                                                                            
│        ā”œ       _lim2: SimpleWrap                                                                              
│        │              │  provides   _l2   {2 1/mm} │ -                                                        
│        │              ā”” DP_Limit {2 1/mm}  ⇸  šŸ™  > NVU:2 1/mm                                                 
│        │                 š’‡ ≤ 2 1/mm                                                                           
│        ā”œ       _lim3: SimpleWrap                                                                              
│        │              │  provides   _l3   {4 mm/s} │ -                                                        
│        │              ā”” DP_Limit {4 mm/s}  ⇸  šŸ™  > NVU:4 mm/s                                                 
│        │                 š’‡ ≤ 4 mm/s                                                                           
│        ā”œ       _lim4: SimpleWrap                                                                              
│        │              │  provides   _l4   {10 mm/s²} │ -                                                      
│        │              ā”” DP_Limit {10 mm/s²}  ⇸  šŸ™  > NVU:10 mm/s²                                             
│        │                 š’‡ ≤ 10 mm/s²                                                                         
│        ā””       _lim5: SimpleWrap                                                                              
│                       │  provides   _l5   {0.001 N} │ -                                                       
│                       ā”” DP_Limit {0.001 N}  ⇸  šŸ™  > NVU:0.001 N                                               
│                          š’‡ ≤ 0.001 N                                                                          
ā”œ     Z: CompositeNDP                                                                                           
│        │    provides   workspace      {āˆž m}     │ requires   electric_power   {0 W}                           
│        │    provides   payload_mass   {āˆž g}     │ requires   mass             {0 g}                           
│        │    provides   precision      {āˆž 1/mm}  │ requires   budget           {0 $}                           
│        │    provides   velocity       {āˆž mm/s}  │                                                             
│        │    provides   acceleration   {āˆž mm/s²} │                                                             
│        │    provides   force          {āˆž N}     │                                                             
│        │  18 nodes, 9 edges                                                                                   
│        │   connected rec: āœ“                                                                                   
│        │  mass required by _constant            ≤ required mass                      equiv (always satisfied) 
│        │  electric_power required by _constant1 ≤ required electric_power            equiv (always satisfied) 
│        │  budget required by _constant2         ≤ required budget                    equiv (always satisfied) 
│        │  provided acceleration                 ≤ acceleration provided by _limit2   equiv (always satisfied) 
│        │  provided force                        ≤ force provided by _limit1          equiv (always satisfied) 
│        │  provided payload_mass                 ≤ payload_mass provided by _limit    equiv (always satisfied) 
│        │  provided precision                    ≤ precision provided by _limit4      equiv (always satisfied) 
│        │  provided velocity                     ≤ velocity provided by _limit5       equiv (always satisfied) 
│        │  provided workspace                    ≤ workspace provided by _limit3      equiv (always satisfied) 
│        ā”œ  _constant: SimpleWrap                                                                               
│        │             │  - │ requires   mass   {0 g}                                                           
│        │             ā”” DP_Constant šŸ™  ⇸  {0 g}                                                                
│        │                0 g ≤ š’“                                                                               
│        ā”œ _constant1: SimpleWrap                                                                               
│        │             │  - │ requires   electric_power   {0 W}                                                 
│        │             ā”” DP_Constant šŸ™  ⇸  {0 W}                                                                
│        │                0 W ≤ š’“                                                                               
│        ā”œ _constant2: SimpleWrap                                                                               
│        │             │  - │ requires   budget   {0 $}                                                         
│        │             ā”” DP_Constant šŸ™  ⇸  {0 $}                                                                
│        │                0 $ ≤ š’“                                                                               
│        ā”œ     _limit: SimpleWrap                                                                               
│        │             │  provides   payload_mass   {āˆž g} │ -                                                   
│        │             ā”” DP_Limit {āˆž g}  ⇸  šŸ™  > NVU:āˆž g                                                        
│        │                š’‡ ≤ āˆž g                                                                               
│        ā”œ    _limit1: SimpleWrap                                                                               
│        │             │  provides   force   {āˆž N} │ -                                                          
│        │             ā”” DP_Limit {āˆž N}  ⇸  šŸ™  > NVU:āˆž N                                                        
│        │                š’‡ ≤ āˆž N                                                                               
│        ā”œ    _limit2: SimpleWrap                                                                               
│        │             │  provides   acceleration   {āˆž mm/s²} │ -                                               
│        │             ā”” DP_Limit {āˆž mm/s²}  ⇸  šŸ™  > NVU:āˆž mm/s²                                                
│        │                š’‡ ≤ āˆž mm/s²                                                                           
│        ā”œ    _limit3: SimpleWrap                                                                               
│        │             │  provides   workspace   {āˆž m} │ -                                                      
│        │             ā”” DP_Limit {āˆž m}  ⇸  šŸ™  > NVU:āˆž m                                                        
│        │                š’‡ ≤ āˆž m                                                                               
│        ā”œ    _limit4: SimpleWrap                                                                               
│        │             │  provides   precision   {āˆž 1/mm} │ -                                                   
│        │             ā”” DP_Limit {āˆž 1/mm}  ⇸  šŸ™  > NVU:āˆž 1/mm                                                  
│        │                š’‡ ≤ āˆž 1/mm                                                                            
│        ā””    _limit5: SimpleWrap                                                                               
│                      │  provides   velocity   {āˆž mm/s} │ -                                                    
│                      ā”” DP_Limit {āˆž mm/s}  ⇸  šŸ™  > NVU:āˆž mm/s                                                  
│                         š’‡ ≤ āˆž mm/s                                                                            
ā”œ  _sum: SimpleWrap                                                                                             
│        │  provides   mass           {0 g}   │ requires   _result   {200 g}                                    
│        │  provides   payload_mass   {200 g} │                                                                 
│        ā”” DP_True {⟨0,200⟩ ⟨g,g⟩}  ⇸  {200 g} val = * > ()                                                     
│           true                                                                                                
ā”œ _sum1: SimpleWrap                                                                                             
│        │  provides   XY_electric_power   {0.2 W} │ requires   _result2   {0.2 W}                              
│        │  provides   Z_electric_power    {0 W}   │                                                            
│        ā”” DP_True {⟨0.2,0⟩ ⟨W,W⟩}  ⇸  {0.2 W} val = * > ()                                                     
│           true                                                                                                
ā”œ _sum2: SimpleWrap                                                                                             
│        │  provides   XY_mass   {200 g} │ requires   _result3   {200 g}                                        
│        │  provides   Z_mass    {0 g}   │                                                                      
│        ā”” DP_True {⟨200,0⟩ ⟨g,g⟩}  ⇸  {200 g} val = * > ()                                                     
│           true                                                                                                
ā”” _sum3: SimpleWrap                                                                                             
         │  provides   XY_budget   {20 $} │ requires   _result4   {20 $}                                        
         │  provides   Z_budget    {0 $}  │                                                                     
         ā”” DP_True {⟨20,0⟩ ⟨$,$⟩}  ⇸  {20 $} val = * > ()                                                       
            true                                                                                                

hel1-z7-prod-editor-1 Restart page