単純なアルゴリズムの実装
この例では、Simulink® の単純な System object™ と MATLAB System ブロックを一緒に使用する方法を示します。
System object
System object を使用すると、MATLAB® でのアルゴリズムの実装が可能になります。System object は入力が時間経過とともに変化する動的システムを実装およびシミュレーションするために特別に設計された、特殊な種類の MATLAB オブジェクトです。
System object を定義すれば、MATLAB System ブロックを使用してそれをモデルに含めることができます。
モデルを開いてシミュレート
このモデルには、入力に 2 を乗算する System object TimesTwo
を使用する MATLAB System ブロックがあります。MATLAB System ブロックへの入力は Sine Wave ブロックによって提供されます。Scope ブロックに出力が入力と共に表示されます。モデルを実行するときに、Scope ブロックで MATLAB System ブロックへの入力に 2 が乗算されることがわかります。
System object クラスの定義
[ブロック パラメーター] ダイアログ ボックスで [ソース コード] ハイパーリンクをクリックすることで、MATLAB System ブロックによって使用される MATLAB ソース コードにアクセスできます。System object は stepImpl
メソッドのみを実装します。アルゴリズムにはプロパティも追加のメソッドも必要ありません。
classdef TimesTwo < matlab.System %TimesTwo Multiply input by 2 % obj = TimesTwo returns a System object, obj, that % multiples its input by two. methods(Access = protected) function y = stepImpl(~, u) y = 2 * u; end end end
MATLAB System ブロックのアイコンとダイアログ ボックス
MATLAB System ブロックでは、System object TimesTwo
の名前がブロックに表示され、TimesTwo
クラスの stepImpl
メソッドからの入力および出力変数名を端子ラベルとして使用します。ブロックをダブル クリックして MATLAB System の [ブロック パラメーター] ダイアログ ボックスを開くと、ダイアログ ボックスには TimesTwo
というタイトルと、Multiply input by 2
という説明が表示されます。タイトルは System object の名前から取得され、説明は System object のクラス ヘルプ概要から作成されます。