I had installed OpenModelica from the debian installers at
http://openmodelica.ida.liu.se:8080/cb/proj/doc.do?doc_id=1227, on a
chroot (i got a amd64, a chroot is easily than the compilation process
for i386 on a x86_64) with debian sid.
2008/12/4 Jorge Cardona <[EMAIL PROTECTED]>:
> Greeting foot people.
>
> I was creating a external function to create a normal distributed
> source signal, but i found myself in a little problem, look at this:
>
> f.c:
> #include <stdlib.h>t
>
> double f(void)
> {
> return random();
> }
>
> f.h:
> double f(void);
>
> f.mo:
> function f
> output Real y;
> external
> annotation(Library="/tmp/f.o", Include="#include \"/tmp/f.h\"");
> end f;
>
>
> class A
> Real x;
> initial equation
> x = 20;
> equation
> der(x) = -x;
> end A;
>
>
> class B
> Real x;
> Real y;
> initial equation
> x = 20;
> equation
> der(x) = -x;
> y = 0;
> end B;
>
> class C
> Real x(fixed=false);
> Real y;
> initial equation
> x = 20;
> equation
> der(x) = -x;
> y = 0;
> end C;
>
> class D
> Real x(fixed=false);
> Real y;
> initial equation
> x = 20;
> equation
> der(x) = -x;
> y = f();
> end D;
>
> class E
> Real y;
> equation
> y = f();
> end E;
>
> class F
> Real x;
> Real y;
> initial equation
> x = 20;
> equation
> der(x) = -x;
> y = f();
> end F;
>
> well, copy this to /tmp and in a OMShell-terminal:
> [EMAIL PROTECTED]:/tmp$ OMShell-terminal
> Open Source Modelica Terminal Shell
> Copyright 1997-2007, PELAB, Linkoping University
>
> To get help on using Mosh and OpenModelica, type "help()" and press enter
> Started server using:/usr/share/omc-omshell/bin/omc +d=interactive >
> /tmp/error.log 2>&1 &
> res = 0
>>>> loadModel(Modelica)
> true
>>>> loadFile("/tmp/f.mo")
> true
>>>> system("gcc -c -o /tmp/f.o /tmp/f.c")
> 0
>>>> simulate(A,timeStop=10)
> record
> resultFile = "A_res.plt"
> end record
>>>> plot(x)
> true
>>>> simulate(B,timeStop=10)
> record
> resultFile = "B_res.plt"
> end record
>>>> plot({x,y})
> true
>>>> simulate(C,timeStop=10)
> record
> resultFile = "C_res.plt"
> end record
>>>> plot({x,y})
> true
>>>> simulate(D,timeStop=10)
> record
> resultFile = "D_res.plt"
> end record
>>>> plot({x,y})
> true
>>>> simulate(E,timeStop=10)
> record
> resultFile = "E_res.plt"
> end record
>>>> plot(y)
> true
>>>> simulate(F,timeStop=10)
> record
> resultFile = "F_res.plt"
> end record
>>>> plot({x,y})
> true
>
>
> Well, the class A only has a variable and decrease from 20 to 0,
> that's ok. The class B has two variables, one should decrease from 20
> to 0 and the other one should be constant on 0, but both of them are
> 0s. At the class C, i declare the x variable with fixed=false, and
> that work great. At class D, i declard that y is the returned value
> form f, which return a random number, but the simulation stop silently
> without error, but without data. At class E, i had deleted the x
> variable, and then the simulation work great and y has random values,
> and in class F i declared again the variable, but without fixed and
> the simulation works but x is not initialized at 20, so, it is a
> constant 0.
>
> I don't know if i just missing something here, what i need is work
> with the random generator, and initializa other variables with
> "initial equation".
>
> What can i do to deal whit this?
>
> PD: If you need some hands to type some lines of code of OpenModelica,
> just say, i will be happy to help with it.
>
> --
> 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
------------------------------------------------