曲線フィッター アプリから Simulink ルックアップ テーブルへの近似のエクスポート
この例では、曲線フィッターアプリを使用して曲面近似を作成し、その近似を Simulink®2-D Lookup Table (Simulink)にエクスポートする方法を説明します。同じワークフローに従って、曲線近似を1-D Lookup Table (Simulink)にエクスポートできます。
曲線フィッター アプリでの曲面近似の作成
BatteryDataFitter
データセットを読み込みます。
load BatteryDataFitter
データセット内のテーブル batteryMeasurementData
には、3 つのバッテリー測定変数、Temperature
、SOC
(充電状態)、Resistance
が含まれています。
曲線フィッター アプリを開きます。
curveFitter
または、[アプリ] タブの [さらに表示] 矢印をクリックしてアプリ ギャラリーを表示します。[数学、統計および最適化] グループで [曲線フィッター] をクリックします。
曲線フィッター アプリで、近似のデータ変数を選択します。[曲線フィッター] タブの [データ] セクションで [データの選択] をクリックします。[近似データの選択] ダイアログ ボックスで、データ変数ごとにテーブル名 batteryMeasurementData
を選択します。次に、[X データ] の値として Temperature
、[Y データ] の値として SOC
、[Z データ] の値として Resistance
を選択します。
変数を選択すると、曲線フィッター アプリによってデータ点がプロットされます。既定では、データ点を通過する内挿曲面近似が作成されます。より滑らかな近似にするには、[近似オプション] ペインで、[内挿法] に Cubic spline
を選択します。内挿法の詳細については、内挿法についてを参照してください。
3 次スプライン内挿あり、外挿なしの内挿近似が作成されます。データでは、Resistance
の最大値と最小値に 2 つの外れ値が存在します。外れ値を削除するには、座標軸ツール バーの [外れ値を除外] をクリックしてから、近似プロット内の各外れ値をクリックします。
内挿曲面近似プロットから 2 つの外れ値が除外されました。
既定で、アプリは、3 次スプライン内挿法の場合、近似データの凸包の外側への外挿を行いません。最近傍外挿を使用して凸包の外側で Resistance
を推定するには、[近似オプション] ペインで [外挿法] に Nearest neighbor
を選択します。外挿法の詳細については、各種内挿近似に対する外挿を参照してください。
外挿された Resistance
値は、近似データ領域を囲むステップとして表示されます。
Simulink ルックアップ テーブルへの近似のエクスポート
曲線フィッター アプリの [エクスポート] セクションで [エクスポート] をクリックし、[Simulink ルックアップ テーブルの作成] を選択します。次に、[Lookup Table ブロックの作成] を選択します。近似をルックアップ テーブル オプティマイザー アプリ (Fixed-Point Designer) にエクスポートすることもできます。詳細については、ルックアップ テーブル オプティマイザー (Fixed-Point Designer)を参照してください。
[Simulink ルックアップ テーブルの作成] ダイアログ ボックスを使用して、変数 Temperature
と変数 SOC
に [ブレークポイント 1] と [ブレークポイント 2] の値をそれぞれ指定します。ブレークポイントは一連の明示的な値または等間隔の値として指定できます。
Explicit values
オプションにより、ベクトルを返すあらゆる式を使用してブレークポイントを指定できます。たとえば、colon
演算子 (下の図を参照)、コンマ区切りリスト (例: 240, 255.6, 271.2, 286.8, 302.4
)、または関数 (例: exp(1:10)
) を使用できます。[ルックアップ テーブルのプレビュー] セクションには、Simulink ルックアップ テーブルと、そのテーブルの値に対応するヒート マップが表示されます。
Even spacing
オプションにより、一連の等間隔ブレークポイントを指定できます。各ブレークポイント セットについて、最初の点、間隔、点数を指定します。
ここでは、既定のオプションを受け入れ、[Simulink へのテーブルのエクスポート] をクリックして、近似と外挿された値を Simulink ルックアップ テーブルにエクスポートします。
ルックアップ テーブルをもつ Simulink モデル
アプリから 2-D ルックアップ テーブル ブロックを含む新しい Simulink モデルが表示されます。ブロック名は surfaceblock です (曲線近似から作成した場合は curveblock です)。また、このモデルには 2 つの定数入力 (曲線近似の場合は 1 つの入力) と 1 つの表示出力があります。
ブロックの外挿法は、曲面近似の際に使用される外挿法とは異なることに注意してください。既定で、Extrapolation method
は Clip
に設定されています。ルックアップ テーブル ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスの [アルゴリズム] タブを表示すると、Extrapolation method
や他のメソッドを編集できます。
ブレークポイントを表示して編集するには、[ブロック パラメーター] ダイアログ ボックスの [テーブルとブレークポイント] タブにある [テーブルとブレークポイントの編集] をクリックします。ブレークポイントを編集する方法の例については、ブレークポイントとテーブル データの入力 (Simulink)を参照してください。
別の Simulink モデルでのルックアップ テーブルの使用
曲線フィッター アプリで作成したルックアップ テーブルを別の Simulink モデルで使用できます。surfaceblock ブロックをコピーして、新しいモデルまたは既存のモデルに貼り付けます。また、現在のモデルのモデル ワークスペースから別のモデルのワークスペースに surfaceBlockParameters
をコピーして貼り付ける必要があります。surfaceBlockParameters
はSimulink.LookupTable
(Simulink)オブジェクトです。surfaceBlockParameters
オブジェクトを見つけるには、[モデル化] タブの [設計] セッションで、矢印をクリックしてギャラリーを表示し、[リポジトリ] の下の [モデル ワークスペース] を選択します。モデル ワークスペースでは、コード生成設定を構成することもできます。
参考
アプリ
ブロック
- 2-D Lookup Table (Simulink) | 1-D Lookup Table (Simulink)
オブジェクト
Simulink.LookupTable
(Simulink)
関連するトピック
- 対話型の曲線近似および曲面近似
- Curve Fitting Toolbox による内挿
- ルックアップ テーブルの構造 (Simulink)
- ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集 (Simulink)
- ルックアップ テーブル データの特性 (Simulink)