SIMPACK
Getting Started SIMPACK Release 8.6
24th September 2003/SIMDOC v8.607
c COPYRIGHT 2003
GETS:0.0 -2
Contents 1 Introduction to SIMPACK
1.1 -7
1.1
The Software What are you intending to do? . . . . . . . 1.1 -7
1.2
Modes of Analysis . . . . . . . . . . . . . . . . . . . . . . 1.3 -8
1.3
Program Structure . . . . . . . . . . . . . . . . . . . . . 1.3 -8
1.4
Pre-processing (Model Set-up) . . . . . . . . . . . . . . . 1.4 -9
2 Introduction to the SIMPACK Getting Started Guide 2.2 -11 2.1
The Software . . . . . . . . . . . . . . . . . . . . . . . . 2.2 -11
2.2
From Concept to Simulation . . . . . . . . . . . . . . . . 2.2 -12
2.3
What the User Will Learn . . . . . . . . . . . . . . . . . 2.3 -15
2.4
Some Useful Hints When Working with SIMPACK . . . 2.0 -16
3 Starting a SIMPACK session 3.1
3.3 -17
How to Start a SIMPACK Session . . . . . . . . . . . . . 3.3 -17 Windows NT users . . . . . . . . . . . . . . . . . . . . . 3.3 -17 UNIX Users . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 -17
3.2
Exiting SIMPACK . . . . . . . . . . . . . . . . . . . . . 3.3 -17
3.3
The SIMPACK GUI . . . . . . . . . . . . . . . . . . . . 3.3 -18
4 File and Model Management
4.1 -21
4.1
Creating a New Model . . . . . . . . . . . . . . . . . . . 4.1 -21
4.2
Copying a Model . . . . . . . . . . . . . . . . . . . . . . 4.3 -23
4.3
Removing a Model . . . . . . . . . . . . . . . . . . . . . 4.3 -23
4.4
Opening a Model . . . . . . . . . . . . . . . . . . . . . . 4.6 -25
4.5
Starting the Pre-Processor . . . . . . . . . . . . . . . . . 4.6 -25
4.6
Exiting the Pre- or Post-Processor . . . . . . . . . . . . . 4.0 -26
4.7
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . 4.0 -26
5 Pendulum Model
5.1 -27
5.1
Setting up the Model . . . . . . . . . . . . . . . . . . . . 5.1 -27
5.2
Data for the Mechanical System Pendulum . . . . . . . . 5.4 -29
5.3
Opening the Model . . . . . . . . . . . . . . . . . . . . . 5.4 -29
5.4
Starting the Pre-Processor . . . . . . . . . . . . . . . . . 5.4 -29
GETS:0.0 -4
CONTENTS
5.5
Modifying the Reference Frame . . . . . . . . . . . . . . 5.5 -32
5.6
Discarding Changes . . . . . . . . . . . . . . . . . . . . . 5.6 -33
5.7
Modifying the Rigid Body . . . . . . . . . . . . . . . . . 5.7 -35
5.8
Modifying the Joint . . . . . . . . . . . . . . . . . . . . . 5.8 -39
5.9
Defining the g-Vector . . . . . . . . . . . . . . . . . . . . 5.11 -45
5.10 Modifying the Sensors . . . . . . . . . . . . . . . . . . . 5.11 -45 5.11 Saving the Model to Disk
. . . . . . . . . . . . . . . . . 5.12 -46
5.12 Creating the 3D Geometry . . . . . . . . . . . . . . . . . 5.12 -47 5.13 Graphical Representation of Body - Prism - Primitive . . 5.14 -52 5.14 Manipulating the View . . . . . . . . . . . . . . . . . . . 5.14 -52 5.15 On/Off Line Integration . . . . . . . . . . . . . . . . . . 5.15 -55 On Line Integration . . . . . . . . . . . . . . . . . . . . . 5.15 -56 Off Line Integration . . . . . . . . . . . . . . . . . . . . . 5.15 -57 Performing the Time Integration
. . . . . . . . . . . . . 5.16 -60
5.16 Calculating Measurements . . . . . . . . . . . . . . . . . 5.16 -60 5.17 Animating the Results of the Integration . . . . . . . . . 5.17 -61 6 The Double–Pendulum
6.1 -63
6.1
About the Model ‘Double–Pendulum’ . . . . . . . . . . . 6.1 -63
6.2
Extending the Pendulum Model to a Double Pendulum . 6.3 -65
6.3
Adding a Marker to a Body . . . . . . . . . . . . . . . . 6.3 -65
6.4
Creating a New Body and Adding a Marker . . . . . . . 6.4 -67
6.5
Modifying a Joint . . . . . . . . . . . . . . . . . . . . . . 6.5 -70
7 Creating and Importing a Substructure to a Model 7.1 -73 7.1
Creating a Substructure . . . . . . . . . . . . . . . . . . 7.1 -73
8 Adding a Force Element to the Double Pendulum Model 8.1 -77 8.1
Adding the Force Element . . . . . . . . . . . . . . . . . 8.1 -77
8.2
Plots of the Results . . . . . . . . . . . . . . . . . . . . . 8.2 -81 2D State Plots of the Joint States and Velocities . . . . . 8.2 -81 General 2D plots . . . . . . . . . . . . . . . . . . . . . . 8.2 -81
8.3
Static Equilibrium . . . . . . . . . . . . . . . . . . . . . 8.3 -84
8.4
Calculation of the Nominal Force Parameters . . . . . . . 8.4 -85
8.5
Eigen Behaviour . . . . . . . . . . . . . . . . . . . . . . . 8.5 -88 Animation of the Mode Shapes . . . . . . . . . . . . . . 8.5 -88
9 Addition of a Force Element to be Used as a Bump Stop 9.0 -91
GETS:0.0 -5
CONTENTS
10 A Slider Crank Mechanism
10.3 -93
10.1 About the Slider Crank Mechanism . . . . . . . . . . . . 10.3 -93 10.2 Extending the Double Pendulum Force Model to a Slider Crank10.3 -93 10.3 Defining a Constraint (Closed Loop) . . . . . . . . . . . 10.3 -93 10.4 Dependent and Independent Joints . . . . . . . . . . . . 10.4 -95 10.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5 -98 10.6 On-line Kinematics . . . . . . . . . . . . . . . . . . . . . 10.6 -99 Defining a Slider Bar . . . . . . . . . . . . . . . . . . . . 10.6 -99 Interactive Kinematics . . . . . . . . . . . . . . . . . . . 10.7 -101 10.7 Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . 10.7 -102 Configuration of the Inverse Kinematics Solver . . . . . . 10.7 -104 Performing Inverse Kinematics . . . . . . . . . . . . . . . 10.0 -105 11 How to Move On
11.0 -107
GETS:0.0 -6
CONTENTS
GETS:1.
Introduction to SIMPACK
SIMPACK: (SImulation of Multi-body systems PACKage)
GETS:1.1
The Software: What are you intending to do?
The SIMPACK software package is a tool to assist engineers to model, simulate, analyse and design all types of mechanical system, such as vehicles, robots, machines and mechanisms. It is able to analyse vibrational behaviour, calculate forces and accelerations as well as describe and predict the motion of multi-body systems. The basic concept of SIMPACK is to create the equations of motion for mechanical and mechatronic systems and then from these equations, apply various different mathematical procedures to produce a solution (e.g. time integration). The SIMPACK model is built up using the SIMPACK modelling elements. SIMPACK will then automatically generate the system equations from this model. The equations of motion can be generated both symbolically and numerically (where the numeric form is the usual form). The symbolic code allows the user to export the SIMPACK model as standard FORTRAN or C code which can be run independently, for example in real time, in a ‘hardware in the loop’ environment. The software has a comprehensive range of modelling and calculation features, together with a user interface well adapted to an engineer’s needs. Due to its comprehensive modelling abilities, it has been successfully applied within industry, university and research institutions. The following is a list of many of the fields to which SIMPACK has been applied. • Automotive vehicles • Tracked vehicles • Robotics • Machine tools • Printing machines • Packaging machines • Ground dynamics of aeroplanes
GETS:1.3 -8
Program Structure
• Dynamics of spacecraft • Electrical machine design • Biomechanics
GETS:1.2
Modes of Analysis A wide range of analysis features are available to analyse and design dynamic systems: • Static Analysis • Kinematic Analysis • Non-linear Dynamic Analysis • Linear System Analysis • Symbolic Code Generation • Eigenvalue Analysis
GETS:1.3
Program Structure Figure GETS:1.3.1 shows the main functional modules and interfaces to external software tools.
Figure GETS:1.3.1: SIMPACK Program Structure The window oriented interface of SIMPACK serves four main purposes: • The user interface includes a dialogue driven model set-up window, which includes list boxes for the MBS-library elements, parameters etc. This interactive module generates all the data nec-
Pre-processing (Model Set-up)
GETS:1.4 -9
essary for a complete physical and graphical description of the MBS. It also generates all the necessary data for SIMPACK to perform the numerical evaluation methods. • It prevents the user from creating inconsistent models. Logical data checks of the input deck are made by SIMPACK as well as calculations performed on-line for closed loop systems to ensure that the model is viable. • It provides help on all menu items. Thus the necessary ‘manual research work’ is reduced to a minimum. • It gives the engineer complete control of the model creation and simulation processes.
GETS:1.4
Pre-processing (Model Set-up) In SIMPACK, the pre-processor Model Setup window is a graphical 3D window. At each step of the modelling process the user has a direct graphical impression of the system. The model data is stored in the MBS database which is used as the basic input for a SIMPACK analysis. It is possible to access this data which is user readable and represents a clear description and documentation of the MBS. This data is in ASCII format and so is therefore available to users of all platforms. Extensive libraries of coupling elements such as joints and force elements, as well as excitation functions, help the engineer build their model. Common SIMPACK models include suspension or other complex joint kinematics, force models for hydraulics, various tyre type models, aerodynamics models, etc. Subsystem modelling techniques enable the user to establish complicated non-standard kinematical and/or force systems. User written subroutines extend the modelling options. In order to represent flexible bodies, several pre-processors can be used to supply the SIMPACK computation modules with flexible body data. SIMPACK is an open system which possesses various links to external standard software products. For arbitrary flexible geometry, a file interface to FEM programs is available. This gives access to mass, stiffness and damping matrices as well as to the associated second order terms. In addition, loads computed by SIMPACK can be transferred to the FEM code. For the purpose of incorporating physical and graphical CAD data, SIMPACK can be linked by an interface to CAD packages, thus increasing the model set-up capabilities enormously. This link enables data consistency between MBS and CAD data at each step of the modelling process. It is also possible to perform SIMPACK on-line calculations from the CAD package and to have the results presented in the CAD environment. In general this feature is not guaranteed by using file interfaces alone. SIMPACK may also be linked as a fully non-linear tool into non-linear optimisation and control tools such as MATLAB, SIMULINK, etc. This allows the use of SIMPACK and its parameter variation capability to be used in an optimisation loop for the efficient design of dynamic sys-
GETS:1.0 -10
Pre-processing (Model Set-up)
tems. Due to its ability to numerically linearise the system equations, SIMPACK can also be used as a simulation tool within linear control design tools. A further link is provided to external post-processing tools in addition to the extensive internal post-processing capabilities of SIMPACK. The 2D and 3D visualisation tools enable the user to view simulation results in many different forms. These include tables, plots and realtime animation of the graphical models created by SIMPACK.
Figure GETS:1.4.2: Trademarks
GETS:2. Introduction to the SIMPACK Getting Started Guide The purpose of this guide is to introduce the user to SIMPACK and its features. After completing this guide the user will have learnt many of the features of SIMPACK and will be able to start modelling and simulating their own mechanical systems. It is estimated that it will take the user approximately 10 hours to complete the Getting Started guide. It is possible however, to save the model at any stage and then return at a later date. No previous experience of multi-body systems software or any understanding of the theory upon which the software is based is required of the user. The user is taken through the guide step-by-step, but is encouraged, at certain points, to undertake some tasks unaided and therefore apply what has been previously learnt. New features are introduced at every stage ensuring the user becomes familiar with many of the features of SIMPACK by the end of the Getting Started guide. The guide contains, within the text, snapshots of SIMPACK dialogue boxes to ensure the user is entering the data correctly.
GETS:2.1
SIMPACK: The Software SIMPACK is a multi-body simulation package which allows the user to simulate and model complex mechanical systems. The software also allows the inclusion of electrical, hydraulic and pneumatic elements. The purpose of the software is to improve the design process involving multi-body systems. The user is likely to see reduced lead times, a simpler design process and at the end, a better product. The more common requirements of the user from SIMPACK include any from the following: • Optimisation of design parameters • Calculation of dynamically interacting forces within critical components • Effect of varying design parameters • Determining major design parameters affecting dynamic behaviour • Analysing weak points of the mechanical design
GETS:2.2 -12
GETS:2.2
From Concept to Simulation
From Concept to Simulation From the initial concept stage to the point where SIMPACK has presented the results, there are six steps. The first three steps are performed outside SIMPACK. They are as follows: 1. Problem definition 2. Development of a mechanical model 3. Provision of the physical parameters for the model The first three steps may appear obvious, but should be completed before entering SIMPACK Steps 4 to 6 are performed within SIMPACK 4. Pre-processing: Input the data set, obtained from steps 1-3, with the help of the SIMPACK user interface 5. Problem Solution: Generation and solution of the motion governing differential equations 6. Post-processing: Presentation of the results By following these steps, will ensure that you make the best possible use of SIMPACK’s features and solver capabilities. These steps will now be explained in a little more detail:
Step 1. Problem Definition
Figure GETS:2.2.1: Truck and Trailer as an Example of a Physical System Step 2. Development of a Mechanical Model • The mechanical structure is divided into bodies and joints, the interconnecting structures • Constraints are then defined, which contsrains the mobility of the elements by removing degrees of freedom • Forces in-between the ground and the bodies are defined
GETS:2.2 -13
From Concept to Simulation
z
2
β2 α2
z1
γ1
γ1
β1 x1
z7
α1
β8
z3 β9
α7
β4
α3 β5
Figure GETS:2.2.2: Mechanical Model Step 3. Provision of the Model Parameters • The physical parameters for the model such as the mass, moments of inertia and centre of mass for the various different bodies are defined • The geometry of the structure and how it fits together are defined; i.e. the distances in-between coupling points • The parameters for the coupling elements are defined, such as the force element values and constraints
Figure GETS:2.2.3: Typical Model Parameters Step 4. Pre-Processing This section is where the model data is entered into SIMPACK. This data includes: • The physical model; i.e. bodies and joints • All the input functions for the model including the constraints, forces and excitation functions • The associated 3D geometrical data for the graphical representation of the bodies
GETS:2.2 -14
From Concept to Simulation
• The numerical calculation settings • The settings for the output quantities • The settings for the optimisation and parameter variation Step 5. SIMPACK Calculations • The differential equations are generated from the data entered in the previous step and then solved within SIMPACK Step 6. Post-processing: Presentation of Results SIMPACK can present the results in any of the following forms: • User determined plots such as load indices or limiting values • 2D line plots • SIMPACK contains various different mathematical algorithms i.e. Fast Fourier Transforms which can be used to process the results of SIMPACK’s calculations • 3D animation of the model i.e. mode shape animation • Export to Microsoft Excel and MATLAB
GETS:2.3 -15
What the User Will Learn
GETS:2.3
What the User Will Learn This section will explain what the user will be doing in the SIMPACK Getting Started Guide. The guide takes the user through building up a relatively simplistic model, which begins as a pendulum and is developed into a slider-crank mechanism. Along the way the user is introduced to SIMPACK’s extensive modelling features. The features which the user will meet are detailed as follows: • They will be introduced to the pre-processor and the main build commands, which include New, Modify and Remove. The user will learn how to create the basic physical model using reference frames, bodies, markers and joints. As well as the pull-down menus, the user will learn how to access features using the toolbar shortcut buttons. After developing the model the user will learn how to solve it in SIMPACK (both off- and on-line integration methods will be taught). Following this, the user will be shown how to access and use the features within the post-processor • They will be taught how to assign sensors to the structure which allow the user to see the response, from within the post-processor, of different, predetermined parts of the structure (i.e. positions, velocities or forces at exact locations on the model can be analysed) • After entering the physical data, the user will be taught how to assign primitives to the bodies, joints etc. and therefore create a physical 3D geometry • The user will also be taught how to create the interaction inbetween the physical parts using force elements and constraints • A number of features will not be introduced to the user in the Getting Started guide. These include a number of the toolbar functions. However help topics are available when the user wishes to use any of these functions
GETS:2.0 -16
GETS:2.4
Some Useful Hints When Working with SIMPACK
Some Useful Hints When Working with SIMPACK • Work through the model set-up one step at a time • Be aware that SIMPACK can only provide the solution of the model data, which is an approximation of a real physical system • Always plan your model before you start working with SIMPACK • Draw sketches of your model and refer back to them when working in a SIMPACK session • Be patient, you are not the first to make mistakes
GETS:3.
Starting a SIMPACK session
The main features you will learn at this stage are as follows: • How to start a SIMPACK session • Basic file management • Ending a SIMPACK session
GETS:3.1
How to Start a SIMPACK Session
Windows NT users: • Either click on the SIMPACK desktop item
Figure GETS:3.1.1: SIMPACK Desktop Item • Or from the taskbar menu select Programs, followed by ‘SIMPACK v.8.6 folder’ and then finally click on the SIMPACK v.8.6 icon
UNIX Users: • Open a terminal window • Type sim The SIMPACK user interface window appears GETS:3.1.2:
Figure GETS:3.1.2: SIMPACK User Interface
GETS:3.2
Exiting SIMPACK From the menu bar on the user interface select Exit from File on the pull-down menu: File Exit
GETS:3.3 -18
GETS:3.3
The SIMPACK GUI
The SIMPACK GUI This window is the main operating interface between the user and SIMPACK. This window contains a menu bar, along with a shortcut toolbar. The different menu items and toolbar buttons will be explained as you work through this guide. However here is a quick overview of the different menubar functions. File This menu provides the basic file and model management options and is where the user can exit from SIMPACK. PreProcess This menu option allows the user access to the pre-processor in the 3D Model Setup window. There are various other pre-processing options available including the generation of symbolic code. Calculation Under this menu is where you can control what is happening with the SIMPACK solver. You can start and stop the time integration module, inverse kinematics module etc. ParVariation This feature of SIMPACK is particularly useful. If the effect of varying a different parameter is required, SIMPACK is able to do this automatically i.e. the user does not have to vary the parameter directly, but can instruct SIMPACK to see the effect that varying a parameter has (the mass of a body for example) on the motion of the system. This parameter variation is available in a number of the different SIMPACK solver modules. Optimisation The basic idea is similar to parameter variation. The parameters to be optimised are modified in such a way that selected criteria, (e.g. the RMS-value of an acceleration) are minimised. SIMPACK employs a sophisticated algorithm to evaluate the resulting performance. This provides the ‘best’ (pareto-optimal) parameter within a short iteration period. The optimisation process is not limited to one calculation method nor even to one simulation model. The optimised parameter may result from the consideration of several optimisation criteria, for example for a railway vehicle problem, parameters such as ride comfort, track quality and safety could all be considered. PostProcess
GETS:3.0 -19
The SIMPACK GUI
This menu gives you access to the main post-processing functions. Help This provides access to the main SIMPACK documentation, including help topics on the SIMPACK keywords, plus general SIMPACK information as well as details of the current SIMPACK release.
GETS:3.0 -20
The SIMPACK GUI
GETS:4. File and Model Management
Figure GETS:4.0.1: On-Line View of a SIMPACK Session In this section you will learn how to open, copy, create and remove models.
GETS:4.1
Creating a New Model From the user interface either click on the Open Model toolbar button GETS:4.1.2 or click on Open Model from File Open Model GETS:4.1.3.
GETS:4.1 -22
Creating a New Model
Figure GETS:4.1.2: Open Model From the Toolbar
Figure GETS:4.1.3: Open Model from the Pull-Down Menu The open model dialogue box then appears, figure GETS:4.1.4:
Figure GETS:4.1.4: The Open Model Dialogue Box You must now select which directory you would like to save the model in. On the left hand side of the Open Model dialogue box you will see a directory list box. Either double click on a directory or double click on .. to look in a parent directory. Once you are in the directory you ✞
would like to save your model in, then click on New and enter the
✝ ✆ ✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ pendulum in the list box that appears. You must ✆ ✞ ✝ . The model name will be displayed at the top then hit ✝✄✂ ✁✄✂ ✁✄✂ ✁ Return ✆
model name
of the SIMPACK user interface window.
When a new model is created, SIMPACK automatically creates a default model with the following parameters:
GETS:4.3 -23
Copying a Model
• Inertia reference frame ‘$B Isys’ with a marker ‘$M Isys’ placed at the origin of the inertia reference frame • One body ‘$B Body1’ with a marker ‘$M Body1’ placed on the body fixed reference frame • One joint ‘$J Body1’, which connects the inertia frame and the body with zero degrees of freedom • One sensor ‘$S Body1’ between the two markers • A default gravity vector • A default 3D–geometry for the inertia frame and the body
GETS:4.2
Copying a Model Open the Open Model dialogue box and select the ‘pendulum’ model you have just created, click with the right hand mouse button in this section (Models section) of the Open Model window and select ‘Copy Model’. Click again with right hand mouse button and select ‘Paste Model’. You will then be asked to whether you want to overwrite the existing model, select ‘No’ and in the ‘New Model’ window that then appears enter the new name for the copied model. Models can also be copied across directories. The model should be copied in exactly the same way. Then switch to the directory in which you would like to copy your model and click on ‘Paste Model’. The model data will be copied to this directory and will have the name of the original model. You should now create the model ‘deleteme’ which is a copy of the ‘pendulum model’ and will be located in the same directory as the ’pendulum’ model.
GETS:4.3
Removing a Model Open the Open Model dialogue box and model ‘deleteme’ ✞ select the which you have just created. Click on Remove . The following dia✝ ✆ logue box will appear on the screen, figure GETS:4.3.5.
GETS:4.3 -24
Removing a Model
Figure GETS:4.3.5: Remove Model Window
GETS:4.6 -25
Opening a Model
There are 5 options that appear. Three of the options are for working only with the selected model and the other two options are for working with the entire active directory. The options for the current model are: • To remove the current model with all the results • To remove all the results from the current model; this removes all the output files of the selected model • To remove measurement results only from the current model; this removes all the measurement results from the current model, but keeps all the simulation results The final option keeps only the basic results files and model files. This is useful as the results files from the simulation are kept, which may have taken a significant amount of computer time to produce. The measurement files are removed, which often take up a significant amount of disk space, but can be restored very quickly. Calculating measurements will be explained later in the guide. The options for the entire directory are as follows: • To remove all the results from all the models in the current directory • To remove all the measurement results from all the models in the current directory ✞
Select ’remove current model with all results’ and click on OK . Con✝ ✆ firm that you want to remove this ✞model and when you return to the Open Model dialogue box click on Close . ✝
GETS:4.4
✆
Opening a Model Open the Open Model window once more. Find the directory which contains the pendulum model, which you have just created. Double click on the pendulum model or select the model and then click on ✞ OK . ✝
✆
SIMPACK only allows you to work on one model at a time. You will be unable to load up a new model in SIMPACK if the pre- or post-processor is running with another model. To begin working on a new model you must close the pre- or post-processor.
GETS:4.5
Starting the Pre-Processor The pre-processor can be opened either from the pull-down menu or from Model Setup / 3D-animation PreProcess Model Setup on the shortcut toolbar.
GETS:4.0 -26
GETS:4.6
Getting Help
Exiting the Pre- or Post-Processor in the 3D Model Setup window or Exit click on the Exit toolbar button. You will then be prompted to see if you wish to save your model or not.
Either select from File
GETS:4.7
Getting Help SIMPACK provides the user with many help options. Help is most easily accessible via the on-line help HTML pages, which are accessed through Help on the pull-down menu in the SIMPACK Documentation user interface. If the user clicks on help from within the menu bar in other windows then they are presented with two options from within the pull-down menu. 1. ‘Help on context,’ can be selected where a short help text is available for many fields within the SIMPACK windows 2. ‘Help on window,’ brings up a HTML document in a browser window, which provides help on functions within that window
GETS:5. GETS:5.1
Pendulum Model
Setting up the Model In this lesson you will learn how to create and develop a model. You will learn how to: • Create and work with reference frames, bodies, joints and markers and learn how to add sensors • Create the 3D graphical representation of the physical parts • Add force elements, including global forces as well as adding constraints • Use the more advanced model and file management features of SIMPACK • Use SIMPACK to integrate the differential equations generated from the model data. Subsequently you will learn how to calculate measurements and animate the model from the simulation results • Manipulate the view of the model in the Model Setup window You will build a relatively simplistic model of a pendulum which will be developed into a slider-crank mechanism by the end of the Getting Started guide. Figure GETS:5.1.1 shows the pendulum which you will create in the first section of the Getting Started guide.
GETS:5.1 -28
Setting up the Model
Figure GETS:5.1.1: Pendulum Model
GETS:5.4 -29
Data for the Mechanical System Pendulum
GETS:5.2
Data for the Mechanical System Pendulum • Body pendulum: mass = 4.0 centre of gravity (x,y,z) = ( 0, 0, -0.25 ) 10.0 0.0 0.0 0.0 10.0 0.0 inertia tensor I = 0.0 0.0 1.0
[ kg ] [m] [ kgm2 ]
• Joint: joint mobility = rotation about x-axis — initial joint state = 0.707 [ rad ] initial angular velocity = 0.0 [ rad/s ] • Gravity: acceleration due to gravity along z-axis, g = 9.81 [ m/s2 ] Geometric data for the pendulum: • Prism, representing the pendulum: co-ordinates of the prism — thickness
=
y z −0.1 0.0 0.0 −0.1 0.1 0.0 0.0 0.7 0.05
[m] [m]
• Cylinder, representing the rotational axis: length = 0.5 [ m ] diameter = 0.05 [ m ]
GETS:5.3
Opening the Model Start a SIMPACK session and open the pendulum model which you created previously.
GETS:5.4
Starting the Pre-Processor The pre-processor is where all the work is done in SIMPACK before you ask SIMPACK to solve the equations. This step is Step 4 in the 6 steps required to go from the concept stage to the simulation stage. The pre-processor can be opened either from the pull-down menu or from Model Setup / 3D-animation PreProcess Model Setup on the shortcut toolbar. Two windows will appear on the screen. Figure GETS:5.4.2 is the SIMPACK 3D Model Setup window. In this window there is a 3D axis and this is where the model that you build will be shown. Along the top and side of the window you will find the shortcut toolbars as well as a menubar.
GETS:5.4 -30
Starting the Pre-Processor
Figure GETS:5.4.2: SIMPACK 3D Model Setup Window
GETS:5.4 -31
Starting the Pre-Processor
The other window that appears is the SIMPACK Echo Area window, figure GETS:5.4.3. This window displays the working status of SIMPACK as well as any error or calculation messages:
Figure GETS:5.4.3: SIMPACK Echo Area
GETS:5.5 -32
GETS:5.5
Modifying the Reference Frame
Modifying the Reference Frame At least one reference frame is required to describe the motion of a physical system. Reference frames are co-ordinate frames with a strictly defined (completely rheonomically driven) motion relative to the inertia frame which means therefore, that reference frames do not have dynamics of their own. It is possible to represent the axes using 3D geometry. The reference frame is normally of the type inertially fixed. Either click on the ’Reference Frames toolbar button’ or from the pulldown menu select Elements Reference Frames The following dialogue box, figure GETS:5.5.4 will appear:
Figure GETS:5.5.4: SIMPACK MBS Reference Frames
GETS:5.6 -33
Discarding Changes
This dialogue box contains all the defined reference frames in the MBS model. There should only be one reference frame present which is the reference frame $B Isys. From this dialogue box you should now either double click ✞ on the reference frame $B Isys or select it and then click on modify . The following dialogue box, figure GETS:5.5.5 will appear: ✝
✆
Figure GETS:5.5.5: Reference Frames Dialogue Box From this dialogue box you can edit the reference frame data. You can define various different parameters for the reference frame as well as define its guiding motion.
✞
Try selecting Type . This starts the window Reference System List. ✝ ✆ From this✞window you can select the type of reference frame you require. Click on Cancel to return back to the Define Reference System dia✝
✆
✞
✞
✆
✝
✆
logue box. You can also try selecting Markers or 3D Geometry . ✞
✝
Clicking on Show the Reference Frame will highlight the refer✝
✆
✞
ence frame in the 3D Model Setup window. Click on OK to close ✝ ✆ the Define Reference System window. You will learn how to create and modify markers later in this guide.
GETS:5.6
Discarding Changes Before going any further with developing the model, it is necessary to explain how to discard any unwanted modifications. SIMPACK does not have an undo facility. If you as the user wish to remove a number of changes to the model you have just made, then it is necessary to reload the model from the last save.
GETS:5.6 -34
Discarding Changes
The model can be reloaded either from File and then Reload on the pullor by clicking on ’Reload’ in the toolbar. down menu File Reload This Reload function is found in the 3D Model Setup window as shown in figures GETS:5.6.6 and figure GETS:5.6.7.
Figure GETS:5.6.6: Reload MBS
Figure GETS:5.6.7: Reload MBS Toolbar
GETS:5.7 -35
Modifying the Rigid Body
Reloading the database from the last save means all the changes you have made since the last save will be removed. If however, you would only like to remove one or two changes then it is more advisable to modify the model (such as a joint or marker). Modifying varying different aspects of the model will be explained at various different stages throughout this guide.
GETS:5.7
Modifying the Rigid Body Whenever a new body is created, SIMPACK automatically assigns it a body fixed marker. This marker serves as a reference frame for the body, therefore its position and orientation cannot be changed. The following items are defined with respect to this body fixed reference system: • Position of the centre of gravity relative to the body fixed reference frame • Built-in position and orientation of markers on the body Select either ’Bodies’ on the toolbar or from the pull-down menu in the 3D Model Setup window Elements Bodies The Bodies list box, figure GETS:5.7.8 will appear on the screen, containing the default body $B Body1 in the list box.
GETS:5.7 -36
Modifying the Rigid Body
Figure GETS:5.7.8: Bodies List Box
GETS:5.7 -37
Modifying the Rigid Body
Double click on $B Body1 or select it with the mouse and then click ✞ on Modify . The MBS Define Body dialogue box appears, within this ✝ ✆ window you can select whether the data used for the body is input locally (i.e. by you in the pre-processor) or from a database. You can also select whether the body is rigid or elastic. For this model you will enter the data by hand, i.e. not from the database and you will define the body as rigid. Within this dialogue box you can enter the physical attributes of the body. These include the mass, centre of mass and the inertia-tensor. The inertia-tensor can be set relative to either the centre of mass, the body fixed reference system or to a marker. Normally it is set relative to the centre of mass, which is the case for the pendulum model here. You should now enter the following data for the body: Edit $B Body1:
✞
mass = ✝✄✂ ✁✄✂ ✁✄✂ ✁ 4 ✆ Centre of mass z = ✞
Ixx = ✝✄✂ ✁✄✂ ✁✄✂ ✁ 10 ✆ ✞ Iyy = ✝✄✂ ✁✄✂ ✁✄✂ ✁ 10 ✆ ✞
✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ -0.25 ✝ ✆
Izz = ✝✄✂ ✁✄✂ ✁✄✂ ✁ 1 ✆ Inertia-tensor relative to centre of mass Figure GETS:5.7.9 shows how the MBS Define Body dialogue box should look:
GETS:5.7 -38
Modifying the Rigid Body
Figure GETS:5.7.9: MBS Define Body
GETS:5.8 -39
Modifying the Joint
✞
✝
✆
Click on OK
GETS:5.8
Modifying the Joint Joints are zero mass connections between two bodies. Every body must have a joint and this joint must either be attached to another body or to a (kinematically driven) reference frame. Joints can have from 0 to 6 degrees of freedom. To modify the joint: • Select Joints from either, the pull-down menu under Elements or from the toolbar • In the next dialogue ✞ box select $J Body1 and as you did with $B Body1 click on Modify or double click on it ✝
✆
The dialogue box MBS Define Joint, figure GETS:5.8.10 will appear.
Figure GETS:5.8.10: MBS Define Joint At the top of the dialogue box the name of the joint is shown. The markers to which it is attached as well as the type of joint are also shown. When defining the markers associated with a joint, it is necessary to follow the tree structure which starts from the inertia frame
GETS:5.8 -40
Modifying the Joint
and moves outwards. Therefore the ‘from marker i’ should be nearer the reference frame than the ‘to marker j’. SIMPACK takes this into account when it offers you the markers. ✞
Click on From Marker i and the dialogue box, figure GETS:5.8.11 ✝ ✆ appears:
Figure GETS:5.8.11: MBS Marker List
GETS:5.8 -41
Modifying the Joint
• Select marker $M Isys and then click on OK. This marker is the default marker set by SIMPACK on the reference frame • Select $M Body1 as marker j. This is the default marker set by SIMPACK on Body1 ✞
• It is then necessary to select a joint type. Click on Joint Type . ✝ ✆ The window GETS:5.8.12 appears with a list of the different types of joint, e.g. Rheonomic Joints. The individual joints can be found under the relevant joint type. Open the folder ‘General: Free Motion’ and from the list that appears select joint ‘Revolute Joint al’. This is a 1 degree of freedom joint, which allows only rotation about the x axis (angle Alpha). Figure GETS:5.8.12 shows what you should select:
Figure GETS:5.8.12: Joint List
GETS:5.8 -42
Modifying the Joint
✞
• Press OK to close the subwindow and you will return to the ✝ ✆ MBS Define Joint Dialogue box. Click on the first line of the initial state box as shown in figure GETS:5.8.13:
Figure GETS:5.8.13: MBS Define Joint
GETS:5.8 -43
Modifying the Joint
In the following input window you can enter the initial state of the joint in terms of both position and velocity. Enter the following modifications into the input panel. Position Velocity
= =
✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ 0.707 ✝ ✆ ✞ ✄✄✄ ✂ ✁✂ ✁✂ ✁ 0.0 ✝ ✆
The input panel should look as follows, figure GETS:5.8.14:
Figure GETS:5.8.14: Input Panel
GETS:5.8 -44
Modifying the Joint
✞
Click on OK and the MBS Define Joint dialogue box should look as ✝ ✆ follows, figure GETS:5.8.15:
Figure GETS:5.8.15: Completed MBS Define Joint Dialogue Box
GETS:5.11 -45
Defining the g-Vector
✞
✝
✆
Click on OK again, to close the MBS Define Joint window
GETS:5.9
Defining the g-Vector This is the section where you can set the g-vector. If you would like to undertake an analysis without the g-vector present you must explicitly tell SIMPACK, otherwise it is defined automatically and is negative along the z-axis. To modify the g-vector you must select ’Gravity’ from within Globals in from the 3D Model Setup the pull-down menu Globals Gravity window. Figure GETS:5.9.16 shows the g-vector dialogue box:
Figure GETS:5.9.16: Define g-Vector For this analysis stay with the default value which is negative along the z axis.
GETS:5.10
Modifying the Sensors Sensors are a very important part of SIMPACK. They yield the relative kinematic quantities between two markers. SIMPACK automatically assigns one sensor to each body that is created. However sensors can be defined between any two markers on the MBS. They are used when the relative translation, rotation, velocity or acceleration between two markers is of interest. The measurements taken by the sensor are from marker ‘i’ to marker ‘j’ and are denoted in co-ordinates of ‘i’. The measurements are taken off-line after the time integration. • Select ’Sensors’ from either the pull-down menu under Elements or from within the shortcut toolbar • In the MBS Sensors window that appears is the sensor $S Body1, ✞ either double click on it or select it and click on Modify ✝
✆
The dialogue box, figure GETS:5.10.17 will appear: Again marker ‘i’ should be closer to the inertia frame, so select $M Isys Keep the other defor this marker. For marker ‘j’ select ✞ $M Body1. faults within the window and click on OK . ✝
✆
GETS:5.12 -46
Saving the Model to Disk
Figure GETS:5.10.17: Define Sensors Dialogue Box
GETS:5.11
Saving the Model to Disk As mentioned previously there is no undo facility in SIMPACK, so it is therefore necessary to reload the MBS data from the last save to remove unwanted changes to the model. This means that it is advisable to make a habit of saving the data regularly to prevent losing too much work if the model has to be reloaded. To reload the model data from the previous save either click on the ’Reload MBS-Model’ toolbar button or from the pull-down menu File Reload A useful function of SIMPACK is to be able to save the model under a different name. This can be done using the ’Save As’ option which is also found under ’File’ and on the toolbar. This creates a copy of the model and doesn’t change the session name. When SIMPACK writes the model data to disk, it does so in two different files. The file FILENAME.sys contains the information about the MBS definition, whilst the file FILENAME.ani contains the information concerning the shape, colour and view definitions. What is important to note is that when SIMPACK executes a command such as time integration it reads the model data from these files. It is therefore vital, immediately before asking SIMPACK to perform a task with the model data, that you save the model data and therefore update these files. You can save the model data either from the pull-down menu File or by clicking on the ’Save’ toolbar button. The save function Save is found in the Model Setup window.
GETS:5.12 -47
Creating the 3D Geometry
GETS:5.12
Creating the 3D Geometry The 3D geometry of bodies and reference frames consists of one or more ensembles. Every ensemble consists of one of more graphic primitives such as co-ordinate frames, cuboids, cylinders, prisms, etc. These primitives are grouped together to form a 3D ensemble. Even complex shapes produced by CAD packages can be attached to an ensemble. Road and railway track primitives will usually be attached to the inertia frame. The ensembles are guided by the position vector and orientation matrix of one single sensor. When SIMPACK creates a new body it will automatically assign a default sensor ensemble and primitive to the body. The default ensemble is assigned to the default sensor. In most cases you will keep this ensemble attached to this default sensor. The default graphic primitives are a co-ordinate frame and a cuboid primitive. Select $B Isys for modifying. If you need help refer back to GETS:5.5 on modifying the reference frame. ✞
✝
✆
Select 3D-Geometry
The SIMPACK 3D Geometry window appears. This window shows the ensembles and primitives that are associated with this frame. ✞ reference Under ’Primitives of Selected Ensembles’ click on New as shown in ✝ ✆ figure GETS:5.12.18:
GETS:5.12 -48
Creating the 3D Geometry
Figure GETS:5.12.18: 3D Geometry
GETS:5.12 -49
Creating the 3D Geometry
In the input box that appears you should enter the name $P axle ✞ then and then click on OK . ✝
✆
The SIMPACK Primitive Definition window appears and in this window ✞ click on Type to change the primitive type, figure GETS:5.12.19. ✝
✆
Figure GETS:5.12.19: Primitive Definition Window
GETS:5.12 -50
Creating the 3D Geometry
Figure GETS:5.12.20 shows the available primitives. In this window ✞ select primitive type ‘Cylinder’ and click on OK . ✝
✆
Figure GETS:5.12.20: Primitive Types List Box You will return back to the Primitive Definition window and in this window you must enter the following parameters. Enter: diameter = length = number of planes = smooth =
✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ 0.05 ✝ ✆ ✞ ✄✄✄ ✂ ✁✂ ✁✂ ✁ 0.2 ✝ ✆ ✞ ✄✄✄ ✂ ✁✂ ✁✂ ✁ 8 ✝ ✆ ✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ 1 ✝ ✆
Edit the built-in vector matrix ✞
Revolve primitive 90o on z–axis (gamma = ✝✄✂ ✁✄✂ ✁✄✂ ✁ +90 ✆ ) The dialogue box should look as follows, figure GETS:5.12.21:
Creating the 3D Geometry
GETS:5.12 -51
Figure GETS:5.12.21: Completed Primitive Definition Window
GETS:5.14 -52
Manipulating the View
✞
✞
✝
✆
✝
✆
Click on OK and then again in the 3D Geometry box and then click on OK in the Define Reference System dialogue box.
GETS:5.13
Graphical Representation of Body - Prism Primitive In the next section you will develop the body as you did with the reference frame. You will change the body from a cuboid to a prism to look like the hand of a clock. The steps are similar to those that you went through for applying the 3D geometry to the reference frame.
✞
• Access the body $B Body1 and click on 3D Geometry . The ✝ ✆ 3D Geometry window appears Within this window you will find the default ensemble $E Body1 and the default primitives of this ensemble. There is the primitive $P Body1, a co-ordinate axis representing the body reference frame and a cuboid $P Body1 cuboid. ✞
✝
✆
• Select the cuboid and click on Rename • Change the name to $P Hand ✞
✝
✆
• Click on Modify to change the primitive parameters of the hand • Change the Primitive type to ‘Prism by Coordinates’ • Back in the Primitive Definition window change the prism thickness to 0.05 and the No. of shape points to 4 • In the shape/line list box enter the four shape points as follows: Enter in
1. 2. 3. 4.
line: line: line: line:
x x x x
= = = =
-0.1 0.0 0.1 0.0
y y y y
= 0.0 = -0.1 = 0.0 = 0.7
• Edit the built-in vector and rotation matrix ✞
Rotate primitive −90o on y–axis (beta = ✝✄✂ ✁✄✂ ✁✄✂ ✁ -90 ✆ ) ✞✄ ✄ ✄ o Rotate primitive 90 on z–axis (gamma = ✝✂ ✁✂ ✁✂ ✁ +90 ✆ ) Figure GETS:5.13.22 shows how the primitive dialogue box should look: ✞
✞
✝✞
✆
✝
✆
✝
✆
• Click on OK and OK again to get back to MBS Define Body and then OK to close this window • Save the model
GETS:5.14
Manipulating the View It is possible to manipulate the view in the 3D Model Setup window. You can alter the angle it is viewed from, zoom in or out, or move the
Manipulating the View
GETS:5.14 -53
Figure GETS:5.13.22: Completed Body-Primitive Definition Window model within or around the screen axes or within the Reference system axes. You will learn, in this section, how to move the model within the 3D Model Setup window. However, before changing the view you should save the model. You therefore only need reload the model data to get back to the original view settings. • Select View Setup from View on the pull-down menu in the 3D Model Setup window. The following dialogue box will appear, figure GETS:5.14.23
GETS:5.14 -54
Manipulating the View
Figure GETS:5.14.23: View Set-Up Window
GETS:5.15 -55
On/Off Line Integration
• Click on ✷ Standard Views . A list of standard views appears. Click on each different view • Try clicking on ✷ Zoom/Translate/Rotate You can see the effect the slider bars have on the view. You can toggle between screen co-ordinates and reference system co-ordinates to determine the translational movement of the model within the screen. When the screen co-ordinates are selected the bottom left hand corner of the 3D Model Setup window becomes the origin. Try also rotating the model around the screen using the slider bars. One very useful feature in SIMPACK allows you to operate with 4 user defined views. You will find these at the top of the View Setup dialogue box. You can toggle between four views or just the one view. You can also toggle between the four different views. As well as the View Setup window you can also control the view by holding down the control key and one of the mouse keys. By scrolling with the mouse and trying each of the mouse keys in turn you can see the effect each has on the view. It is also possible to manipulate the view from on the toolbars. There is a refit function, as well as a zoom in and zoom out function. Once you have finished experimenting with the different views, reload the MBS model data from the previous save and you will return to the SIMPACK standard view.
GETS:5.15
On/Off Line Integration Before you will learn how to perform the time integration, here is just a short note on how SIMPACK’s solver algorithm operates. SIMPACK uses a particularly efficient algorithm to generate the equations of motion. It is unlike any other multi-body simulation package in that, it only generates one equation of motion for each degree of freedom which is defined by the user. Later in the guide you will create a double pendulum model (with 2 DOFs), which you will then use to produce a slider crank mechanism (with 1 DOF). SIMPACK will generate two differential equations for the double pendulum model, but only one however for the slider crank model. The slider crank model has the same number of joints, but has a constraint added. This reduces the degrees of freedom from two to one. With the constraint added, the motion of the second body is dependent, via an algebraic equation on the motion of the first body and the restriction applied by the constraint. SIMPACK will therefore only create one equation of motion for the slider crank model. The next stage after setting up the model is for SIMPACK to form the motion governing differential equations and then solve them. The integration of the differential equations can be done either offor on-line. On-line integration is when SIMPACK animates the model whilst performing the integration process. Off-line integration is when
GETS:5.15 -56
On/Off Line Integration
SIMPACK is told for how long to integrate for, using a start and end time. The animation of the model is performed later by SIMPACK.
On Line Integration • To begin integrating on-line select Time Integration from Calculations in the pull-down menu within the 3D Model Setup window. The following window will appear , figure GETS:5.15.24:
Figure GETS:5.15.24: On-Line Time Integration Window
GETS:5.15 -57
On/Off Line Integration
• To save the moving data to animate later, switch the Protocol, at the top of the window, from ✷ No to ✷ Yes • To start integrating the equations and animating the model then click on ✷ Go . The pendulum starts to oscillate about the x axis, which can be seen in the 3D window. The time integration can be followed in the SIMPACK echo area • To stop the integration click on ✷ Stop ✞
✝
✆
• When finished click on OK
Off Line Integration Normally however, the integration that is performed by SIMPACK is off-line. Off-line integration is normally used for large complex models with a large number of degrees of freedom. The CPU time required to integrate the equations may be high, which makes it unfeasible to animate the model whilst performing the time integration. Before starting an off-line integration, SIMPACK must be told what to perform in the integration. SIMPACK must be told the initial start time for the integration as well as the end time. These values must be positive as SIMPACK does not allow you to integrate backwards. SIMPACK also requires the number of communication points. These communication points determine how many times SIMPACK writes data to the results’ files in the integration process. For example, an integration time of 10 seconds with 100 communication points would mean that results are available for every tenth of a second. • From the pull-down menu in the SIMPACK user interface select Calculation Time Integration Configure The Time Integration window will appear and in this window enter the following parameters: Initial Time = End Time = Number of Communication Points =
✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ 0.0 ✝ ✆ ✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ 5.0 ✝ ✆ ✞ ✄✄✄ ✂ ✁✂ ✁✂ ✁ 101 ✝ ✆
The dialogue box should look as follows, figure GETS:5.15.25:
GETS:5.15 -58
On/Off Line Integration
Figure GETS:5.15.25: Off-Line Time Integration Window
GETS:5.15 -59
On/Off Line Integration
• The integration method SODASRT will be automatically selected as the SIMPACK default integration method. SODASRT is SIMPACK’s standard integration integrator which is optimised for a wide range of mechanical systems. You will find that this method is appropriate for almost all cases, however for some certain cases there are other more appropriate solvers available to the user. For example for complicated non-linearities other solver methods are available. The wide range of SIMPACK solvers means that virtually any system can be integrated ✞
Click on the Settings... button to see how the solver settings ✝ ✆ can be changed. The SODASRT window appears, figure GETS:5.15.26:
Figure GETS:5.15.26: SODASRT Window
GETS:5.16 -60
Calculating Measurements
• In this window it is possible to configure how the solver will integrate the equations. However at stay with the defaults ✞ stage, this ✞ in the window. Click on OK or Cancel ✝
✆
✝
✆
✞
✝
✆
• You will be back in the time integration window. Click on Save ✞
✝
✆
and then Exit
Performing the Time Integration Before performing the time integration it is necessary for you to save the model. As mentioned previously when SIMPACK performs a calculation it reads the data from the model files. These files are not updated until the model is saved. To ensure SIMPACK is reading the correct data you must save your model before starting the time integration. SIMPACK is now ready for you to begin the integration process. From the SIMPACK user interface select either from the pull-down menu or click on the Perform Calculation Time Integration Perform Time Integration Time Integration Only toolbar button. The integration process then starts. You can trace the progress of SIMPACK in the Echo Area window. The results from the integration process are written to 5 different files. These files contain information about the state of the model at each of the communication points as well as documentation about the integration process. The results are stored in the subdirectory ‘/output’ of the current directory. The files have the following extensions: *.cmo *.czu *.ide *.intinfo *.ist *.izu If the time integration process is taking too long then it is possible to stop the time integration. This is done from the pull-down menu Calculation Time Integration Stop
GETS:5.16
Calculating Measurements It is necessary to calculate measurements to animate the results of the integration process. The movements of the ensembles are determined by the output data from the sensors. These measurements are the first measurements taken when the perform measurements module is executed. The next measurements taken are those associated with the kinematics, the applied forces, the internal force law variables and the constraint forces. All the results are saved in the subdirectory ‘/output’ of the current directory. To start the perform measurements module, click on the pull-down
Animating the Results of the Integration
GETS:5.17 -61
or click on the Perform Measurements menu Calculation Perform Measurements Full toolbar button.
GETS:5.17
Animating the Results of the Integration The animations that can be performed include: • Time integration • Inverse kinematics • Mode shapes • Externally calculated moving data The animation you will perform is the animation of the time integration results. In the Model Setup window either select Time History from Animation on the pull-down menu or click on the Animation of Time Histories toolbar button. The following window then appears, figure GETS:5.17.27:
Figure GETS:5.17.27: Animation Control Window
GETS:5.0 -62
Animating the Results of the Integration
At the top of the window you will see it says ‘frame number’. There should be the same number of frame numbers as communication points that you entered in the Configure Time Integration window. Therefore there should be 101 frame numbers available. Directly underneath these frame numbers you will see the buttons which you use to control which frame number is displayed in the 3D Model Setup window. Experiment with these pushbuttons✞ to see the effect they have on the animation. Once finished click on OK . ✝
✆
GETS:6. GETS:6.1
The Double–Pendulum
About the Model ‘Double–Pendulum’
Figure GETS:6.1.1: Model Double–Pendulum
GETS:6.1 -64
About the Model ‘Double–Pendulum’
Data for the mechanical system ‘double–pendulum’: Bodies: • Body–1: mass centre of gravity (x,y,z) inertia tensor I
= 4.0 = ( 0, 0, -0.25 ) 10.0 0.0 0.0 0.0 10.0 0.0 = 0.0 0.0 1.0
Additional marker on body–1: built–in–vector with re- = (0.0, 0.0, −0.7) spect to body fixed RefSys
[ kg ] [m] [ kgm2 ]
[m]
• Body–2: mass centre of gravity (x,y,z) inertia tensor I
= =
( 0, 15.0 = 0.0 0.0
2.5 0, -0.5 ) 0.0 0.0 15.0 0.0 0.0 1.0
[ kg ] [m] [ kgm2 ]
Joints: • Joint connecting body-1 and the inertia frame: joint mobility = rotation about x-axis initial joint state = 0.707 [ rad ] initial angular velocity = 0.0 [ rad/s ] • Joint connecting body-2 and body-1: joint mobility = rotation about x-axis initial joint state = -0.2 [ rad ] initial angular velocity = 1.0 [ rad/s ] Gravity: • acceleration due to gravity along z–axis, g = 9.81 [ m/s2 ].
Extending the Pendulum Model to a Double Pendulum
GETS:6.3 -65
Data for the graphic representation of the ‘double–pendulum’: • Geometric parameters of body–1: Body–1 is graphically represented by a prism. y z −0.1 0.0 0.1 definition points = 0.0 0.1 0.0 0.0 −0.7 thickness = 0.05
[m]
[m]
• Geometric parameters of body–2: Body-2 is graphically represented by a cuboid. x y z 0.0 [ m ] Co-ordinates of the = −0.025 −0.025 0.025 0.025 −1.0 cuboid diagonal vector:
GETS:6.2
Extending the Pendulum Model to a Double Pendulum The first body of the double pendulum, which you have just created, looks like the hand of a clock. This has one degree of freedom, which is a rotation about the x axis. This axis is represented by a small cylinder. The second body of the double pendulum looks like a rod and is connected to the first body by a revolute joint which allows rotation about the x axis only. • Make sure the Model Setup window has been closed (i.e. the 3D Model set-up window) • Create a new model which is identical to the pendulum model and name this model double pendulum. If you need help on copying the model refer back to GETS:4.2 • Finally open the pre-processor.
GETS:6.3
Adding a Marker to a Body On all bodies, (including the kinematically driven reference system) markers can be defined. These markers are used as: • Linking points for joints • Linking points for force elements • Reference points for sensors • Select $B Body1 in the MBS Define Body window and then click on Markers ✞
✝
✆
• From the Marker List window that then appears click on New
GETS:6.3 -66
Adding a Marker to a Body
and name this new marker $M Body1 1 Figure GETS:6.3.2 shows how the window should look:
Figure GETS:6.3.2: Marker List for the Body • Double click on the new marker and the MBS Define Marker window appears. This window allows you to edit the built in vector and orientation matrix that describe the marker’s position. These co-ordinates are given relative to the body fixed reference frame The orientation matrix determines a constant orientation of the marker relative to the body fixed reference frame. There are four possible options to determine the orientation: • E-Matrix (Identity matrix) • Cardan angles • 3x3 orientation matrix • 3 points (PQR-vectors) For this model you will stay with the default, the E-Matrix. • However change the built-in position to z=-0.7. Figure GETS:6.3.3 shows how the dialogue box should look: ✞
If you click on Update 3D Scene you will see that a set of axes ✝ ✆ appears at the bottom of the pendulum, where the marker has been added. This marker will be used as an attachment point to the second body. You will attach a joint to this marker which in turn will be
GETS:6.4 -67
Creating a New Body and Adding a Marker
Figure GETS:6.3.3: MBS Define Marker attached to a marker on the second body. Return back to the MBS Bodies window.
GETS:6.4
Creating a New Body and Adding a Marker ✞
✝
✆
In the MBS Bodies window click on New . Enter the name Body2 ✞
✝
✆
and click on OK .
Names of bodies begin with $B SIMPACK will automatically add this for you. When this new body is created SIMPACK automatically assigns default settings for the mass and inertia tensor. SIMPACK also automatically assigns: • A marker to the body • A default 3D geometry including two primitives to represent the body graphically (a co-ordinate axis and default cuboid) • A zero degree of freedom joint which connects this body to the inertia frame • A sensor between the inertia frame and the body fixed frame The MBS Define Body window should have appeared. Enter in the following values for the model:
GETS:6.4 -68
Creating a New Body and Adding a Marker
mass = 2.5 Centre of mass z = −0.5 Ixx = 15 Iyy = 15 Izz = 1 I-Tensor relative to the centre of mass Figure GETS:6.4.4 shows how the completed dialogue box should look:
Figure GETS:6.4.4: Definition of the Second Body ✞
✝
✆
• Edit the 3D geometry by clicking on 3D Geometry • Select $P Body2 cuboid in the Primitives List box ✞
✝ ✞
✆
• Click on Rename and change the name to Rod • Click on Modify to modify this element. The default primitive ✝ ✆ type is a cuboid, which you will keep • Enter the following lengths:
GETS:6.4 -69
Creating a New Body and Adding a Marker
Enter x = y= z=
✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ 0.05 ✝ ✆ ✞ ✄✄✄ ✂ ✁✂ ✁✂ ✁ 0.05 ✝ ✞ ✆ ✄✄✄ ✂ ✁✂ ✁✂ ✁ 1.0 ✝ ✆
These lengths are entered by clicking on each of the input lines ‘length in x’ ‘length in y’ and ‘length in z’ in the parameter box. If you look in the Model Setup window you will see that the rod’s centre is at the origin of the inertia frame. To move the rod, enter in the ‘build in vector box’ the following data: ✞
Shift the cuboid on the z–axis: z = ✝✄✂ ✁✄✂ ✁✄✂ ✁ -0.5 ✆ The Primitive Definition window should look as follows, figure GETS:6.4.5:
Figure GETS:6.4.5: Definition of the Primitive for the Second Body
GETS:6.5 -70
Modifying a Joint
✞
✝
✆
• Select Back To Body Definition to close this window ✞
✝
✆
• You now need to add a marker to this body. Click on Markers ✞
✝
✆
and then select New
• Enter the name as Body2 1 ✞
✝
✆
• Click on Modify and then change the Built-In Position: ✞
Shift the cuboid on the z–axis: z = ✝✄✂ ✁✄✂ ✁✄✂ ✁ -1.0 ✆ ✞
✝
✆
• Click on OK
A marker should appear at the bottom end of the rod. You should now return to the MBS bodies window.
GETS:6.5
Modifying a Joint As mentioned previously when a body is created it is assigned a joint with zero degrees of freedom. This joint is also attached to the inertia frame. The joint on body2 has to be modified so that it is connected to both body 1 and body 2. The joint to be used is a revolute joint about the x-axis. • Select Joints from either the pull-down menu under Elements or click on the toolbar button • Double click on the joint $J Body2. The Define Joint window appears ✞
✝
✆
• Select From Marker i . The Marker List box should appear ✞
✝
✆
• Select $M Body1 1 and click on OK ✞
✞
✝
✆
✝
✆ ✞
• Select To marker j and then select $M Body2 and click on OK
• Select Joint Type and in the Joint List window select ‘Revolute ✝
✆✞
✝
✆
Joint al’ and click on OK
• Enter the initial joint state and velocity as follows: Position = -0.2 Velocity = 1.0 ✞
✝
✆
If the dialogue box looks the same as figure GETS:6.5.6 click on OK
Modifying a Joint
GETS:6.5 -71
Figure GETS:6.5.6: Definition of the Joint $J body2
GETS:6.0 -72
Modifying a Joint
You should now save your model and as described in section GETS:5.15 begin the time integration and model animation. If you can, try performing the time integration without referring back.
GETS:7. Creating and Importing a Substructure to a Model In this section you will build a substructure and then import this substructure into your main model. You will add a third part to the structure which will be another pendulum body. This will be attached to the lower end of the second body. The SIMPACK substructures modelling element facilitates the inclusion of MBS substructures into other models. When building complex models, such as a car with a detailed representation of the suspension system, it may be that some parts of the mechanical structure are identical to other structures or are a mirror image of other structures. SIMPACK allows substructures to be defined, which can be used to reduce the modelling effort required for systems with identical mechanical structures. Any mechanical system model that has been built in SIMPACK can be defined as a substructure. Substructures can be used more than once within the same model and they can also be used in any other model. Example In order to build a model of a car, the suspension system only needs to be defined for one side of the vehicle as a substructure. The suspension system on the other side of the vehicle is created simply by reflecting the substructure which has already been defined.
GETS:7.1
Creating a Substructure The substructure will be completely separate to the main model. If changes are made to the substructure then it is not necessary to update the substructure in the main model as this is done automatically by SIMPACK. This is a particularly useful feature when the substructure is used by a number of models. Ensure that the pre-processor is running with the double pendulum model. You should also save the model. You will use the body $B Body2 as the basis of the substructure. You will remove $B Body1 and then save the model as a different name. This model will now be used as the substructure. First of all it is necessary to change the ‘From marker’ of joint $J Body2. This marker is currently attached to a marker on body $B Body1. SIMPACK will not allow you to remove $B Body1 until the joint is connected to another structure. When the body is removed all the markers, joints etc. will also be removed.
GETS:7.1 -74
Creating a Substructure
• In the Joints dialogue box select $J Body2. For the ‘From marker i’ you should select the inertia frame $M Isys You will see that $B Body2 moves and is now attached to the inertia frame. • You should now remove $B Body1. This is done by going into the Bodies window. You should select this body and click on button ✞ Remove . The Remove MBS Element window appears which ✝
✆
✞
shows all the elements which will be removed. Click on OK to ✝ ✆ confirm that you want to remove all these elements What you are left with is the substructure that you will import into the main model. • In the 3D Model Setup window you should click on the Save As toolbar button. Name the MBS configuration as pendulum substructure • You should now click on the Reload MBS toolbar button in the 3D Model Setup window. This reloads the previously saved model double pendulum You have now created the substructure under the filename pendulum substructure, which can be imported into the double pendulum model. • You should either click on the Substructures toolbar button or click on Substructures from within Elements. The Substructures window will appear. ✞
• In this window click on New and the SIMPACK Substructure ✝ ✆ window will appear. It is from within this window where you select which file will be loaded. ✞
• Click on File . The MBS Element Info List window appears. ✝ ✆ This window displays all the files within the current directory. Any of which could be used as a substructure • Select the substructure you have just created, pendulum substructure and in Name in the MBS, enter Body3. The names of all substructures begin with $S SIMPACK will automatically assign this for you. The window should look as follows, figure GETS:7.1.1:
GETS:7.1 -75
Creating a Substructure
Figure GETS:7.1.1: Substructure Dialogue Box ✞
• Finally click on Load substructure . The substructure which ✝ ✆ you have just created will appear and is attached to the origin of the inertia reference frame. It is necessary to attach the end of the substructure to the body $B Body2 • Open the MBS Elements Joints window. You will now see the joint $J S body3 J body2. Double click on this joint and change the ‘From Marker i’ to $M body2 1, which is a marker at the bottom of $B Body2 The 3D Model Setup window should look as follows, figure GETS:7.1.2:
Figure GETS:7.1.2: On-Line View of the Structure
GETS:7.0 -76
Creating a Substructure
• It is now possible to perform the time integration • For the next stage of the Getting Started the substructure is not required and should be removed. This can be done by clicking on ✞ Remove in the Substructures window with $S body3 selected ✝
✆
For more information on substructures see section: HWTU:2.6 in the how to use section of the documentation or section SIMREF:4.12 in SIMPACK fundamentals.
GETS:8. Adding a Force Element to the Double Pendulum Model In this chapter you will attach a spring between a marker at the end of the body named hand and a marker on the inertia frame.
GETS:8.1
Adding the Force Element Data for the mechanical system ‘double pendulum force’: The force element is a spring–damper combination placed between the head of the hand and a marker on the ‘inertia frame’. Coupling points of the spring: • head of the hand: (marker $M Body1 1) • new marker on the inertia frame: built–in vector = 0 1.7 0.0 Data • • •
for the spring: length of the unloaded spring: lo = 0.5 m stiffness of the spring: c = 50 N/m damping coefficient of the spring: d = 5 Ns/m
You will use the double pendulum model as the basis for the new model; double pendulum force. Copy the double pendulum model to double pendulum force and open the new model. Start the pre-processor by clicking on the Model Setup toolbar button You will define a spring-damper between a new marker on the inertia frame (marker $M I1 on inertia frame $B Isys) and the head of the hand ($M Body1 1 on body $B Hand). • First you must create the coupling point $M I1. Modify the inertia frame $B Isys and create the new marker $M I1 • Set the built-in position to y=1.7. If you are having problems refer back to GETS:6.3 under adding a marker to a body • Select Force Elements from under Elements in the pull-down or from the toolbar and menu Elements Force Elements create a new force element and call it Force1 ✞
• Select From Marker k in the MBS Force Element box and ✝ ✆ pick marker $M I1 as the first coupling point
GETS:8.1 -78
Adding the Force Element
✞
• Select To Marker l as the second coupling point and pick ✝ ✆ marker $M Body1 1 ✞
• Click on Force Type . The Force Type List window opens, ✝ ✆ which contains a list of the different force types. The different force types are located in folders, i.e. for a tyre force element, then opening the folder ‘Tyres’ will display the available tyre force elements see fig GETS:8.1.1.
Figure GETS:8.1.1: Force Element Folders Select the force Spring-Damper parallel PtP, is located in ✞ which the ‘Spring-Damper’ folder. and click on OK • Enter the following spring parameters: length of the unloaded spring: l0 = stiffness of the spring: c = damping coefficient of the spring d =
✝
✆
✞✄ ✄ ✄ ✂ ✁✂ ✁✂ ✁ 0.5 ✝ ✞ ✆ ✄✄✄ ✂ ✁✂ ✁✂ ✁ 50 ✝ ✞ ✆ ✄✄✄ ✂ ✁✂ ✁✂ ✁ 5 ✝ ✆
Figure GETS:8.1.2 shows how the MBS Force Element box should look:
GETS:8.1 -79
Adding the Force Element
Figure GETS:8.1.2: MBS Force Element
GETS:8.1 -80
Adding the Force Element
✞
✝
✆
Click on OK and save your model You can now integrate the model and then animate it. The double pendulum force model should now oscillate about a new equilibrium position.
GETS:8.2 -81
Plots of the Results
GETS:8.2
Plots of the Results In SIMPACK there are two different ways of creating plots of the results of an integration. The quicker way is via the 2D state plot. The other way to produce plots is via the 2D general plot module. The 2D state plot module can be run immediately after the time integration, but can plot only the joint states. The 2D general plot uses the results from the sensors. Once the measurements have been performed it is possible to see the dynamic relationship between any two sensors on the body.
2D State Plots of the Joint States and Velocities The 2D state plots can be accessed through either the pull-down menu on the user interface or by clicking on the state plot toolbar button. • Open the PostProcessing: 2D Plots of State window • Select in this window zg(1):$J Body1 . This will display the position in time of the joint $J Body1. This can be seen in the figure below, figure GETS:8.2.3:
Figure GETS:8.2.3: 2D Plot of States • Try clicking on some of the other plots that are available. zgp is velocity whereas zg is position. The various different plots are brought up in the window as you click on them
General 2D plots If you would like customised plots of the time integration results then it is necessary to use 2D general plots. To use this module it is necessary to calculate the measurements, after the time integration has been performed. • Click on the Perform Measurements toolbar button or from the
GETS:8.2 -82
Plots of the Results
Pull-down menu click on Calculation Perform measurements Full
• Select General Plots from either the toolbar or from the pull-down menu under PostProcess • The SIMPACK 2D window appears, in which you can configure the plotting window. This window contains a sub-window with the General Plot, plotting area. You can have up to 50 different pages containing up to 12 different active plots • In the figure position matrix click inside the top left hand frame • Ensure that curve 1 is selected ✞
✝
✆
• Select axis x and click on Modify . Select time as the variable ✞
• Select axis y and again click on Modify . Select State✝ ✆ Vector X and in the window ‘Select MBS choose ✞ Element’ joint.st.pos(1):$J Body1 and click on OK A plot should ✝ ✆ appear showing the variation of joint state $J Body1 with time • As mentioned it is possible to add a further curve to this plot. Select curve 2 and as you have just done select time as the x axis and then select joint $J Body2 as the variable for the y axis. SIMPACK will display both these curves on the same set of axes • You can also add a further plot to this window, but on separate axes. In the figure matrix click on the square in the matrix shown, figure GETS:8.2.4:
Figure GETS:8.2.4: Where to Click
GETS:8.2 -83
Plots of the Results
• Select time as the x axis
✞
✝
✆
• Select axis y and click on Modify • Select Applied Force
• The ‘Select MBS Element’ window appears and in this window you will see $F Force1 and select the co-ordinate y as shown in figure GETS:8.2.5
Figure GETS:8.2.5: Select Force Window There should now be two plots in the window. One showing the time history of the joint states, the other shows the time history of the applied force. The view of the window should look as follows, figure GETS:8.2.6.
GETS:8.3 -84
Static Equilibrium
Figure GETS:8.2.6: 2D General Plot Window Try adding more curves to this plot page and in different plot pages. • Once finished select Exit from File on the pull-down menu. It will then ask you if you wish to save the 2D configuration before closing. If you would like to have the same plot windows next time you open the general✞plots window in this file, then click on ✞ Yes , otherwise click on No ✝
GETS:8.3
✆
✝
✆
Static Equilibrium SIMPACK is able to calculate the static equilibrium of the multi-body system. A system is said to be in static equilibrium when the sum of all the accelerations is zero. The velocities may not necessarily be zero when the system is in static equilibrium. For example, a car travelling along a flat road at constant velocity is said to be in static equilibrium. There are various different iteration methods available for solving the non-linear set of equations. The default setting is Newton’s method. • Set the velocities of the joints to zero and then save the model • Under Calculation on the pull-down menu in the SIMPACK user interface select Static Equilibrium (there is also a static equilibrium toolbar button). The Static Equilibrium window appears, figure GETS:8.3.7:
GETS:8.4 -85
Calculation of the Nominal Force Parameters
Figure GETS:8.3.7: Static Equilibrium Window ✞
✝
✆
• Keep all these settings and then click on Perform
The SIMPACK Static Equilibrium Results window appears with both states when the system is in static equilibrium. Click ✞ joint on OK ✝
✆
• Click on Save and when the SIMPACK Save window appears keep the default saves. It is necessary to save the states if you wish to display the static equilibrium of the model. You will return to ✞ the Static Equilibrium window where you should click on Exit ✝
✆
• In the Model Setup window either click on the toolbar button Reload MBS-model or from the File pull-down menu click on Reload. The static equilibrium position of the model will now be displayed in the Model Setup window
GETS:8.4
Calculation of the Nominal Force Parameters The nominal force parameters module determines the parameters for the force elements so that the system is in equilibrium at a given po-
GETS:8.4 -86
Calculation of the Nominal Force Parameters
sition. This can be seen as the complementary function to the static equilibrium module. Both these modules work out when the system is in static equilibrium. The difference is: • Static equilibrium calculates the position in which the model is in equilibrium with a defined set of physical constraints • Nominal force parameters calculates the necessary physical parameters, so that the system is in equilibrium at a given position First of all you must set the joint states • Set joint state $J Body1=1.0 • Set joint state $J Body2=-1.0 • Set velocity of both joints to zero • Click on Calculation from the pull-down menu in the user interface and then on Nominal Force Parameters or click on the Nominal Force Parameters toolbar button. The Nominal Force window appears, figure GETS:8.4.8. Stay with the Default values for the solution method
GETS:8.4 -87
Calculation of the Nominal Force Parameters
Figure GETS:8.4.8: Nominal Forces Window • You must now select which of the force parameters will be determined by SIMPACK in the nominalforce calculations. Click on ✞ Selection of Force Parameters . The Nominal Force Param✝ ✆ eter List window appears ✞
• Click on New to define a new force element to be added to the ✝ ✆ nominal force parameter list. The Nominal Force Element List window appears • Select the only force available $F Force1. The Select Nominal Force Parameters window appears For this analysis you will calculate the force required from the spring for the system to be statically determined. ✞
• In this window select Stiffness and click on OK and you will ✝ ✆ then return to the Nominal Force Parameters List window. This should now look as follows, figure GETS:8.4.9: ✞
• Click on OK and you will now be back to the Nominal Forces ✝ ✆ window
GETS:8.5 -88
Eigen Behaviour
Figure GETS:8.4.9: Nominal Forces Parameter List ✞
• Click on Perform and SIMPACK will display the spring force ✝ ✆ required for the system to be in static equilibrium ✞
✝
✆
• Click on OK and you will then return to the Nominal Forces ✞
window. Click on Save to save the results for comparison with ✝ ✆ the eigenvalue solution. Keep the default save settings and then ✞ click on Exit ✝
GETS:8.5
✆
Eigen Behaviour The SIMPACK Eigenvalue module linearises the non-linear equations of motion and calculates the eigenvalues and eigenvectors. The state about which the linear equations can be calculated include: • Nominal state x 1, used as the initial state for the time integration • Linearisation state x 1, used as the initial state for the time integration • End state, x end of integration run 1 • End state, x end of integration run 2 • An arbitrary state x i calculated by time integration from t=t 0 to t=t end in i=1 to ntout steps • Either select Eigenvalues from the pull-down menu or click on the Eigenvalues toolbar button. The Eigen Values window appears figure GETS:8.5.10 • Choose initialstate as the state for linearisation and then click ✞ on Perform . The eigenvalues are displayed in this window ✝
✞
✆
✝
✆
• Click on Exit to close this window
Animation of the Mode Shapes It is possible for SIMPACK to display the mode shapes in the 3D Model Setup window.
Eigen Behaviour
GETS:8.0 -89
Figure GETS:8.5.10: Eigen Values Window • Click on animation from the pull-down menu in the 3D window and then select Mode Shapes. The SIMPACK animation control window appears • Select one of the two natural frequencies displayed in the list box and then click on the play button as shown. SIMPACK begins the animation of the selected mode • Click on the stop button and then select the other mode which can be animated in the same way
GETS:8.0 -90
Eigen Behaviour
GETS:9. Addition of a Force Element to be Used as a Bump Stop In this section a force element will be placed in between the inertia frame and the bottom of the second body ($B body2). The model double pendulum will be used as the basis for this exercise. This force element is a single sided contact element. The behaviour of this element will therefore be non-linear over time. When integrating over time these sudden changes can often cause problems for integration modules. If the step size is too large then the integrator may not ‘see’ a discontinuity which is present and may carry on the integration process as if it didn’t exist. The solver in SIMPACK is particularly adept when coming across discontinuities. The following exercise will demonstrate SIMPACK’s capabilities in this area of Multi body system dynamics. • Exit the pre- and post-processor and then copy the douName this copied model double pendulum model. ble pendulum bumpstop. You should then open this model • Open the MBS Force Elements window and create a new force element. Call this new force element bump • Select the Force element type ”Unilateral Spring-Damper Cmp”, which is found under the tree item: ”Contact.” • Select $M Isys as the ‘From Marker k’ • Select $M body2 1 as the ‘To Marker l’ • In the line ‘Contact for y greater than 0’ you should enter in the value -1 000 000 ✞
✝
✆
• Finally click on OK to close the MBS Force Element window It is now necessary to perform the time integration to see the effect that this bump stop has on how the pendulum behaves. To see what happens within the SIMPACK solver it is best to use the Off-line time integration module. • Open the SIMPACK Time Integration window from the SIMPACK user interface window. Calculation Time Integration Configure • The SODASRT integration should already be selected, if not select it from✞the pop-down menu ‘Integration Method’. Click on the button Settings... The ‘Time Integration - SODASRT’ win✝ ✆ dow will appear. You have the choice under Root Functions,
GETS:9.0 -92 GETS:9. ADDITION OF A FORCE ELEMENT TO BE USED AS A BUMP STOP
whether SIMPACK will Ignore or Locate State Events. You should select ‘Locate State Events’. By selecting Roots enabled, SIMPACK will detect when a root is found and change the integration step size accordingly. This ensures these discontinuities within the integration process are picked up by the solver ✞
• Click on OK to return to the Time Integration window. You ✝ ✆ should set the End time as 25 and the number of communication points as 1000 • Exit this window and start the SIMPACK time integration module. In the SIMPACK Echo Area TimeInt window you can follow the process of the SIMPACK solver. As you have told SIMPACK to detect the roots, you will see that as the solver progresses, that each time the SIMPACK solver detects a root it will display this in the Echo Area • You should now animate the model and see the effect this bump stop has on the motion of the double pendulum system
GETS:10. GETS:10.1
A Slider Crank Mechanism
About the Slider Crank Mechanism
Figure GETS:10.1.1: Slider Crank Model In this final section of Getting Started you will learn how to develop the double pendulum force model into a slider crank mechanism. You will restrict the motion of the marker at the end of the second body so it is free to move only in the y direction.
GETS:10.2
Extending the Double Pendulum Force Model to a Slider Crank • Exit the pre- and post-processor and then copy the double pendulum force model. Name this copied model slider crank. • Enter the pre-processor so the 3D Model Setup window appears • You should now modify the joint states so they are as follows: Joint $J Body1 state=-0.2 and velocity=0.2 Joint $J Body2 state=0.4 and velocity=0.0 Reset force parameter to c=50N/m
GETS:10.3
Defining a Constraint (Closed Loop) A ‘Constraint’ is used in SIMPACK to create kinematically closed systems. The constraint restricts the relative motion between two markers.
GETS:10.3 -94
Defining a Constraint (Closed Loop)
SIMPACK distinguishes between ordinary joints and constraints as doing so allows SIMPACK to create the minimum number of equations required to define the system. This constraint will be defined between two markers. • Click on Constraints from within the Elements pull-down menu or click on the Constraints toolbar button • Create a new constraint with the name $L Loop (The procedure is the same as for creating a new body). Double click on this constraint and the Define Constraints window appears. SIMPACK automatically defines this constraint from the inertia frame marker ‘i’ to the inertia frame marker ‘j’. All the rotational and translational constraints are, by default, set to zero • Select marker $M I1 as Marker i • Select marker $M Body2 1 as Marker j ✞
• Click on Constraint Type . The Constraint List window ap✝ ✆ pears ✞
• Select the User Defined Constraint and click on OK you ✝ ✆ will now return to the Define Constraints window • Click on the input line Lock Transl. in z of M K and in the SIMPACK Flags window that then appears select ‘locked.’ The Define Constraints window should look as follows, figure GETS:10.3.2:
GETS:10.4 -95
Dependent and Independent Joints
Figure GETS:10.3.2: Define Constraints Dialogue Box
GETS:10.4
Dependent and Independent Joints In systems with closed loops, due to the kinematic tree structure, there are more joint state variables than are required to define the position of the system. For a system to function there must be the same number of dependent variables as loop closing conditions. SIMPACK’s default setting for joints is dependent. For this example, with two joints and one constraint, it is not possible for the user to define joint states for both joints as it is likely that the constraint would no longer apply. The position of the dependent joint will be determined by both the constraint and the other joint state. What this means in SIMPACK is that dependent joint states are determined by both a combination of the independent joint states and the restrictions imposed by the constraints. ✞
• In the Define Constraints window click on Assemble System ✝ ✆ If there are the same number of loop closing conditions to dependent joint states then SIMPACK will calculate the initial position and then display it in the 3D window, otherwise SIMPACK will
GETS:10.4 -96
Dependent and Independent Joints
start the Check State Dependence window. Your model currently has two dependent joints, that means the Check State Dependence window will open. At the top of this window SIMPACK states what the problem with the model is • In this window select joint state joint.st.pos(1):$J Body1 • In the window that then appears select Independent State. The Check State Dependence window should look as follows, figure GETS:10.4.3:
Figure GETS:10.4.3: Check State Dependence Dialogue Box ✞
• Click on OK . You will then be back at the Define Constraints ✝ ✆ window ✞
• Click on Assemble System . SIMPACK will now calculate the ✝ ✆ new initial position The model should look as follows, figure GETS:10.4.4:
GETS:10.4 -97
Dependent and Independent Joints
Figure GETS:10.4.4: View of the Constraint ✞
✝
✆
• Click on OK
GETS:10.5 -98
GETS:10.5
Exercises
Exercises • Save your model • Perform time integration, static equilibrium, eigenvalues, etc • Try varying the initial state and velocity of $J Body1 in MBS Define Joint and calculate the new initial positions. It is interesting to see how the slider crank responds to different initial states and velocities • You can also try changing joint1 to dependent and $J Body2 to independent and then editing the state and velocity of joint2. It is possible to edit whether the joints are independent or dependent in the MBS Define Joint dialogue box. If you click on the input line Initial State then in the window that then appears you have the choice whether the joint is dependent or independent
GETS:10.6 -99
On-line Kinematics
GETS:10.6
On-line Kinematics You will use the slider crank model you have developed. You will learn how to manipulate the joint states on-line and display their position in the Model Setup window. You will do this by controlling the state of $J Body1 with the use of an interactive slider bar. • Copy the slider crank model to slider crank online kinematics and open this model in the pre-processor • Ensure that joint $J Body1 is as follows: State =-0.2 and velocity=0.2 • Check, within the Joints Modelling Element, that joint $J Body2 is dependent and joint $J Body1 is independent
Defining a Slider Bar Slider bars are used in on-line kinematics to control the motion of the model. The slider bars are used in the Kinematics window. • Click on Kinematics from the pull-down menu Calculations in the 3D Model Setup window. The Kinematics window will ap✞ pear. Click on Define Interactions as shown below, figure ✝ ✆ GETS:10.6.5:
GETS:10.6 -100
On-line Kinematics
Figure GETS:10.6.5: Define Interactions The SIMPACK 3D MBS interactions window appears • Click on the pop-text item Interaction 1 and you will see that up to 6 different on-line interactions can be defined. Each of these corresponds to an interaction in the Kinematics window. Select Interaction 1 • Click on the pop-text window Parameter Type and in the pop text window that appears select Joint Position State. The SIMPACK MBS Element window appears with the two joints. As you are going to control the state of joint $J Body1 then select this joint • Enter the following information: ✞
Parameter Id: ✝✄✂ ✁✄✂ ✁✄✂ ✁ 1 ✆ ✞ Initial Value: ✝✄✂ ✁✄✂ ✁✄✂ ✁ -0.2 ✆
GETS:10.7 -101
On-line Kinematics
✞
Increment: ✝✄✂ ✁✄✂ ✁✄✂ ✁ 0.15 ✆ ✞ 3D–description text: ✄✂ ✁✄✂ ✁✄✂ ✁ joint state body1 ✝
✆
The window should look as follows, figure GETS:10.6.6:
Figure GETS:10.6.6: MBS Interactions ✞
✞
✞
• Click on Apply and then OK and then click on OK in the ✝ ✆ ✝ ✆ ✝ ✆ Kinematics window • Save your model
Interactive Kinematics • Open the Kinematics window again from the Calculations pulldown menu in the 3D Model Setup window. You will see that the first slider bar is named as joint state body1. You can now use this slider bar to control the model • Click on the slider with the mouse and you will then be able to move the slider bar using the mouse, which in turn will control the state of joint $J Body1 as shown in figure GETS:10.6.7: ✞
✝
✆
• Once finished click on OK
GETS:10.7 -102
Inverse Kinematics
Figure GETS:10.6.7: Interactive Kinematics
GETS:10.7
Inverse Kinematics In this section you will learn inverse kinematics. This module calculates the forces and accelerations occurring when a model moves through a predetermined motion. A constant velocity or velocity profile could be used to describe the motion of a joint. In this section you will modify the joint of Body1 so it is a constant velocity joint. The model must be completely statically determined (0 degree of freedom) if you wish to perform on-line kinematics. SIMPACK has joints which have a completely determined motion and therefore 0 degrees of freedom. You will use one of these joints in this example. They are normally referred to as rheonomically driven joints.
Inverse Kinematics
GETS:10.7 -103
• Copy the slider crank model to slider crank inv kin • Change joint $J Body1 to a constant angular velocity joint, figure GETS:10.7.8
Figure GETS:10.7.8: Selection of the Rheonomically Driven Joint • Change the other parameters for the joint so they are as follows: Model Data of the modified joint $J Body1: Type : Joint with constant velocity Axis : Rotational motion about x–axis initial state of the joint : -0.2 [rad] constant angular velocity : 0.5 [rad/s] The MBS Define Joint window should look as follows, figure GETS:10.7.9:
GETS:10.7 -104
Inverse Kinematics
Figure GETS:10.7.9: Joint Definition ✞
✝
✆
• Click on OK
Configuration of the Inverse Kinematics Solver Before starting the inverse kinematics module you must configure the solver, as you did for the off-line integration module. • In the SIMPACK user interface, from Calculations on the pull-down menu select Inverse Kinematics and then Configure Calculations The Inverse Kinematics window Inverse Kinematics Configure appears. Enter the following data: Initial Time = 0.0 End Time = 100 Number of Output Points = 200 Initial and end time define when the inverse kinematics starts and stops. The number of output points refers to how many times SIMPACK saves the results within the simulation. • Select First Positions then Velocities The window should
GETS:10.0 -105
Inverse Kinematics
look as follows, figure GETS:10.7.10:
Figure GETS:10.7.10: Inverse Kinematics Window ✞
✞
✝
✆
✝
✆
• Click on Save and then on Exit • Save your model
Performing Inverse Kinematics You are now ready to start the inverse kinematics module. • From the SIMPACK user interface select Calculations from the pull-down menu and then Inverse Kinematics and then Perform. SIMPACK starts the calculation. The progress of the solver is shown in the SIMPACK Echo Area If the calculation is taking too long you can stop the solver module by clicking on stop under Calculation and then Inverse Kinematics from the pull-down menu. • It is now possible to animate the results. You must first perform measurements from the SIMPACK user interface. You should animate the time history and then open the General Plots window where you can plot the joint positions, accelerations as well as the forces applied • It is also possible to integrate the model on-line from within Calculations in the Model Setup window
GETS:10.0 -106
Inverse Kinematics
GETS:11.
How to Move On
You have now completed the getting started guide and you should now have a good understanding of how to use SIMPACK to build your own MBS model. You can now go on and build your own models in the SIMPACK pre-processor. Once you have defined your model in SIMPACK, you should be able to solve it and then manipulate the results within the post-processor. For a brief description of the available SIMPACK handbooks see the section ‘What to find where.’