TemperatureOfTwoMassesTest
IconTemperatureOfTwoMassesTest
This model connects 2 masses at different temperature. And, compares and tests initial and final temperatures of these masses. This components tests RelativeTemperatureSensor
and TemperatureSensor
.
Usage
TemperatureOfTwoMassesTest()
Variables
Name | Description | Units |
---|---|---|
final_T | Projected final temperature | K |
Behavior
\[ \begin{equation} \left[ \begin{array}{c} \mathtt{final\_T}\left( t \right) = \frac{\mathtt{mass1.C} \mathtt{mass1.T0} + \mathtt{mass2.C} \mathtt{mass2.T0}}{\mathtt{mass1.C} + \mathtt{mass2.C}} \\ \mathrm{connect}\left( mass1_{+}node, conduction_{+}node_{a} \right) \\ \mathrm{connect}\left( conduction_{+}node_{b}, mass2_{+}node \right) \\ \mathrm{connect}\left( mass1_{+}node, relative_{temperature\_sensor_{+}node\_a} \right) \\ \mathrm{connect}\left( mass2_{+}node, relative_{temperature\_sensor_{+}node\_b} \right) \\ \mathrm{connect}\left( mass1_{+}node, temperature_{sensor1_{+}node} \right) \\ \mathrm{connect}\left( mass2_{+}node, temperature_{sensor2_{+}node} \right) \\ \mathtt{mass1.T}\left( t \right) = \mathtt{mass1.node.T}\left( t \right) \\ \frac{\mathrm{d} \mathtt{mass1.T}\left( t \right)}{\mathrm{d}t} = \mathtt{mass1.dT}\left( t \right) \\ \mathtt{mass1.dT}\left( t \right) = \frac{\mathtt{mass1.node.Q}\left( t \right)}{\mathtt{mass1.C}} \\ \mathtt{mass2.T}\left( t \right) = \mathtt{mass2.node.T}\left( t \right) \\ \frac{\mathrm{d} \mathtt{mass2.T}\left( t \right)}{\mathrm{d}t} = \mathtt{mass2.dT}\left( t \right) \\ \mathtt{mass2.dT}\left( t \right) = \frac{\mathtt{mass2.node.Q}\left( t \right)}{\mathtt{mass2.C}} \\ \mathtt{conduction.{\Delta}T}\left( t \right) = - \mathtt{conduction.node\_b.T}\left( t \right) + \mathtt{conduction.node\_a.T}\left( t \right) \\ \mathtt{conduction.node\_a.Q}\left( t \right) = \mathtt{conduction.Q}\left( t \right) \\ \mathtt{conduction.node\_a.Q}\left( t \right) + \mathtt{conduction.node\_b.Q}\left( t \right) = 0 \\ \mathtt{conduction.Q}\left( t \right) = \mathtt{conduction.G} \mathtt{conduction.{\Delta}T}\left( t \right) \\ \mathtt{relative\_temperature\_sensor.T\_rel}\left( t \right) = - \mathtt{relative\_temperature\_sensor.node\_b.T}\left( t \right) + \mathtt{relative\_temperature\_sensor.node\_a.T}\left( t \right) \\ 0 = \mathtt{relative\_temperature\_sensor.node\_a.Q}\left( t \right) \\ 0 = \mathtt{relative\_temperature\_sensor.node\_b.Q}\left( t \right) \\ \mathtt{temperature\_sensor1.T}\left( t \right) = \mathtt{temperature\_sensor1.node.T}\left( t \right) \\ \mathtt{temperature\_sensor1.node.Q}\left( t \right) = 0 \\ \mathtt{temperature\_sensor2.T}\left( t \right) = \mathtt{temperature\_sensor2.node.T}\left( t \right) \\ \mathtt{temperature\_sensor2.node.Q}\left( t \right) = 0 \\ \end{array} \right] \end{equation} \]
Source
# This model connects 2 masses at different temperature. And, compares and tests
# initial and final temperatures of these masses. This components tests
# `RelativeTemperatureSensor` and `TemperatureSensor`.
component TemperatureOfTwoMassesTest
mass1 = HeatCapacitor(C=15, T0=373.15)
mass2 = HeatCapacitor(C=15, T0=273.15)
conduction = ThermalConductor(G=10)
relative_temperature_sensor = RelativeTemperatureSensor()
temperature_sensor1 = TemperatureSensor()
temperature_sensor2 = TemperatureSensor()
# Projected final temperature
variable final_T::Temperature
relations
final_T = (mass1.T0*mass1.C+mass2.T0*mass2.C)/(mass1.C+mass2.C)
connect(mass1.node, conduction.node_a)
connect(conduction.node_b, mass2.node)
connect(mass1.node, relative_temperature_sensor.node_a)
connect(mass2.node, relative_temperature_sensor.node_b)
connect(mass1.node, temperature_sensor1.node)
connect(mass2.node, temperature_sensor2.node)
metadata {
"JuliaSim": {
"tests": {
"case1": {
"stop": 10,
"atol": {
"mass1.T": 0.001,
"mass2.T": 0.001,
"temperature_sensor1.T": 0.001,
"temperature_sensor2.T": 0.001,
"relative_temperature_sensor.T_rel": 0.001
},
"expect": {
"initial": {
"temperature_sensor1.T": 373.15,
"temperature_sensor2.T": 273.15,
"relative_temperature_sensor.T_rel": 100
},
"signals": [
"mass1.node.T",
"mass2.node.T",
"temperature_sensor1.T",
"temperature_sensor2.T",
"relative_temperature_sensor.T_rel"
]
}
}
}
}
}
end
Flattened Source
# This model connects 2 masses at different temperature. And, compares and tests # initial and final temperatures of these masses. This components tests # `RelativeTemperatureSensor` and `TemperatureSensor`. component TemperatureOfTwoMassesTest mass1 = HeatCapacitor(C=15, T0=373.15) mass2 = HeatCapacitor(C=15, T0=273.15) conduction = ThermalConductor(G=10) relative_temperature_sensor = RelativeTemperatureSensor() temperature_sensor1 = TemperatureSensor() temperature_sensor2 = TemperatureSensor() # Projected final temperature variable final_T::Temperature relations final_T = (mass1.T0*mass1.C+mass2.T0*mass2.C)/(mass1.C+mass2.C) connect(mass1.node, conduction.node_a) connect(conduction.node_b, mass2.node) connect(mass1.node, relative_temperature_sensor.node_a) connect(mass2.node, relative_temperature_sensor.node_b) connect(mass1.node, temperature_sensor1.node) connect(mass2.node, temperature_sensor2.node) metadata { "JuliaSim": { "tests": { "case1": { "stop": 10, "atol": { "mass1.T": 0.001, "mass2.T": 0.001, "temperature_sensor1.T": 0.001, "temperature_sensor2.T": 0.001, "relative_temperature_sensor.T_rel": 0.001 }, "expect": { "initial": { "temperature_sensor1.T": 373.15, "temperature_sensor2.T": 273.15, "relative_temperature_sensor.T_rel": 100 }, "signals": [ "mass1.node.T", "mass2.node.T", "temperature_sensor1.T", "temperature_sensor2.T", "relative_temperature_sensor.T_rel" ] } } } } } end