97 Reputation

6 Badges

11 years, 364 days

MaplePrimes Activity

These are answers submitted by OrangVahid

The flexible beam has adjustable number of elastic coordinates for bending (one for y, one for z), for axial, and for torsion.
For bending, "1" is too stiff, "2" will give exact results for cantilever (and very good results most other boundary conditions). You may need more than "2" if there are additional constrains between the beam ends...

In your model,
y := P*L^3/(3*E*Iy) + k*L^4/(8*E*Iy)
subs([L = 1, P = 1000*9.81, E = 0.210e12, Iy = 0.05*1/12*0.1^3, k = (0.05*9.81*7850)*0.1], y)

--> 0.003792148928

if I set ECy to 2, MapleSim gives exactly the same.

In MapleSim 2021.1
Under: Generating Equations>Assembling Flat Model>Retrieving Multibody Data, you can see:
List of generalized coordinates: [`Main.R1.theta`(t), `Main.R2.theta`(t), `Main.R3.theta`(t), `Main.R4.theta`(t), `Main.R5.theta`(t)]

So the cut joint is R6, which is the one highlighted. MapleSim identifies the redundant DoF and generates 2 constraint equations (corresponding to the joint raction forces also highlighted):
Multibody system modeled with 5 generalized coordinate(s) coupled by 2 algebraic constraint(s).


Hi Ivar,

The port Medium parameters being all ones is filed for the developer to look at. IT shoud just show the "medium" record parameter (which contains all the others).

The "p" missing issue is because of incorrect names. MapleSim has two names for a parameter: One that GUI shows (usually made to look nice) and the actual name (Modelica). To get the "real" name (i.e. Modelica) of any parameter, take a look at the Modelica view. Here right-click on choose "open" on the fluid properties block. Then select the "Modelica icon" (with the tool tip: Code view) (it is an "m" with the red dot on the row above the canvas). you see:

// Maplesoft.Thermal.Media.Water
record Water "Medium: properties of water"
    parameter Modelica.SIunits.Density rho = 995.6 "Density";
    parameter Modelica.SIunits.SpecificHeatCapacity cp = 4177 "Specific heat capacity at constant pressure";
    parameter Modelica.SIunits.SpecificHeatCapacity cv = 4177 "Specific heat capacity at constant volume";
    parameter Modelica.SIunits.ThermalConductivity lamda = 0.615 "Thermal conductivity";
    parameter Modelica.SIunits.KinematicViscosity nue = 8e-7 "Kinematic viscosity";

So to address the parameter, you must type, for example, fluidMedium.cp insteat of C[p] (where "p" is interpreted as index p into Array C and it would be missing!)

I suggest not using subsystems at this time as the above solution requires many steps for every subsystem thermo-fluid port.

Are the components in the picture from the Modelica Standard Library?

If so:

The issue shown in the picture is not with the lack of parameter access...

Although the imported component icons are shown in MapleSim, MapleSim does not support the MultiBody domain of the Modelica language (and the MultiBody package of the Modelica Standard Library). One needs to recreate any model/component that includes multibody in MapleSim using its Multibody library.

If the issue was not library support, you could copy the subsystem components and paste them onto the canvas to gain access to all available parameters.

Do you have a parameter in the model that is set to zero? Or a value that can make something zero? The process of model equation simplification is different when all parameters are replaced with their numerica values and when they are kept symbolic. If this applies to you, try generating the compiled proc with non-zero parameters. Then use the intended parameters values when "calling" the cproc.


Take a look at MapleSim help by searching "GetMultibody." You can use the API to get the system jacobian (further equation manipulations may be necessary)

Also take a look at this model from our Model Gallery:


The model uses custom subsystems to create DH joints.

Please see my answer to your other question on parallel manipulator:



Creating a multibody model in MapleSim (or any other tool) requires planning and some knowledge of the way things work.

The models you have created includes a lot of joints (constraints) without mass/inertia between them. One needs to think about what the "equations" would look like. The massless connections (as in this model) lead to degenerate equations.

You can take a look at the in-product examples and the free models in our MapleSim Gallery to learn more about modeling with MapleSim.

For example:





Unfortunately the Contact Library in MapleSim is not suited for uneven terrain, just simple objects colliding. One could create a vehicle model with tires as tori and obstacles as spheres or cylinders embedded into the main flat terrain surface.

VL is one of the system states (i.e. its derivative enters the equations).

The olny way to eliminate that is to differentiate the equation containing d/dt( Vs) and VL and then eliminate d/dt(VL) between the two equations. Ending up with a second order differential equation. The users need to do this type of operation in Maple themselves.

When using symbolic parameters, only assign units to the top-level definition (a = 2 mm). Wherever the "symbol" is used for that parameter, use the SI units (k = a [m]).

MapleSim converts everything to SI the second they are used. A symbol in MapleSim does not "carry" unit with it.


Unfortunately, MapleSim currently does not support the MultiBody library from MSL.

MapleSim includes a non-Modelica-based library with superior performance that is developed by Maplesoft.

The references to Maplesoft.Multibody.* are there to make an internal connection between other Modelica domains and this internal library within the overall Modelica representation of the model.

Extending coverage to libraries such as MultiBody, Media, and Fluid is currently under development and will be added to future releases.

Page 1 of 1