私は Simulink に 1 つの "Thermal Mass" ブロックを持っています。これは、内部エネルギーを保存する材料または材料の組み合わせの能力である熱質量を表します。この Simulink の標準ブロックでは、初期温度を入力する必要があります。ブロックに接続できる信号は 1 つだけです。ブロックのソース コードは次のようになります。
component mass
% Thermal Mass
% The block represents a thermal mass, which is the ability of a material
% or combination of materials to store internal energy. The property is
% characterized by mass of the material and its specific heat.
%
% The block has one thermal conserving port.
% The block positive direction is from its port towards the block. This
% means that the heat flow is positive if it flows into the block.
% Copyright 2005-2013 The MathWorks, Inc.
nodes
M = foundation.thermal.thermal; % :top
end
parameters
mass = { 1, 'kg' }; % Mass
sp_heat = { 447, 'J/(kg*K)' }; % Specific heat
end
variables
Q = { 0, 'J/s' }; % Heat flow
end
variables(Conversion=absolute)
T = { 300, 'K' }; % Temperature
end
function setup
% Parameter range checking
if mass <= 0
pm_error('simscape:GreaterThanZero','Mass')
end
if sp_heat <= 0
pm_error('simscape:GreaterThanZero','Specific heat')
end
end
branches
Q : M.Q -> *;
end
equations
T == M.T;
Q == mass * sp_heat * T.der;
assert(T>0, 'Temperature must be greater than absolute zero')
end
end
初期温度が別のブロックから取得できる別のコンポーネントを作成して、別の場所でも計算できるようにしたいと思います。したがって、1 つの入力パラメーターと他のすべてが同じである必要があります。私は Simulink を初めて使用し、ドメインについてあまり知りません。どのようにこれを行うことができますか?
ありがとうございました!