MathGroup Archive 2013

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Strange behavior of System Modeler

  • To: mathgroup at smc.vnet.net
  • Subject: [mg120011] Re: Strange behavior of System Modeler
  • From: Johan Rhodin <johanr at wolfram.com>
  • Date: Tue, 5 Mar 2013 04:15:44 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net

Go to Preferences -> Global -> Translation and add your example to the list of Dynamic State Selection classes. Restart. The model will now simulate as you expect it to.

/Johan

----- Original Message -----
From: "awnl" <awnl at gmx-topmail.de>
To: mathgroup at smc.vnet.net
Sent: Sunday, March 3, 2013 10:00:57 PM
Subject: [mg120011] Re: Strange behavior of System Modeler

Hi,

>
> I have just started studying WSM and the Modelica language by implementing the simple pendulum model (class) es. described on p.33 of Peter Fritzson's book  Introduction to "Modeling and Simulation of Technical and Physical Systems with Modelica". The code (pendulum equation written as a DAE) is:
>
> model DAEExample "DAEExample"
>    constant Real PI=3.14159265358979;
>    parameter Real m=1,g=9.81,l=0.5;
>    output Real F;
>    output Real x(start=0.5),y(start=0);
>    output Real vx,vy;
> equation
>    m*der(vx)=-x/l*F;
>    m*der(vy)=-y/l*F - m*g;
>    der(x)=vx;
>    der(y)=vy;
>    x^2 + y^2=l^2;
> end DAEExample;
>
> I run the example in WSM and I get totally meaningless results.
> The solver is the default one (DASSL) which, I think, is the right one for handling DAEs.
>
> Any ideas?

Just a followup to my recent post: you can use manual state selection 
(dynamic state selection is one of the tricks that Dymola uses to get 
this right) to get correct solutions with WSM like this:

model DAEExample
   constant Real PI=3.14159265358979;
   parameter Real m=1,g=9.81,l=0.5;
   Real F;
   Real x(start=0.5,stateSelect=StateSelect.always);
   Real y(start=0);
   Real vx(start=0);
   Real vy(start=0);
equation
   m*der(vx) = -x/l*F;
   m*der(vy) = -y/l*F - m*g;
   der(x) = vx;
   der(y) = vy;
   x^2 + y^2 = l^2;
end DAEExample;

hth,

albert





  • Prev by Date: Mathematica can't solve this equations and stuck my PC
  • Next by Date: Why mathematica can't solve this non linear equation
  • Previous by thread: Re: Strange behavior of System Modeler
  • Next by thread: Re: Strange behavior of System Modeler