このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
生成された MATLAB コードを再利用した定常状態の操作点のバッチ計算
この例では、生成された MATLAB® コードを使用してモデルの定常状態の操作点をバッチ計算する方法を説明します。モデルをこれらの操作点でシミュレートし、あるいは線形化して、モデルの動作の変化を調べることができます。
スクリプトの作成に慣れていない場合は、定常状態マネージャーまたはモデル線形化器を使用して対話形式で操作点探索を設定します。
バッチ平衡化用のコードを生成する前に、仕様の 1 インスタンスを満たす操作点をまず計算します。操作点の計算の詳細については、次を参照してください。
定常状態マネージャーを使用する場合は定常状態マネージャーを使用した仕様からの操作点の計算
モデル線形化器を使用する場合はモデル線形化器を使用した仕様からの操作点の計算
操作点を計算した後、MATLAB スクリプトを生成します。以下を行います。
定常状態マネージャーの [仕様] タブで [平衡化]
をクリックし、
[スクリプト]
を選択。線形解析の [モデルの平衡化] ダイアログ ボックスで、[MATLAB スクリプトの生成] をクリック。
スクリプトの生成の詳細については、操作点を構成するための MATLAB コードの生成を参照してください。
生成されたスクリプトが MATLAB エディター ウィンドウで開きます。ここで、複数の操作点でモデルを平衡化するようにスクリプトを修正できます。
この例では、magball
Simulink® モデルを使用したバッチ平衡化を示します。
モデルを開きます。
open_system('magball')
定常状態マネージャーを開くには、Simulink モデル ウィンドウの [アプリ] ギャラリーで [定常状態マネージャー] をクリックします。
[定常状態] タブで [仕様の平衡化] をクリックします。
[spec1] ドキュメントの [既知] 列で、[magball/Magnetic Ball Plant/height] の状態を選択します。
平衡化の MATLAB コードを生成します。[仕様] タブで [平衡化]
をクリックし、
[スクリプト]
を選択します。MATLAB エディター ウィンドウで、複数の操作点でモデルを平衡化するようにスクリプトを修正します。
生成スクリプトから不要なコメントを削除します。
操作点の計算に使用する値を指定して、高さを表す変数
height
を定義します。操作点探索コードを囲む
for
ループを追加して、各height
値の定常状態の操作点を計算します。ループ内で、findop
を呼び出す前に、Desired Height ブロックで指定された基準のボールの高さを更新します。
スクリプトは次のコードのようになります。
%% Specify the model name model = 'magball'; %% Create the operating point specification object. opspec = operspec(model); %% Set the constraints on the states in the model. % State (5) - magball/Magnetic Ball Plant/height % - Default model initial conditions are used to initialize optimization. opspec.States(5).Known = true; %% Create the options opt = findopOptions('DisplayReport','iter'); %% Specify ball heights at which to compute operating points height = [0.05;0.1;0.15]; %% Loop over height values to find the corresponding operating points for i = 1:length(height) % Set the ball height in the specification. opspec.States(5).x = height(i); % Update the model ball haight reference parameter. set_param('magball/Desired Height','Value',num2str(height(i))) % Trim the model [op(i),opreport(i)] = findop(model,opspec,opt); end
このスクリプトの実行後、
op
には、指定したheight
の値それぞれに対応する操作点が含まれます。