Files
MODELICA/Formation/OTRERA_formation/Components/ThermalCapacity.mo

39 lines
1.2 KiB
Plaintext

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;