Message Boards Message Boards

0
|
2038 Views
|
1 Reply
|
3 Total Likes
View groups...
Share
Share this post:

Linear system has no solution error from DASSL

Posted 1 year ago

Hi,
I'm trying to simulate a model and I'm struggling to get what SM solvers errors messages means. I know from a math point of view what is a linear system with no solution, but the problem is that the solver error doesn't give too much of a clue and Equation Browser points to a continuous system of 9 equations:

der(body1.Q[1]) * $dynState.set1.s[2,1] + der(body1.Q[2]) * $dynState.set1.s[2,2] + der(body1.Q[3]) * $dynState.set1.s[2,3] + der(body1.Q[4]) * $dynState.set1.s[2,4] + wheelOnGround1.body.w_a[1] * $dynState.set1.s[2,5] + wheelOnGround1.body.w_a[2] * $dynState.set1.s[2,6] + wheelOnGround1.body.w_a[3] * $dynState.set1.s[2,7] = $dynState.set1.x[2]
-------------
der(body1.Q[1]) * $dynState.set1.s[1,1] + der(body1.Q[2]) * $dynState.set1.s[1,2] + der(body1.Q[3]) * $dynState.set1.s[1,3] + der(body1.Q[4]) * $dynState.set1.s[1,4] + wheelOnGround1.body.w_a[1] * $dynState.set1.s[1,5] + wheelOnGround1.body.w_a[2] * $dynState.set1.s[1,6] + wheelOnGround1.body.w_a[3] * $dynState.set1.s[1,7] = $dynState.set1.x[1]
-------------
body1.w_a[3] = wheelOnGround1.body.w_a[3] * revolute1.R_rel.T[3,3] - wheelOnGround1.body.w_a[1] * revolute1.R_rel.T[1,3]
-------------
0 = 2 * der(body1.Q[4]) * body1.Q[4] + 2 * der(body1.Q[3]) * body1.Q[3] + 2 * der(body1.Q[1]) * body1.Q[1] + 2 * der(body1.Q[2]) * body1.Q[2]
-------------
der(body1.Q[1]) * $dynState.set1.s[3,1] + der(body1.Q[2]) * $dynState.set1.s[3,2] + der(body1.Q[3]) * $dynState.set1.s[3,3] + der(body1.Q[4]) * $dynState.set1.s[3,4] + wheelOnGround1.body.w_a[1] * $dynState.set1.s[3,5] + wheelOnGround1.body.w_a[2] * $dynState.set1.s[3,6] + wheelOnGround1.body.w_a[3] * $dynState.set1.s[3,7] = $dynState.set1.x[3]
-------------
body2.w_a[1] = -2.0 * (body1.Q[1] * der(body1.Q[4]) + body1.Q[2] * der(body1.Q[3])) + 2.0 * (body1.Q[3] * der(body1.Q[2])) + 2.0 * (body1.Q[4] * der(body1.Q[1]))
-------------
der(body1.Q[1]) * $dynState.set1.s[4,1] + der(body1.Q[2]) * $dynState.set1.s[4,2] + der(body1.Q[3]) * $dynState.set1.s[4,3] + der(body1.Q[4]) * $dynState.set1.s[4,4] + wheelOnGround1.body.w_a[1] * $dynState.set1.s[4,5] + wheelOnGround1.body.w_a[2] * $dynState.set1.s[4,6] + wheelOnGround1.body.w_a[3] * $dynState.set1.s[4,7] = $dynState.set1.x[4]
-------------
body2.w_a[1] = wheelOnGround1.body.w_a[3] * revolute1.R_rel.T[1,3] + wheelOnGround1.body.w_a[1] * revolute1.R_rel.T[3,3]
-------------
body1.w_a[3] = -2.0 * (body1.Q[3] * der(body1.Q[4])) + 2.0 * (body1.Q[4] * der(body1.Q[3])) + -2.0 * (body1.Q[1] * der(body1.Q[2])) + 2.0 * (body1.Q[2] * der(body1.Q[1]))

I know that variables now are out of context, but what means $dynState.set1.s[x,y] for example? I thinks that is part of the state selection system, but is really hard for me to have a clue of what to think about this system of equation when it has those dummy variables (?). Maybe I'm missing something in SM docs about the solver errors, but I couldn't find anything meaningful. Is there any specific docs on solver errors ?

I'm a beginner in multi-body modeling and such systems are really hard to debug. Also, could someone points out a good text on multi-body dynamics specially something about solver issues?

Thanks.

POSTED BY: Michel Oliveira

Hi, this is Vedat from Wolfram MathCore. Navigating multibody dynamics and orientations is indeed a complex task, one that we often encounter in our field. Your equations hint at the employment of a state matrix, $dynState.set1.s[x,y], which is typical in these numerical simulations.

Given the complexities involved, starting with simpler models can sometimes be quite beneficial. If feasible for your situation, you might consider working with Planar Mechanics initially. This approach can provide a solid understanding of the principles of dynamics without the added intricacies of 3D orientations.

For a comprehensive Multibody Library understanding, consider Martin Otter's "Modelica - The New Modelica MultiBody Library" and the practical examples in MSL Multibody Library as invaluable tools in your learning journey.

Thanks,

POSTED BY: Vedat Senol
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract