Main Content

曲線フィッター アプリから Simulink ルックアップ テーブルへの近似のエクスポート

この例では、曲線フィッターアプリを使用して曲面近似を作成し、その近似を Simulink®2-D Lookup Table (Simulink)にエクスポートする方法を説明します。同じワークフローに従って、曲線近似を1-D Lookup Table (Simulink)にエクスポートできます。

曲線フィッター アプリでの曲面近似の作成

BatteryDataFitter データセットを読み込みます。

load BatteryDataFitter

データセット内のテーブル batteryMeasurementData には、3 つのバッテリー測定変数、TemperatureSOC (充電状態)、Resistance が含まれています。

曲線フィッター アプリを開きます。

curveFitter

または、[アプリ] タブの [さらに表示] 矢印をクリックしてアプリ ギャラリーを表示します。[数学、統計および最適化] グループで [曲線フィッター] をクリックします。

曲線フィッター アプリで、近似のデータ変数を選択します。[曲線フィッター] タブの [データ] セクションで [データの選択] をクリックします。[近似データの選択] ダイアログ ボックスで、データ変数ごとにテーブル名 batteryMeasurementData を選択します。次に、[X データ] の値として Temperature[Y データ] の値として SOC[Z データ] の値として Resistance を選択します。

select_fitting_data.png

変数を選択すると、曲線フィッター アプリによってデータ点がプロットされます。既定では、データ点を通過する内挿曲面近似が作成されます。より滑らかな近似にするには、[近似オプション] ペインで、[内挿法]Cubic spline を選択します。内挿法の詳細については、内挿法についてを参照してください。

fitoptions_pane.png

3 次スプライン内挿あり、外挿なしの内挿近似が作成されます。データでは、Resistance の最大値と最小値に 2 つの外れ値が存在します。外れ値を削除するには、座標軸ツール バーの [外れ値を除外] をクリックしてから、近似プロット内の各外れ値をクリックします。

cubic_no_extrap.png

内挿曲面近似プロットから 2 つの外れ値が除外されました。

exclude_outliers.png

既定で、アプリは、3 次スプライン内挿法の場合、近似データの凸包の外側への外挿を行いません。最近傍外挿を使用して凸包の外側で Resistance を推定するには、[近似オプション] ペインで [外挿法]Nearest neighbor を選択します。外挿法の詳細については、各種内挿近似に対する外挿を参照してください。

外挿された Resistance 値は、近似データ領域を囲むステップとして表示されます。

cubic_nearest_extrap.png

Simulink ルックアップ テーブルへの近似のエクスポート

曲線フィッター アプリの [エクスポート] セクションで [エクスポート] をクリックし、[Simulink ルックアップ テーブルの作成] を選択します。次に、[Lookup Table ブロックの作成] を選択します。近似をルックアップ テーブル オプティマイザー アプリ (Fixed-Point Designer) にエクスポートすることもできます。詳細については、ルックアップ テーブル オプティマイザー (Fixed-Point Designer)を参照してください。

export_menu.png

[Simulink ルックアップ テーブルの作成] ダイアログ ボックスを使用して、変数 Temperature と変数 SOC[ブレークポイント 1][ブレークポイント 2] の値をそれぞれ指定します。ブレークポイントは一連の明示的な値または等間隔の値として指定できます。

Explicit values オプションにより、ベクトルを返すあらゆる式を使用してブレークポイントを指定できます。たとえば、colon演算子 (下の図を参照)、コンマ区切りリスト (例: 240, 255.6, 271.2, 286.8, 302.4)、または関数 (例: exp(1:10)) を使用できます。[ルックアップ テーブルのプレビュー] セクションには、Simulink ルックアップ テーブルと、そのテーブルの値に対応するヒート マップが表示されます。

look_up_table_preview.png

Even spacing オプションにより、一連の等間隔ブレークポイントを指定できます。各ブレークポイント セットについて、最初の点、間隔、点数を指定します。

look_up_table_preview_even_spacing.png

ここでは、既定のオプションを受け入れ、[Simulink へのテーブルのエクスポート] をクリックして、近似と外挿された値を Simulink ルックアップ テーブルにエクスポートします。

ルックアップ テーブルをもつ Simulink モデル

アプリから 2-D ルックアップ テーブル ブロックを含む新しい Simulink モデルが表示されます。ブロック名は surfaceblock です (曲線近似から作成した場合は curveblock です)。また、このモデルには 2 つの定数入力 (曲線近似の場合は 1 つの入力) と 1 つの表示出力があります。

simulink_block.png

ブロックの外挿法は、曲面近似の際に使用される外挿法とは異なることに注意してください。既定で、Extrapolation methodClip に設定されています。ルックアップ テーブル ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスの [アルゴリズム] タブを表示すると、Extrapolation method や他のメソッドを編集できます。

algorithm_tab.png

ブレークポイントを表示して編集するには、[ブロック パラメーター] ダイアログ ボックスの [テーブルとブレークポイント] タブにある [テーブルとブレークポイントの編集] をクリックします。ブレークポイントを編集する方法の例については、ブレークポイントとテーブル データの入力 (Simulink)を参照してください。

table_and_breakpoins_tab.png

別の Simulink モデルでのルックアップ テーブルの使用

曲線フィッター アプリで作成したルックアップ テーブルを別の Simulink モデルで使用できます。surfaceblock ブロックをコピーして、新しいモデルまたは既存のモデルに貼り付けます。また、現在のモデルのモデル ワークスペースから別のモデルのワークスペースに surfaceBlockParameters をコピーして貼り付ける必要があります。surfaceBlockParametersSimulink.LookupTable (Simulink)オブジェクトです。surfaceBlockParameters オブジェクトを見つけるには、[モデル化] タブの [設計] セッションで、矢印をクリックしてギャラリーを表示し、[リポジトリ] の下の [モデル ワークスペース] を選択します。モデル ワークスペースでは、コード生成設定を構成することもできます。

model_explorer.png

参考

アプリ

ブロック

オブジェクト

関連するトピック