within OTRERA_formation.Components; model ThermalCapacity import Modelica.Fluid.Types.Dynamics ; //USER DEFINED PARAMETERS parameter Dynamics energyDynamics = Dynamics.FixedInitial ; parameter Modelica.Units.SI.Mass m = 10 "Object mass"; parameter Modelica.Units.SI.SpecificHeatCapacity cp(min=0) = 1000 ; parameter Modelica.Units.SI.Temperature T_start = 283.15 ; //INTERNAL VARIABLES Modelica.Units.SI.Temperature T ; Modelica.Units.SI.HeatFlowRate Q_flow ; //IMPORTED COMPONENTS Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a port annotation( Placement(transformation(extent = {{-10, -10}, {10, 10}}), iconTransformation(origin = {-2, -4}, extent = {{-10, -10}, {10, 10}}))); initial equation if energyDynamics == Dynamics.SteadyStateInitial then der(T) = 0 ; elseif energyDynamics == Dynamics.FixedInitial then T = T_start ; end if ; equation if energyDynamics == Dynamics.SteadyState then Q_flow = 0 ; else Q_flow = m * cp * der(T) ; end if ; //PORT HANDOVER Q_flow = port.Q_flow ; T = port.T ; annotation( Icon(graphics = {Ellipse(origin = {-2, 3}, fillColor = {134, 94, 60}, fillPattern = FillPattern.Solid, extent = {{-92, -85}, {92, 85}})})); end ThermalCapacity;