メインコンテンツ

Discrete FIR Filter ブロックのカスタム状態属性

この例では、モデル データ エディターを使用して Discrete FIR Filter ブロックの状態属性をカスタマイズする方法を説明します。モデル データ エディターでは、並べ替え、グループ化、フィルター処理が可能なリスト内でデータ項目を検証および編集できます。

Discrete FIR Filter ブロックを含む簡単なモデルについて考えます。

Discrete FIR Filter block connected to an inport and an outport.

コード マッピング エディターまたはコード マッピング API を使用して、Discrete FIR Filter の状態を別個のグローバル変数として生成コードに表示するように設定できます。これを行うには、状態のストレージ クラスを ExportedGlobal として宣言します。生成コードでの内部状態の格納方法の詳細については、生成されたコードによる内部信号、状態、パラメーター データの保存方法 (Simulink Coder)を参照してください。ストレージ クラスの詳細と状態への適用方法については、C Data Code Interface Configuration for Model Interface Elements (Simulink Coder)を参照してください。

モデル データ エディターを開く

モデル データ エディターを開きます。[モデル化] タブで [モデル データ エディター] をクリックします。

[状態] タブで、[名前]myState と入力します。Coder アプリで [ストレージ クラス][ExportedGlobal] に設定します。[Resolve] チェック ボックスをオンにして、状態名を Simulink® の信号オブジェクトに関連付けるように設定することもできます。

Model Data Editor opened below the model canvas with the States tab selected. There is one row in the table for the Discrete FIR Filter block. The Name is set to myState, the Storage Class is set to ExportedGlobal and the Resolve check box is cleared.

モデルのビルドと生成コードの検証

この例では、コード生成のみを行うようにモデルを設定します。Simulink エディターでコンフィギュレーション ボタン Gear icon. をクリックして [コンフィギュレーション パラメーター] を開きます。[コード生成] ペインで、[コード生成のみ] を選択します。[適用] をクリックします。

[レポート] ペインで、[コード生成レポートを作成][レポートを自動的に開く] を選択します。[適用] をクリックします。これらの設定により、レポートが作成されて HTML ビューアーで自動的に開きます。

ビルドを開始するには、Simulink エディターで [モデルのビルド] ボタン をクリックするか、Ctrl+B キーを押します。ビルド プロセスで、コード生成レポート ファイルがビルド フォルダーの html サブフォルダーに書き込まれます。その後、HTML ビューアーが自動的に開き、コード生成レポートが表示されます。このレポートを使用して、生成されたコードを表示して解析することができます。生成されるレポートの詳細については、コード生成レポート (Simulink Coder)を参照してください。

A Code Generation Report. On the left is a Contents pane with links to each section of the report, and a Generated Files section with links to each source code file. The pane on the right displays the report. The report is open to the Summary page.

custom_state_attributes.h ファイルで、ストレージ クラスが ExportedGlobal であることから、フィルターの状態が外部変数として宣言されていることを確認できます。

Code generation report with the header file displayed and the filter state declaration highlighted.

ストレージ クラスを変更してモデルをリビルドすると、生成コードに変更が反映されることを確認できます。この状態属性をカスタマイズする機能により、生成コードでの状態の表示を合理化してカスタマイズすることができます。

参考

ツール

ブロック

トピック