- Index
- » Usage and Applications
- » OpenModelica Usage and Applications
- » Problem with MultiBody Examples
Problem with MultiBody Examples
Problem with MultiBody Examples
Hi,
I am a Windows OpenModelica user (just installed OM 1.61), and I get this error message when I try to simulate the pendulum example from the Modelica library:
Unable to simulate the Model 'Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum'
Following Error has occurred.
Code:
Simulation failed for model: Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum
[C:\\OpenModelica1.6.0\\lib\\omlibrary\\msl31/Modelica/Mechanics/MultiBody/parts.mo:600:5-603:76:writable] Warning: Variable body.r_0: Non-array modification 'if body.enforceStates then StateSelect.always else StateSelect.avoid' for array component, possibly due to missing 'each'.
[C:\\OpenModelica1.6.0\\lib\\omlibrary\\msl31/Modelica/Mechanics/MultiBody/parts.mo:604:5-607:76:writable] Warning: Variable body.v_0: Non-array modification 'if body.enforceStates then StateSelect.always else StateSelect.avoid' for array component, possibly due to missing 'each'.
[C:\\OpenModelica1.6.0\\lib\\omlibrary\\msl31/Modelica/Mechanics/MultiBody/parts.mo:682:5-686:65:writable] Warning: Variable body.w_a: Non-array modification 'if body.enforceStates then if body.useQuaternions then StateSelect.always else StateSelect.never else StateSelect.avoid' for array component, possibly due to missing 'each'.
[C:\\OpenModelica1.6.0\\lib\\omlibrary\\msl31/Modelica/Mechanics/MultiBody/parts.mo:697:5-700:119:writable] Warning: Variable body.Q: Non-array modification 'if body.enforceStates then if body.useQuaternions then StateSelect.prefer else StateSelect.never else StateSelect.avoid' for array component, possibly due to missing 'each'.
[C:\\OpenModelica1.6.0\\lib\\omlibrary\\msl31/Modelica/Mechanics/MultiBody/parts.mo:708:5-711:69:writable] Warning: Variable body.phi: Non-array modification 'if body.enforceStates then if body.useQuaternions then StateSelect.never else StateSelect.always else StateSelect.avoid' for array component, possibly due to missing 'each'.
[C:\\OpenModelica1.6.0\\lib\\omlibrary\\msl31/Modelica/Mechanics/MultiBody/parts.mo:712:5-714:42:writable] Warning: Variable body.phi_d: Non-array modification 'if body.enforceStates then if body.useQuaternions then StateSelect.never else StateSelect.always else StateSelect.avoid' for array component, possibly due to missing 'each'.
Error: Model is structurally singular, error found sorting equations Array eqn no: 6 for variables: rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1];
Array eqn no: 6 for variables: rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1];
Array eqn no: 6 for variables: rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1];
rev.R_rel.w[3] = rev.w * rev.e[3];
rev.R_rel.w[2] = rev.w * rev.e[2];
rev.R_rel.w[1] = rev.w * rev.e[1];
rev.R_rel.T[3,3] = rev.e[3] ^ 2.0 + cos(rev.phi) * (1.0 - rev.e[3] ^ 2.0);
rev.R_rel.T[3,2] = rev.e[3] * rev.e[2] + cos(rev.phi) * ((-rev.e[3]) * rev.e[2]) - sin(rev.phi) * rev.e[1];
rev.R_rel.T[3,1] = rev.e[3] * rev.e[1] + cos(rev.phi) * ((-rev.e[3]) * rev.e[1]) - (-sin(rev.phi)) * rev.e[2];
rev.R_rel.T[2,3] = rev.e[2] * rev.e[3] + cos(rev.phi) * ((-rev.e[2]) * rev.e[3]) - (-sin(rev.phi)) * rev.e[1];
rev.R_rel.T[2,2] = rev.e[2] ^ 2.0 + cos(rev.phi) * (1.0 - rev.e[2] ^ 2.0);
rev.R_rel.T[2,1] = rev.e[2] * rev.e[1] + cos(rev.phi) * ((-rev.e[2]) * rev.e[1]) - sin(rev.phi) * rev.e[3];
rev.R_rel.T[1,3] = rev.e[1] * rev.e[3] + cos(rev.phi) * ((-rev.e[1]) * rev.e[3]) - sin(rev.phi) * rev.e[2];
rev.R_rel.T[1,2] = rev.e[1] * rev.e[2] + cos(rev.phi) * ((-rev.e[1]) * rev.e[2]) - (-sin(rev.phi)) * rev.e[3];
rev.R_rel.T[1,1] = rev.e[1] ^ 2.0 + cos(rev.phi) * (1.0 - rev.e[1] ^ 2.0);
for variables rev.phi(49), rev.w(48), rev.R_rel.T[1,1](46), rev.R_rel.T[1,2](45), rev.R_rel.T[1,3](44), rev.R_rel.T[2,1](43), rev.R_rel.T[2,2](42), rev.R_rel.T[2,3](41), rev.R_rel.T[3,1](40), rev.R_rel.T[3,2](39), rev.R_rel.T[3,3](38), rev.R_rel.w[1](37), rev.R_rel.w[2](36), rev.R_rel.w[3](35),
Error: Model is structurally singular, error found sorting equations Array eqn no: 6 for variables: rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1];
Array eqn no: 6 for variables: rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.w[3], rev.R_rel.w[2], rev.R_rel.w[1], rev.R_rel.T[3,3], rev.R_rel.T[3,2], rev.R_rel.T[3,1], rev.R_rel.T[2,3], rev.R_rel.T[2,2], rev.R_rel.T[2,1], rev.R_rel.T[1,3], rev.R_rel.T[1,2], rev.R_rel.T[1,1];
rev.R_rel.w[3] = rev.w * rev.e[3];
rev.R_rel.w[2] = rev.w * rev.e[2];
rev.R_rel.w[1] = rev.w * rev.e[1];
rev.R_rel.T[3,3] = rev.e[3] ^ 2.0 + cos(rev.phi) * (1.0 - rev.e[3] ^ 2.0);
rev.R_rel.T[3,2] = rev.e[3] * rev.e[2] + cos(rev.phi) * ((-rev.e[3]) * rev.e[2]) - sin(rev.phi) * rev.e[1];
rev.R_rel.T[3,1] = rev.e[3] * rev.e[1] + cos(rev.phi) * ((-rev.e[3]) * rev.e[1]) - (-sin(rev.phi)) * rev.e[2];
rev.R_rel.T[2,3] = rev.e[2] * rev.e[3] + cos(rev.phi) * ((-rev.e[2]) * rev.e[3]) - (-sin(rev.phi)) * rev.e[1];
rev.R_rel.T[2,2] = rev.e[2] ^ 2.0 + cos(rev.phi) * (1.0 - rev.e[2] ^ 2.0);
rev.R_rel.T[2,1] = rev.e[2] * rev.e[1] + cos(rev.phi) * ((-rev.e[2]) * rev.e[1]) - sin(rev.phi) * rev.e[3];
rev.R_rel.T[1,3] = rev.e[1] * rev.e[3] + cos(rev.phi) * ((-rev.e[1]) * rev.e[3]) - sin(rev.phi) * rev.e[2];
rev.R_rel.T[1,2] = rev.e[1] * rev.e[2] + cos(rev.phi) * ((-rev.e[1]) * rev.e[2]) - (-sin(rev.phi)) * rev.e[3];
rev.R_rel.T[1,1] = rev.e[1] ^ 2.0 + cos(rev.phi) * (1.0 - rev.e[1] ^ 2.0);
for variables rev.phi(49), rev.w(48), rev.R_rel.T[1,1](46), rev.R_rel.T[1,2](45), rev.R_rel.T[1,3](44), rev.R_rel.T[2,1](43), rev.R_rel.T[2,2](42), rev.R_rel.T[2,3](41), rev.R_rel.T[3,1](40), rev.R_rel.T[3,2](39), rev.R_rel.T[3,3](38), rev.R_rel.w[1](37), rev.R_rel.w[2](36), rev.R_rel.w[3](35),
Error: Model is structurally singular, error found sorting equations $DER.body.frame_a.r_0[3] = 0.0;
for variables $DER.body.frame_a.r_0[3](77),
I haven`t changed anything in the model. When using Dymola, everything is going fine. What I am doing wrong? Thanks for your help,
Sebastian
Re: Problem with MultiBody Examples
if it unsupported OM would not show it like the Fluid package, i have testet this Example on an University PC with Dymola and cross check the code roughly and the Body seems to be the same, but Dymola has no Problems it seems so that code stays the same....
- Index
- » Usage and Applications
- » OpenModelica Usage and Applications
- » Problem with MultiBody Examples