主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

基本的な系统对象の定義

この例では,数値を1つずつインクリメントする基本的な系统对象™の作成方法を示します。この例で使用するクラス定義ファイルには,系统对象の定義に最低限必要な要素が含まれています。

系统对象クラスの作成

垫ファイルを作成して編集するか,MATLAB®エディターを使用して,系统对象を作成することができます。この例では,MATLABエディターの[新規]メニューの使用方法を説明します。

  1. MATLABの[エディター]タブで,[新規](系统对象)[標準]の順に選択します。シンプルな系统对象テンプレートが開きます。

  2. matlab。系统からのオブジェクトをサブクラス化します。ファイルの最初の行で无标题的AddOneに置き換えます。

    classdefAddOne < matlab。系统

    系统对象は1つのmatlab。系统基底クラスで構成され,1つ以上のmixinクラスを含む場合があります。基底クラスとmixinクラスは,クラス定義ファイルの最初の行で指定します。

  3. ファイルをAddOne.mという名前で保存します。

アルゴリズムの定義

stepImplメソッドには,オブジェクトを呼び出すときに実行するアルゴリズムが含まれています。系统对象によって実行されるアクションを含むように、このメソッドを定義します。

  1. 作成した標準の系统对象内にあるstepImplメソッドのテンプレートを検査します。

    方法(Access = protected)函数y = stepImpl (obj, u)%的实现算法。计算y作为输入u和的函数%离散状态。y = u;结束结束

    stepImplメソッドは内部メソッドであり,直接の呼び出しや実行は行われないため,このメソッドのアクセスは常に受保护的に設定します。

    静的メソッドを除くすべてのメソッドでは,系统对象のハンドルが最初の入力引数でなければなりません。MATLABエディターによって挿入される既定値はobjです。系统对象のハンドルには任意の名前を使用できます。

    既定では,入力と出力の数はいずれも1つです。入力と出力は[入力/出力]を使って追加できます。可変個の入力や出力を使用することもできます。入力数の変更を参照してください。

    あるいは,垫ファイルを編集して系统对象を作成する場合は,[メソッドの挿入)[アルゴリズムの実装)を使用してstepImplメソッドを追加できます。

  2. stepImplメソッドで計算を変更してuの値に1を追加します。

    方法(Access = protected)函数y = stepImpl(~,u) y = u + 1;结束

    ヒント

    オブジェクトハンドルを渡す代わりにチルダ()を使用して,オブジェクトハンドルが関数で使用されていないことを示すことができます。オブジェクトハンドルの代わりに“~”を使用することによって,未使用の変数に関する警告の発生が回避されます。

  3. 既定の設定で標準テンプレートに含まれている未使用のメソッドを削除します。

    これらのメソッドを変更して系统对象のアクションとプロパティをさらに追加することができます。まったく変更を加えないことも可能であり,その場合でも系统对象は意図したように機能します。

これで,クラス定義ファイルに,この系统对象に必要なすべてのコードが含まれました。

classdefAddOne < matlab。系统% ADDONE计算一个大于输入值1的输出值%所有方法都出现在方法声明中。% stepImpl方法具有受保护访问权限方法(访问=保护)函数y = stepImpl(~,u) y = u + 1;结束结束结束

参考

|||

関連するトピック