Well, i had to change this equation:

posicion  = (l / 2) * tan(beta) - 2 * radio / cos(beta);

for this one:

der(beta) * ( l - 4 * radio * sin(beta)) = 2 * velocidad * cos(beta)^2;

and explicitly declare all initials conditions, with that modelica
simulate correctly the model.


2008/10/5 Jorge Cardona <[EMAIL PROTECTED]>:
> Hi, I started to use modelica like a week ago and i got this model
> that i want to simulate:
>
> class Experimento "Experimento"
>    Real    w_entrada;
>    Real    w_salida;
>    Real    L_o;
>    Real    tension(start=0);
>    Real    L;
>    Real    posicion(start=0.2);
>    Real    velocidad;
>    Real    beta;
>
>    constant    Real    radio   = 0.05;
>    constant    Real    young   = 3e6;
>    constant    Real    area    = 5e-5;
>    constant    Real    masa    = 0.5;
>    constant    Real    k_f     = 2;
>    constant    Real    l       = 0.4;
>    constant    Real    gravedad= 9.8;
>
> equation
>
>    posicion  = (l / 2) * tan(beta) - 2 * radio / cos(beta);
>    L = 4 * radio*(beta - sin(beta)/cos(beta)) + l/cos(beta);
>
>    masa * der(velocidad) = masa * gravedad - 2 * tension * sin(beta)
> - k_f * velocidad;
>    der(posicion) = velocidad;
>
>    /**** Young's Modulus ****/
>    young * area * (L  - L_o) = tension * L_o ;
>
>    der(L_o) = radio * (w_entrada - w_salida);
>
>    w_entrada   = if ((time > 20 ) and (time <= 40)) then 0.5
>                        else if ((time > 40 ) and (time <= 60)) then 1
>                        else if ((time > 60 ) and (time <= 80)) then 0.5
>                        else 0;
>
>    w_salida    = if ((time > 30 ) and (time <= 50)) then 0.5
>                        else if ((time > 50 ) and (time <= 70)) then 1
>                        else if ((time > 70 ) and (time <= 90)) then 0.5
>                        else 0;
>
> end Experimento;
>
> I already got a simulation of it on scilba/scicos, but i need to use
> an extended kalman filter, and scicos it doesn't help a lot with it,
> so maybe with modelica could be easier, but i can't understand how
> modelica use the "start" condition.
>
> To me (a human being) it's clear that with the "posicion" (position)
> starting at 0.2 modelica could calculate the initial condition for
> "beta" and "L", with the first two equations (and that's what it
> does.).  And with the "tension" starting at 0, should calculate the
> initial conditions for L_o, but it doesn't, maybe thats how works
> modelica, how could i describe my model in a way that modelica can
> calculate  the initial conditions.
>
> When i try to simulate the model i got this:
>>>> loadFile("/home/jcardona/stuff/personal/tesis/modelica/Primer_Modelo_20081005a.mo")
> true
>>>> simulate(Experimento,stopTime=10)
> record
>    resultFile = "Simulation failed.
> "
> end record
>>>>
>
> and when try to simulate just  a second:
>
>>>> loadFile("/home/jcardona/stuff/personal/tesis/modelica/Primer_Modelo_20081005a.mo")
> true
>>>> simulate(Experimento,stopTime=0)
> record
>    resultFile = "Experimento_res.plt"
> end record
>>>>
>
> with this result i can know the initial conditions (is that true? i
> just suppose that if modelica try to simulate 0 seconds it will just
> calculate the initial conditions.)
>
> Another question:  "The language feature differentiation of function
> tan is not supported. Suggested workaroung: no suggestion", what is
> that? modelica can't get the derivate of tan?? how can be added? just
> using a sin/cos?
>
> Maybe the answer could be really obvious, please remember i got a week
> on modelica :)
>
> Thanks.
>
> --
> Jorge Eduardo Cardona
> [EMAIL PROTECTED]
> jorgeecardona.blogspot.com
> ------------------------------------------------
> Linux registered user  #391186
> Registered machine    #291871
> ------------------------------------------------
>



-- 
Jorge Eduardo Cardona
[EMAIL PROTECTED]
jorgeecardona.blogspot.com
------------------------------------------------
Linux registered user  #391186
Registered machine    #291871
------------------------------------------------

Reply via email to