Archived OpenModelica forums. Posting is disabled.

Alternative forums include GitHub discussions or StackOverflow (make sure to read the Stack Overflow rules; you need to have well-formed questions)


Forgot password? | Forgot username? | Register
  • Index
  • » Users
  • » BelgianJoris
  • » Profile

Posts

Posts

Mar-02-20 12:57:15
Does Modelica have a difficult learning curve?

CTG wrote:

Simulation Setup, Translation flags, and activate the check box Enable old frontend for code generation?

This seems to have done the trick. So something wrong with the new frontend?

Mar-02-20 12:14:30
Does Modelica have a difficult learning curve?

OMEdit Connected to OpenModelica v1.14.1 (64-bit)
OneMass.log

Mar-02-20 10:38:12
Does Modelica have a difficult learning curve?

Hi,
I have been trying to teach myself Modelica by starting from the examples and changeing simple things here and there. Goal is to be able to create big thermohydraulic models for work.

My model compiles fine, but has multitudes of errors (division by zero) on initializing. It works fine when I uncomment the output definitions. However, I do not need these, and I do not understand why this creates an error.

Ideas anyone?

Code:

model OneMass "Cooling of one hot mass"

  extends Modelica.Icons.Example;

  parameter Modelica.SIunits.Temperature TAmb(displayUnit="degC")=293.15
    "Ambient temperature";
  parameter Modelica.SIunits.Temperature TMass(displayUnit="degC")=313.15
  "Initial temperature of mass";
//  output Modelica.SIunits.TemperatureDifference dTMass=
//    heatCapacitor.port.T-TAmb "Mass over Ambient";
//  output Modelica.SIunits.TemperatureDifference dTtoPipe=heatCapacitor.port.T-pipe.T_q
//    "Mass over Coolant";
//  output Modelica.SIunits.TemperatureDifference dTCoolant=pipe.dT
//    "Coolant's temperature increase";
  Modelica.Thermal.FluidHeatFlow.Sources.Ambient ambient1(
    constantAmbientPressure=0,constantAmbientTemperature=TAmb, medium=Modelica.Thermal.FluidHeatFlow.Media.Water(), useTemperatureInput = true)
    annotation (Placement(transformation(extent={{-60,-10},{-80,10}})));
  Modelica.Thermal.FluidHeatFlow.Sources.VolumeFlow pump(
   
    T0=TAmb,
    constantVolumeFlow=1,
    m= 1,medium=Modelica.Thermal.FluidHeatFlow.Media.Water(),
    useVolumeFlowInput= false)
    annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
  Modelica.Thermal.FluidHeatFlow.Components.Pipe pipe(
   
    T0=TAmb,
    T0fixed=true, V_flow(start = 1),
    V_flowLaminar=0.1,
    V_flowNominal=1,
    dpLaminar(displayUnit="Pa") = 0.1,
    dpNominal(displayUnit="Pa") = 1,
    h_g=0,
    m= 1,medium=Modelica.Thermal.FluidHeatFlow.Media.Water(),
    useHeatPort=true)
    annotation (Placement(transformation(extent={{0,-10},{20,10}})));
  Modelica.Thermal.FluidHeatFlow.Sources.Ambient ambient2(
    constantAmbientPressure=0,constantAmbientTemperature=TAmb, medium=Modelica.Thermal.FluidHeatFlow.Media.Water())
    annotation (Placement(transformation(extent={{40,-10},{60,10}})));
  Modelica.Thermal.HeatTransfer.Components.HeatCapacitor heatCapacitor(
    C= 10, T( fixed=true,start=TMass))
    annotation (Placement(transformation(
        origin={10,-60},
        extent={{10,-10},{-10,10}},
        rotation=180)));
  Modelica.Thermal.HeatTransfer.Components.ThermalConductor thermalConductor(G=1)
    annotation (Placement(transformation(
        origin={10,-30},
        extent={{-10,-10},{10,10}},
        rotation=90)));
  Modelica.Blocks.Sources.Ramp ramp(duration = 5, height = 10, offset = TAmb, startTime = 5) annotation(
    Placement(visible = true, transformation(origin = {-136, -6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
  connect(ambient1.flowPort, pump.flowPort_a) annotation(
    Line(points = {{-60, 0}, {-40, 0}}, color = {255, 0, 0}));
  connect(pump.flowPort_b, pipe.flowPort_a) annotation(
    Line(points = {{-20, 0}, {0, 0}}, color = {255, 0, 0}));
  connect(pipe.flowPort_b, ambient2.flowPort) annotation(
    Line(points = {{20, 0}, {40, 0}}, color = {255, 0, 0}));
  connect(thermalConductor.port_a, heatCapacitor.port) annotation(
    Line(points = {{10, -40}, {10, -45}, {10, -50}}, color = {191, 0, 0}));
  connect(pipe.heatPort, thermalConductor.port_b) annotation(
    Line(points = {{10, -10}, {10, -20}}, color = {191, 0, 0}));
  connect(ambient1.ambientTemperature, ramp.y) annotation(
    Line(points = {{-80, -6}, {-124, -6}, {-124, -6}, {-124, -6}}, color = {0, 0, 127}));
  annotation(
    Documentation(info = "<html>
<p>
7th test example: OneMass
</p>
A thermal capacity is coupled with a coolant flow.
Different initial temperatures of thermal capacity and pipe's coolant get ambient's temperature,
the time behaviour depending on coolant flow.
</html>"),
    experiment(StopTime = 1.0, Interval = 0.001),
    uses(Modelica(version = "3.2.3")));
end OneMass;

  • Index
  • » Users
  • » BelgianJoris
  • » Profile
You are here: