Model Module#
Model Class#
The Model class serves as a container for all the entities that comprise
a MotionSolve model. Interacting with the model is possible through the numerous
methods that are listed below.
Defines a control command for one or more simulations.  | 
|
Generate a state space representation of the model in the form of state matrices A, B, C, and D in the desired format.  | 
|
Perform eigen-analysis of the model, generate eigenvalues and mode shapes.  | 
|
Performs a frequency response analysis of the model  | 
|
Creates plt and animation h3d files.  | 
|
Reset the model.  | 
|
Run SimulationEvent objects sequentially.  | 
|
Saves a snapshot of the model.  | 
|
Sends the model to the solver and runs the simulation.  | 
|
Sends the model to solver and performs a verification analysis.  | 
Model Entities#
The entities listed below are used to create your model. These elements co-exist
under the Model class and interact with each other in well-defined ways
in order to represent a realistic multibody system.
Defines the acceleration due to gravity along the global X, Y, and Z directions.  | 
|
Generates an arc graphic defined by a center marker, a radius or reference marker, and an angle.  | 
|
Specifies a list of instances of type   | 
|
Defines a straight, massless beam of uniform cross-section acting between two Markers, i and j that belong to two different bodies.  | 
|
Creates a rectangular 3D graphic.  | 
|
Defines a massless bushing between two Markers, i and j that belong to two different bodies.  | 
|
Creates a force element which establishes linear force-displacement (stiffness) and/or force-velocity (damping) relationships between markers connected by higher-pair constraints.  | 
|
Creates a circle graphic defined by a center marker and a radius.  | 
|
Performs a one-/two-way coupled Leader/Follower simulation by instantiating separate MotionSolve processes.  | 
|
Defines a 3-D contact force between geometries on two rigid or flexible bodies.  | 
|
Defines an algebraic relationship between the degrees of freedom of two or three joints.  | 
|
Defines a parametric curve in 3D space.  | 
|
Creates a curve graphic that represents a   | 
|
Defines a (Curve to Curve) higher pair constraint.  | 
|
Defines a (Curve to Surface) higher pair constraint.  | 
|
Creates a 3D graphic with straight parallel sides and a  circular cross-section along the z-axis of the cm   | 
|
Creates a contact force between two instances of   | 
|
Creates a contact force between a   | 
|
Outputs data that helps you debug your simulation.  | 
|
Specifies a deformable curve that is made to pass through the origins of a specified set of markers, using CUBIC spline interpolation.  | 
|
Creates a curve graphic that represents a   | 
|
Specifies a deformable surface that is made to pass through the origins of a specified set of markers, using CUBIC spline interpolation.  | 
|
Creates a surface graphic that represents a   | 
|
Creates a user-defined state variable and defines a first-order differential equation that describes it.  | 
|
Creates a contact force between two   | 
|
Defines a special type of solver state variable.  | 
|
Creates a 3D graphic where its cross-sectional planes consist of ellipses or  circles, with the center aligned to the cm   | 
|
Specifies error tolerances and other parameters for static and quasi-static equilibrium analyses.  | 
|
Creates a graphic object defined using an external file.  | 
|
Defines a force or torque in the frequency domain.  | 
|
Applies a translational and rotational action-reaction force between two markers.  | 
|
Defines a flexible body object in MotionSolve.  | 
|
Creates a Functional Mock-up Interface used for Model Exchange and Co-Simulation.  | 
|
Creates an arrow representing a force acting on the specified entity.  | 
|
Defines a frequency excitation.  | 
|
Applies frictional forces in a joint.  | 
|
Creates a 3D graphic of a portion of a cone.  | 
|
Specifies a user defined general constraint.  | 
|
Creates a contact force between a   | 
|
Creates a contact force between a   | 
|
Defines a gear constraint between two bodies.  | 
|
Defines a general force and torque acting between two markers.  | 
|
Defines a set of nodal coordinates in 3D space.  | 
|
Defines a generic dynamic system.  | 
|
Defines the parameters for the animation output file.  | 
|
Specifies parameters that control the dynamic analysis integrator.  | 
|
Creates an idealized connector between two bodies.  | 
|
Removes degrees of freedom between two bodies by specifying conditions in which the relative translational or rotational motion can occur.  | 
|
Creates a graphic that connects a number of vertices with straight lines.  | 
|
Specifies the solver parameters that control the linear analysis.  | 
|
Defines a linear dynamic system.  | 
|
Defines an orthonormal, right-handed coordinate system and reference frame in MotionSolve.  | 
|
Specifies general mating constraints between geometric primitives based on  | 
|
Defines a general, real-valued, M x N matrix for use in MotionSolve.  | 
|
Defines a distributed force on a   | 
|
Specifies a system degree of freedom as an explicit function of time.  | 
|
Defines a publisher for MQTT communication.  | 
|
Defines a subscriber client for MQTT communication.  | 
|
Creates a multi-point force element which establishes linear force-displacement (stiffness) and/or force-velocity (damping) relationships between many markers.  | 
|
Creates a set of flexible body properties with the goal to more accurately capture the mode shapes based on Predictive Component Mode Synthesis theory.  | 
|
Creates line segments between the various cm   | 
|
Specifies if the plt, abf, mrf files are to be generated during the solver run.  | 
|
Defines a rigid body object in MotionSolve.  | 
|
Defines a penalty force whose purpose is to maintain a soft constraint in the system.  | 
|
Defines the inputs (type   | 
|
Creates a plane graphic expressed in respect to the rm   | 
|
Base class for   | 
|
Creates a graphic point located at the origin of the reference   | 
|
Defines an entity that has mass but no inertia properties.  | 
|
Defines a list of outputs (type   | 
|
Defines a sensor between two bodies which monitors their minimum separation.  | 
|
Creates a container for Solver Variables that are used in generating a linear representation of a model about an operating point.  | 
|
Defines a (Point to Curve) higher pair constraint.  | 
|
Defines a (Point to Deformable Curve) higher pair constraint.  | 
|
Creates a contact force between a   | 
|
Defines a (Point to Deformable Surface) higher pair constraint.  | 
|
Creates a soft constraint (force) that attempts to maintain a    | 
|
Defines a (Point to Surface) higher pair constraint.  | 
|
Defines an output request entity in MotionSolve.  | 
|
Calculate and display the instantaneous axis of rotation.  | 
|
Defines a special type of solver state variable.  | 
|
Defines a Scope Plot.  | 
|
Defines an event sensor in the model.  | 
|
Defines a force or torque acting between two   | 
|
Defines a (Surface to Surface) higher pair constraint.  | 
|
Defines an event in MotionSolve and adds it to a list.  | 
|
Creates a 3D graphic whose plane sections are circles and cm   | 
|
Defines a 2D or 3D spline for use in MotionSolve.  | 
|
Defines a spring damper acting between two   | 
|
Creates a spring damper geometry.  | 
|
Defines a user defined text string in MotionSolve.  | 
|
Defines a parametric surface element in 3D space.  | 
|
Creates a surface graphic that represents a   | 
|
Defines a transfer function as a ratio of two polynomials in the Laplace domain.  | 
|
Specifies parameters that control the time-domain-based nonlinear dynamic analysis.  | 
|
Creates a graphic object defined using 'Nodes' and 'Faces'. You can populate  | 
|
Defines the units for the model.  | 
|
Defines a user-written Post-Subroutine.  | 
|
Creates a user-defined (Grasub) geometry.  | 
|
Defines a user-written Message-Subroutine.  | 
|
Defines a variable in terms of a scalar algebraic equation in MotionSolve.  | 
|
Defines a vector force that consists of three orthogonal components.  | 
|
Defines a vector torque that consists of three orthogonal components.  | 
|
Creates a Force State Equation.  | 
Result Objects#
msolve has special classes and methods to extract and store the results of a simulation. These objects provide a practical and convenient platform for post-processing.
The following process map explains the different ways you can obtain the results of a simulation.
Comments
SimulationResultsandSimulationResultsHistoryare the classes tasked with managing the results of the simulation.Container object that encloses all the results from a single simulation.
A list that can be used to store, serialize and de-serialize SimulationResults for cross plotting.
Run a
SimulationEventor use theModel.simulatemethod with thereturnResultsattribute set to True. This instructs msolve to store the results to aSimulationResultsobject and return it to the caller.Run a
SimulationEventor use theModel.simulatemethod withstoreattribute set to True. This instructs msolve to add theSimulationResultsobject to a list,SimulationResultsHistory.Use the
SimulationResults.asDataFramemethod to get the results as a dictionary of Pandas dataframes.Use the
SimulationResults.getObjectmethod, specifying the entity whose results are to be extracted.This entity can be a
Body, aRequest, aFrequencyInput, or aRv.Depending on the type of entity a
ResultObjectis returned. It can be one of:Base class for all the result objects of a simulation.
Contains all the results associated with a single Part of the model.
Frequency Response Simulation results for body.
Contains results associated with a single FlexBody of the model.
Contains all the results associated with a single PointMass of the model.
Contains all the results associated with a single Request of the model.
Contains all the results associated with a single Request of the model for a FrequencyResponse analysis.
Frequency Response Simulation results for FrequencyInput.
Contains all the results associated with a single Rv of the model.
Use one of the methods
ResultObject.getStep,ResultObject.getDataFrame,ResultObject.getComponentto extract the desired results.
Note
There is a wide range of libraries available in python for data post-processing, that can be used in conjunction with msolve.
Base Classes#
Base classes are used in class derivation. They group model entities according to their functionality and they cannot be used standalone.
Base class for analysis settings objects.  | 
|
Base class for Body objects.  | 
|
Base class for command objects.  | 
|
Base class for constraint objects.  | 
|
Base class for force objects.  | 
|
Base class for generic modeling elements.  | 
|
Base class for graphic objects.  | 
|
Base class for   | 
|
Base class for reference data objects.  | 
|
Base class for output objects.  | 
Class Aliases#
Class aliases are alternative names for specific model entities.
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   | 
  | 
alias of   |