| 345 | | This mechanism consists of 6 revolute joints, 1 prismatic joint and forms a |
| 346 | | kinematical loop. |
| 347 | | It has has one degree of freedom. In the next figure the default animation |
| 348 | | is shown. Note, that the axes of the revolute joints are represented by the |
| 349 | | red cylinders and that the axis of the prismatic joint is represented by the |
| 350 | | red box on the lower right side. |
| | 345 | This mechanism consists of 6 revolute joints, 1 prismatic joint and forms a |
| | 346 | kinematical loop. |
| | 347 | It has has one degree of freedom. In the next figure the default animation |
| | 348 | is shown. Note, that the axes of the revolute joints are represented by the |
| | 349 | red cylinders and that the axis of the prismatic joint is represented by the |
| | 350 | red box on the lower right side. |
| 356 | | Whenever loop structures occur, non-linear algebraic |
| 357 | | equations are present on \"position level\". It is then usually not possible by |
| 358 | | structural analysis to select states during translation (which is possible for |
| 359 | | non-loop structures). In the example above, Dymola detects a non-linear |
| 360 | | algebraic loop of 57 equations and reduces this to a system of 7 coupled |
| 361 | | algebraic equations. Note, that this is performed without using any |
| 362 | | \"cut-joints\" as it is usually done in multi-body programs, but by just |
| 363 | | appropriate symbolic equation manipulation. Via the dynamic dummy derivative |
| 364 | | method the generalized coordinates on position and velocity level from one of |
| 365 | | the 7 joints are dynamically selected as states during simulation. Whenever, |
| 366 | | these two states are no longer appropriate, states from one of the other |
| | 356 | Whenever loop structures occur, non-linear algebraic |
| | 357 | equations are present on \"position level\". It is then usually not possible by |
| | 358 | structural analysis to select states during translation (which is possible for |
| | 359 | non-loop structures). In the example above, Dymola detects a non-linear |
| | 360 | algebraic loop of 57 equations and reduces this to a system of 7 coupled |
| | 361 | algebraic equations. Note, that this is performed without using any |
| | 362 | \"cut-joints\" as it is usually done in multi-body programs, but by just |
| | 363 | appropriate symbolic equation manipulation. Via the dynamic dummy derivative |
| | 364 | method the generalized coordinates on position and velocity level from one of |
| | 365 | the 7 joints are dynamically selected as states during simulation. Whenever, |
| | 366 | these two states are no longer appropriate, states from one of the other |
| 370 | | The efficiency of loop structures can usually be |
| 371 | | enhanced, if states are statically fixed at translation time. For this |
| 372 | | mechanism, the generalized coordinates of joint j1 (i.e., the |
| 373 | | rotation angle of the revolute joint and its derivative) can always be used as |
| 374 | | states. This can be stated by setting parameter \"enforceStates = <b>true</b>\" |
| 375 | | in the \"Advanced\" menu of the desired joint. This flag sets the attribute |
| 376 | | stateSelect of the generalized coordinates of the coresponding joint to |
| 377 | | \"StateSelect.always\". When setting this flag to <b>true</b> for joint j1 in |
| 378 | | the four bar mechanism, Dymola detects a non-linear algebraic loop of 40 |
| 379 | | equations and reduces this to a system of 5 coupled non-linear algebraic |
| | 370 | The efficiency of loop structures can usually be |
| | 371 | enhanced, if states are statically fixed at translation time. For this |
| | 372 | mechanism, the generalized coordinates of joint j1 (i.e., the |
| | 373 | rotation angle of the revolute joint and its derivative) can always be used as |
| | 374 | states. This can be stated by setting parameter \"enforceStates = <b>true</b>\" |
| | 375 | in the \"Advanced\" menu of the desired joint. This flag sets the attribute |
| | 376 | stateSelect of the generalized coordinates of the coresponding joint to |
| | 377 | \"StateSelect.always\". When setting this flag to <b>true</b> for joint j1 in |
| | 378 | the four bar mechanism, Dymola detects a non-linear algebraic loop of 40 |
| | 379 | equations and reduces this to a system of 5 coupled non-linear algebraic |
| 414 | | In the next figure the animation of the engine is |
| 415 | | shown. Every cylinder consists essentially of 1 prismatic and 2 revolute |
| 416 | | joints that form a planar loop, since the axes of the two revolute joints are |
| 417 | | parallel to each other and the axis of the prismatic joint is orthogonal to |
| 418 | | the revolute joint axes. All 6 cylinders together form a coupled set of 6 |
| 419 | | loops that have together 1 degree of freedom. |
| | 414 | In the next figure the animation of the engine is |
| | 415 | shown. Every cylinder consists essentially of 1 prismatic and 2 revolute |
| | 416 | joints that form a planar loop, since the axes of the two revolute joints are |
| | 417 | parallel to each other and the axis of the prismatic joint is orthogonal to |
| | 418 | the revolute joint axes. All 6 cylinders together form a coupled set of 6 |
| | 419 | loops that have together 1 degree of freedom. |
| 427 | | that does not have a unique solution. The reason is that, e.g., the cut |
| 428 | | forces in direction of the axes of the revolute joints cannot be uniquely |
| 429 | | computed. Any value fulfills the DAE equations. This is a structural property |
| 430 | | that is determined by the symbolic algorithms. Since they detect that the DAE is |
| 431 | | structurally singular, a further processing is not possible. Without |
| 432 | | additional information it is also impossible that the symbolic algorithms |
| 433 | | could be enhanced because if the axes of rotations of the revolute joints are |
| 434 | | only slightly changed such that they are no longer parallel to each other, the |
| 435 | | planar loop can no longer move and has 0 degrees of freedom. Algorithms based |
| 436 | | on pure structural information cannot distinguish these two cases. |
| 437 | | </p> |
| 438 | | <p> |
| 439 | | The usual remedy is to remove superfluous constraints, |
| 440 | | e.g., along the axis of rotation of <b>one</b> revolute joint. Since this is |
| | 427 | that does not have a unique solution. The reason is that, e.g., the cut |
| | 428 | forces in direction of the axes of the revolute joints cannot be uniquely |
| | 429 | computed. Any value fulfills the DAE equations. This is a structural property |
| | 430 | that is determined by the symbolic algorithms. Since they detect that the DAE is |
| | 431 | structurally singular, a further processing is not possible. Without |
| | 432 | additional information it is also impossible that the symbolic algorithms |
| | 433 | could be enhanced because if the axes of rotations of the revolute joints are |
| | 434 | only slightly changed such that they are no longer parallel to each other, the |
| | 435 | planar loop can no longer move and has 0 degrees of freedom. Algorithms based |
| | 436 | on pure structural information cannot distinguish these two cases. |
| | 437 | </p> |
| | 438 | <p> |
| | 439 | The usual remedy is to remove superfluous constraints, |
| | 440 | e.g., along the axis of rotation of <b>one</b> revolute joint. Since this is |
| 483 | | It is well known that the non-linear |
| 484 | | algebraic equations of most mechanical loops in technical devices can be |
| 485 | | solved analytically. It is, however, difficult to perform this fully |
| 486 | | automatically and therefore none of the commercial, general purpose multi-body |
| 487 | | programs, such as MSC ADAMS, LMS DADS, SIMPACK, have this feature. |
| 488 | | These programs solve loop structures with pure numerical methods. Multi-body |
| 489 | | programs that are designed for real-time simulation of the dynamics of |
| 490 | | specific vehicles, such as ve-DYNA, usually contain manual implementations |
| 491 | | of a particular multi-body system (the vehicle) where the occurring loops are |
| 492 | | either analytically solved, if this is possible, or are treated by table |
| 493 | | look-up where the tables are constructed in a pre-processing phase. Without |
| 494 | | these features the required real-time capability would be difficult to |
| | 483 | It is well known that the non-linear |
| | 484 | algebraic equations of most mechanical loops in technical devices can be |
| | 485 | solved analytically. It is, however, difficult to perform this fully |
| | 486 | automatically and therefore none of the commercial, general purpose multi-body |
| | 487 | programs, such as MSC ADAMS, LMS DADS, SIMPACK, have this feature. |
| | 488 | These programs solve loop structures with pure numerical methods. Multi-body |
| | 489 | programs that are designed for real-time simulation of the dynamics of |
| | 490 | specific vehicles, such as ve-DYNA, usually contain manual implementations |
| | 491 | of a particular multi-body system (the vehicle) where the occurring loops are |
| | 492 | either analytically solved, if this is possible, or are treated by table |
| | 493 | look-up where the tables are constructed in a pre-processing phase. Without |
| | 494 | these features the required real-time capability would be difficult to |
| 501 | | loops analytically. The \"characteristic pair of joints\" method |
| 502 | | basically cuts a loop at two joints and uses geometric |
| 503 | | invariants to reduce the number of algebraic |
| 504 | | equations, often down to one equation that can be solved analytically. Also |
| 505 | | several multi-body codes have been developed that are based on this method, |
| 506 | | e.g., MOBILE. Besides the very desired feature to solve non-linear |
| 507 | | algebraic equations analytically, i.e., efficiently and in a robust way, there |
| 508 | | are several drawbacks: It is difficult to apply this method automatically. |
| 509 | | Even if this would be possible in a good way, there is always the problem that |
| 510 | | it cannot be guaranteed that the statically selected states lead to no |
| 511 | | singularity during simulation. Therefore, the \"characteristic pair of joints\" |
| | 501 | loops analytically. The \"characteristic pair of joints\" method |
| | 502 | basically cuts a loop at two joints and uses geometric |
| | 503 | invariants to reduce the number of algebraic |
| | 504 | equations, often down to one equation that can be solved analytically. Also |
| | 505 | several multi-body codes have been developed that are based on this method, |
| | 506 | e.g., MOBILE. Besides the very desired feature to solve non-linear |
| | 507 | algebraic equations analytically, i.e., efficiently and in a robust way, there |
| | 508 | are several drawbacks: It is difficult to apply this method automatically. |
| | 509 | Even if this would be possible in a good way, there is always the problem that |
| | 510 | it cannot be guaranteed that the statically selected states lead to no |
| | 511 | singularity during simulation. Therefore, the \"characteristic pair of joints\" |
| 547 | | coordinates, and all other frames |
| 548 | | defined in the assembly, can be calculated given the movement of frame_a and |
| 549 | | of frame_b</b>. This is performed by <b>analytically</b> solving non-linear |
| 550 | | systems of equations (details are given in section xxx). From a |
| 551 | | structural point of view, the equations in an assembly object are written in |
| | 547 | coordinates, and all other frames |
| | 548 | defined in the assembly, can be calculated given the movement of frame_a and |
| | 549 | of frame_b</b>. This is performed by <b>analytically</b> solving non-linear |
| | 550 | systems of equations (details are given in section xxx). From a |
| | 551 | structural point of view, the equations in an assembly object are written in |
| 560 | | where<b> r</b><sup>a</sup>, <b>R</b><sup>a</sup>,<b> |
| 561 | | r</b><sup>b</sup>, <b>R</b><sup>b</sup><b> </b>are the variables defining the |
| 562 | | position and orientation of the frame_a and frame_b connector, |
| 563 | | <b>q</b> are the generalized positional coordinates inside the |
| | 560 | where<b> r</b><sup>a</sup>, <b>R</b><sup>a</sup>,<b> |
| | 561 | r</b><sup>b</sup>, <b>R</b><sup>b</sup><b> </b>are the variables defining the |
| | 562 | position and orientation of the frame_a and frame_b connector, |
| | 563 | <b>q</b> are the generalized positional coordinates inside the |
| 585 | | The aggregated joint |
| 586 | | objects consist of a combination of either a revolute or prismatic joint and |
| 587 | | of a rod that has either two spherical joints at its two ends or a spherical |
| 588 | | and a universal joint, respectively. For all combinations, analytic solutions |
| 589 | | can be determined. For planar loops, combinations of 1, 2 or 3 revolute joints |
| 590 | | with parallel axes and of 2 or 1 prismatic joint with axes that are orthogonal |
| 591 | | to the revolute joints can be treated analytically. The currently supported |
| 592 | | combinations are listed in the table below. |
| 593 | | The missing combinations (such as JointSUP |
| 594 | | or Joint RPP) will be added in one of the next releases. |
| | 585 | The aggregated joint |
| | 586 | objects consist of a combination of either a revolute or prismatic joint and |
| | 587 | of a rod that has either two spherical joints at its two ends or a spherical |
| | 588 | and a universal joint, respectively. For all combinations, analytic solutions |
| | 589 | can be determined. For planar loops, combinations of 1, 2 or 3 revolute joints |
| | 590 | with parallel axes and of 2 or 1 prismatic joint with axes that are orthogonal |
| | 591 | to the revolute joints can be treated analytically. The currently supported |
| | 592 | combinations are listed in the table below. |
| | 593 | The missing combinations (such as JointSUP |
| | 594 | or Joint RPP) will be added in one of the next releases. |
| 636 | | and additionally with revolute and prismatic joints. |
| 637 | | Therefore, the combinations of the above table occur frequently. |
| 638 | | The universal joint is usually not present in actual devices but is used |
| 639 | | (a) if two JointXXX components can be connected such that a revolute |
| | 636 | and additionally with revolute and prismatic joints. |
| | 637 | Therefore, the combinations of the above table occur frequently. |
| | 638 | The universal joint is usually not present in actual devices but is used |
| | 639 | (a) if two JointXXX components can be connected such that a revolute |
| 641 | | and (b) if the orientation of the connecting rod between two |
| 642 | | spherical joints is needed, e.g., since a body shall be attached. |
| 643 | | In this case one of the spherical joints might be replaced by a |
| 644 | | universal joint. This approximation is fine as long as the mass |
| | 641 | and (b) if the orientation of the connecting rod between two |
| | 642 | spherical joints is needed, e.g., since a body shall be attached. |
| | 643 | In this case one of the spherical joints might be replaced by a |
| | 644 | universal joint. This approximation is fine as long as the mass |
| 654 | | It has three frame |
| 655 | | connectors. The lower left one (frame_C) is fixed in the vehicle chassis. The |
| 656 | | upper left one (frame_S) is driven by the steering mechanism, i.e., the |
| 657 | | movement of both frames are given. The frame connector on the right (frame_U) |
| 658 | | drives the wheel. The three frames are connected by a mechanism consisting |
| 659 | | essentially of two rods with spherical joints on both ends. These are built up |
| | 654 | It has three frame |
| | 655 | connectors. The lower left one (frame_C) is fixed in the vehicle chassis. The |
| | 656 | upper left one (frame_S) is driven by the steering mechanism, i.e., the |
| | 657 | movement of both frames are given. The frame connector on the right (frame_U) |
| | 658 | drives the wheel. The three frames are connected by a mechanism consisting |
| | 659 | essentially of two rods with spherical joints on both ends. These are built up |
| 661 | | As can be seen, the universal joint from the jointUPS |
| 662 | | assembly is connected to the revolute joint of the jointSSR assembly. |
| 663 | | Therefore, we have 3 revolute joints connected together at one point and if |
| 664 | | the axes of rotations are chosen appropriately, this describes a spherical |
| 665 | | joint. In other words, the two connected assemblies define the desired two |
| 666 | | rods with spherical joints on each ends. |
| 667 | | </p> |
| 668 | | <p> |
| 669 | | The movement of the chassis, frame_C, is computed |
| 670 | | somewhere else. When the generalized coordinates of revolute joint |
| 671 | | \"innerJoint\" (lower left part in figure) are used as states, then frame_a and |
| 672 | | frame_b of the jointUPS joint can be calculated. After the non-linear loop |
| 673 | | with jointUPS is (analytically) solved, all frames on this assembly are |
| 674 | | known, especially, |
| 675 | | the one connected to frame_b of the jointSSR assembly. Since frame_b of |
| 676 | | jointSSR is connected to frame_S which is computed from the steering |
| 677 | | mechanism, again the two required frame movements of the jointSSR assembly are |
| 678 | | calculated, meaning in turn that also all other frames on the jointSSR |
| 679 | | assembly can be computed, especially, the one connected to frame_U that drives |
| 680 | | the wheel. From this analysis it is clear that a tool is able to solve these |
| | 661 | As can be seen, the universal joint from the jointUPS |
| | 662 | assembly is connected to the revolute joint of the jointSSR assembly. |
| | 663 | Therefore, we have 3 revolute joints connected together at one point and if |
| | 664 | the axes of rotations are chosen appropriately, this describes a spherical |
| | 665 | joint. In other words, the two connected assemblies define the desired two |
| | 666 | rods with spherical joints on each ends. |
| | 667 | </p> |
| | 668 | <p> |
| | 669 | The movement of the chassis, frame_C, is computed |
| | 670 | somewhere else. When the generalized coordinates of revolute joint |
| | 671 | \"innerJoint\" (lower left part in figure) are used as states, then frame_a and |
| | 672 | frame_b of the jointUPS joint can be calculated. After the non-linear loop |
| | 673 | with jointUPS is (analytically) solved, all frames on this assembly are |
| | 674 | known, especially, |
| | 675 | the one connected to frame_b of the jointSSR assembly. Since frame_b of |
| | 676 | jointSSR is connected to frame_S which is computed from the steering |
| | 677 | mechanism, again the two required frame movements of the jointSSR assembly are |
| | 678 | calculated, meaning in turn that also all other frames on the jointSSR |
| | 679 | assembly can be computed, especially, the one connected to frame_U that drives |
| | 680 | the wheel. From this analysis it is clear that a tool is able to solve these |