Hi,

when I'm using the "time" variable with an "if" clause I'm getting
strange date sets.  All sets have two rows with zero time, as in the
following:

DataSet: time
0, 0
0, 0
2.220446049250313e-13, 2.220446049250313e-13
0.002, 0.002
0.004, 0.004
0.006, 0.006
0.008, 0.008
0.01, 0.01
0.012, 0.012
...

DataSet: pi.inPort.pressure
0, 8.987170080912859e-71
0, 1.407479094429326e-112
2.220446049250313e-13, -1.002262231102861e-165
0.002, -3.504384971839359e-176
0.004, -5.630042739254032e-176
0.006, -7.755700506668704e-176
...

it looks as if the *input* variable time has changed somehow!
(I'm using svn:3603)

   Dieter

------------------------------------------------------------

connector Port
  Real pressure;
  flow Real flowrate;
end Port;

// // record with innner/outer not possible 
// class Fluid                  "Water is the default" 
//   parameter Real density = 1;
//   parameter Real viscosity = 1;
// end Fluid;  

partial model TwoPorts
//  outer parameter Fluid fluid;
  Port inPort, outPort;
equation
  inPort.flowrate + outPort.flowrate = 0;
end TwoPorts;

model Pipe
  extends TwoPorts;
  parameter Real a = .5;
equation
  inPort.pressure = inPort.flowrate * a;
end Pipe;

model Pump
  extends TwoPorts;
  Real q;
equation
  q = time - outPort.pressure - .1;
  inPort.flowrate = if q > 0 then q else 0;
end Pump;

model Ambience
  Port port;
equation
  port.pressure = 0;
end Ambience;

model Test
//  inner parameter Fluid fluid;
  Pump pu;
  Pipe pi;
  Ambience am1, am2;
equation
  connect( am1.port, pu.inPort);
  connect( pu.outPort, pi.inPort);
  connect( pi.outPort, am2.port);
end Test;

// simulate( Test)

Reply via email to