Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Simulink モデルの変更と操作点の仕様の同期

Simulink® モデルを変更すると、状態、入力、または出力が変更、追加、または削除される可能性があり、それによって操作点が変更されます。既存の操作点の仕様オブジェクトを同期して、モデル内の変更を反映させることができます。

定常状態マネージャーを使用したモデルの変更の同期

定常状態マネージャーが開いている間に Simulink モデルを変更する場合、定常状態マネージャーで操作点の仕様を同期して、モデルの変更を反映させなければなりません。

Simulink モデルを開きます。

sys = ('scdspeedctrl');
open_system(sys)

定常状態マネージャーを開くには、Simulink モデル ウィンドウの [アプリ] ギャラリーで [定常状態マネージャー] をクリックします。

現在のモデル コンフィギュレーションに基づいて操作の仕様を作成するには、定常状態マネージャー[定常状態] タブで [仕様の平衡化] をクリックします。

[spec1] ドキュメントでは Reference Filter ブロックが 1 つの状態をもちます。

Simulink モデル ウィンドウで Reference Filter ブロックをダブルクリックします。伝達関数の [分子係数]100 に変更し、[分母係数][1 20 100] に変更します。

[OK] をクリックします。

この変更によりフィルターの次数が大きくなり、Simulink モデルに状態が追加されます。

操作点の仕様を更新してモデルの変更を反映させるには、定常状態マネージャー[仕様] タブで [モデルから同期] をクリックします。

仕様が更新されます。ここで Reference Filter ブロックは 2 つの状態をもちます。

これらの仕様を満たす操作点を見つけるには、[仕様] タブで [平衡化] Play button をクリックします。

モデル線形化器を使用したモデルの変更の同期

モデル線形化器が開いている間に Simulink モデルを変更する場合、モデル線形化器で操作点の仕様を同期して、モデルの変更を反映させなければなりません。

Simulink モデルを開きます。

sys = ('scdspeedctrl');
open_system(sys)

モデル線形化器を開くには、Simulink モデル ウィンドウの [アプリ] ギャラリーで、[モデル線形化器] をクリックします。

モデル線形化器[操作点] ドロップダウン リストで、[モデルの平衡化] を選択します。

[モデルの平衡化] ダイアログ ボックスで、Reference Filter ブロックは状態を 1 つ含みます。

Simulink モデル ウィンドウで Reference Filter ブロックをダブルクリックします。伝達関数の [分子係数]100 に変更し、[分母係数][1 20 100] に変更します。

[OK] をクリックします。

この変更によりフィルターの次数が大きくなり、Simulink モデルに状態が追加されます。

操作点の仕様を更新してモデルの変更を反映させるには、[モデルの平衡化] ダイアログ ボックスで、[モデルと同期] をクリックします。

仕様が更新されます。ここで Reference Filter ブロックは 2 つの状態をもちます。

これらの仕様を満たす操作点を見つけるには、[平衡化の開始] をクリックします。

コマンド ラインを使用したモデルの変更の同期

以下の例では、既存の操作点の仕様オブジェクトを Simulink® モデルの変更で更新する方法を示します。

モデルを開きます。

sys = 'scdspeedctrl';
open_system(sys)

現在のモデル コンフィギュレーションに基づいて操作点の仕様オブジェクトを作成します。

opspec = operspec(sys)
opspec = 


 Operating point specification for the Model scdspeedctrl.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
     x         Known    SteadyState     Min         Max        dxMin       dxMax   
___________ ___________ ___________ ___________ ___________ ___________ ___________
                                                                                   
(1.) scdspeedctrl/External Disturbance/Transfer Fcn
     0         false       true        -Inf         Inf        -Inf         Inf    
     0         false       true        -Inf         Inf        -Inf         Inf    
(2.) scdspeedctrl/PID Controller/Filter/Cont. Filter/Filter
     0         false       true        -Inf         Inf        -Inf         Inf    
(3.) scdspeedctrl/PID Controller/Integrator/Continuous/Integrator
  8.9768       false       true        -Inf         Inf        -Inf         Inf    
(4.) scdspeedctrl/Reference Filter/State Space
    200        false       true        -Inf         Inf        -Inf         Inf    
(5.) scdspeedctrl/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar
  0.54363      false       true        -Inf         Inf        -Inf         Inf    
(6.) scdspeedctrl/Vehicle Dynamics/w = T//J w0 = 209 rad//s
 209.4395      false       true        -Inf         Inf        -Inf         Inf    

Inputs: None 
----------

Outputs: None 
----------

Reference Filter ブロックの伝達関数を変更します。分子パラメーターを 100分母パラメーターを [1 20 100] に設定します。

set_param('scdspeedctrl/Reference Filter','N',"100");
set_param('scdspeedctrl/Reference Filter','D',"[1 20 100]");

モデル パラメーターが変更されたため、次のコマンドを使用して opspec の仕様を満たす操作点を検出しようとすると、エラーが発生します。

op = findop(sys,opspec);

操作点の仕様オブジェクトを更新して、モデルの変更を反映させます。

opspec = update(opspec);

更新された仕様を満たす操作点を見つけます。

op = findop(sys,opspec);
 Operating point search report:
---------------------------------

opreport = 


 Operating point search report for the Model scdspeedctrl.
 (Time-Varying Components Evaluated at time t=0)

Operating point specifications were successfully met.
States: 
----------
    Min          x          Max        dxMin        dx         dxMax   
___________ ___________ ___________ ___________ ___________ ___________
                                                                       
(1.) scdspeedctrl/External Disturbance/Transfer Fcn
   -Inf          0          Inf          0           0           0     
   -Inf          0          Inf          0           0           0     
(2.) scdspeedctrl/PID Controller/Filter/Cont. Filter/Filter
   -Inf          0          Inf          0           0           0     
(3.) scdspeedctrl/PID Controller/Integrator/Continuous/Integrator
   -Inf       8.9768        Inf          0      -4.5077e-14      0     
(4.) scdspeedctrl/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar
   -Inf       0.54363       Inf          0      2.9365e-15       0     
(5.) scdspeedctrl/Vehicle Dynamics/w = T//J w0 = 209 rad//s
   -Inf      209.4395       Inf          0      -1.5226e-13      0     
(6.) scdspeedctrl/Reference Filter/State Space
   -Inf          0          Inf          0           0           0     
   -Inf         20          Inf          0           0           0     

Inputs: None 
----------

Outputs: None 
----------

操作点の仕様オブジェクトを更新した後は、最適化アルゴリズムによって操作点が正しく検出されます。

参考

関連するトピック