modelica - How can I make a string executable? -


i'm trying execute string in modelica. string saved in variable in order able change when need to.

function test  input string incomp="resistor.r:=2"; output string outcomp;   algorithm      outcomp:=incomp;   end test; 

could please


i using dymola.

what need following.

-read component names text file (or input them while executing function) -then change parameters of these components. code example:

function test  input string incomp="resistor";  //entered user, or read text file output real result;  algorithm     incomp.r :=2 ;  /*this incorrect since wouldn't understand                      want enter : resistor.r := 2;  */    result := incomp.r ; //in order view result  end test; 

what trying not possible in modelica. may tools have "reflective api" allows (or perhaps built-in function takes command string , executes it) there no universal api works across tools.

if want run bunch of simulations in dymola different parameter values, can suggest @ least 3 different wants proceed.

  • use dde interface send commands dymola. way can formulate parameter values "somehow" (externally dymola) , request dymola run simulations. i'm not sure how rich dde interface is, i'm not sure if need (e.g. reaping results).
  • write script file. bit different writing function, same in syntax. example, run "coupledclutches" example several different inertia values, can (in command window):
     j in {1.0, 1.1, 1.2, 1.5, 1.8} loop       j1.j := j;       simulatemodel("modelica.mechanics.rotational.examples.coupledclutches",                     resultfile="coupledclutches_"+string(j));     end for; 
  • use function (as were) call simulatemodel modifiers, e.g.
     function runloop     algorithm       j in {1.0, 1.1, 1.2, 1.5, 1.8} loop         simulatemodel("modelica.mechanics.rotational.examples.coupledclutches(j1(j="+string(j)+"))",                     resultfile="coupledclutches_"+string(j));       end for;     end runloop; 
  • use built-in functions simulateextendedmodel , simulatemultiextendedmodel pretty same above in cleaner way (type document("simulateextendedmodel") , document("simulatemultiextendedmodel") in dymola command window more info on these).

ok, should give start. if none of work whatever reason, update question whatever additional requirements have.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -