2

私は 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 を初めて使用し、ドメインについてあまり知りません。どのようにこれを行うことができますか?

ありがとうございました!

4

2 に答える 2

0

Simulink ブロックに入力されたパラメーターは、通常、ブロックの動作の初期値と調整に使用されます。Simulink の新しいバージョンでは、シミュレーション中に一部のパラメーターを調整できますが、他のパラメーターはロックされて変更できなくなります。これは、最初にモデルを実行して熱質量の初期値を計算し、次にその温度を初期値として使用して 2 番目のシミュレーションを開始する必要があることを意味する場合があります。

ブロック パラメーターの制御方法に関する Simulink ヘルプが役立つと思います。モデルの特定の設計に応じて、ここに示すさまざまな手法が多かれ少なかれ適用される場合がありますが、一般的に言えば、マスク値を変更するための 2 つの簡単で単純な方法を知っています。

  1. Matlab ベース ワークスペースの変数に値を設定します。
  2. マスク サブシステム内にブロックを配置します。マスクは、その中のすべてのブロックにアクセスできる変数を定義するために使用できます。
于 2016-08-26T10:53:15.853 に答える