Main Content

MATLAB エディターを使用した System object コードの挿入

コード挿入による System object の定義

MATLAB® エディターのコード挿入オプションを使用して System object を定義できます。これらのオプションを選択すると、MATLAB エディターが事前定義されたプロパティ、メソッド、状態、入力または出力を System object™ に追加します。これらのツールを使用すると、System object の作成と変更を高速化し、入力エラーを削減することで正確性を高めることができます。MATLAB Online では GUI が多少異なりますが、機能は同じです。

System object の編集オプションにアクセスするには、新規の System object を作成するか、既存の System object を開きます。

Toolstrip with System object editing options

事前定義されたコードを System object に追加するには、適切なメニューからコードを選択します。たとえば、[プロパティの挿入][数値] をクリックすると、MATLAB エディターが次のコードを追加します。

    properties(Nontunable)
        Property
    end

MATLAB エディターは既定名 Property をもつ新規プロパティを挿入します。この名前は変更できます。Nontunable 属性をもつ既存のプロパティ グループがある場合、MATLAB エディターは新規プロパティをそのグループに挿入します。プロパティ グループが存在しない場合、MATLAB エディターは適切な属性をもつプロパティ グループを作成します。

挿入オプション

プロパティ

System object のプロパティ: numeric、logical、enumeration、positive integer、tunable numeric、private、protected、および custom。enumeration または custom プロパティを選択すると別のダイアログ ボックスが開き、これらのプロパティの作成をガイドします。

メソッド

System object の定義でよく使用されるメソッド。MATLAB エディターはメソッドの構造のみを作成します。そのメソッドのアクションはユーザーが指定します。

[メソッドの挿入] メニューは、[アルゴリズム][入力と出力][プロパティと状態] などメソッドをカテゴリ別にまとめます。メニューからメソッドを選択すると、MATLAB エディターが System object コードにメソッドのテンプレートを挿入します。この例では、[メソッドの挿入][リソースの解放] の順に選択して次のコードを挿入します。

   function releaseImpl(obj)
       % Release resources, such as file handles
   end

[メソッドの挿入] メニューからのメソッドが System object コード内に存在する場合、そのメソッドは [メソッドの挿入] メニューに影付きで表示されます。

Insert Method menu with existing methods in code shown with a shaded bar

状態

DiscreteState 属性を含んだプロパティ。

入力/出力

[入力の検証][入力サイズの変更を許可しない] などの入力、出力および関連メソッド。

入力または出力を選択すると、MATLAB エディターが指定されたコードを stepImpl メソッドに入力します。この例では、[挿入][入力] と選択することにより、MATLAB エディターが必要な入力変数 u2 を入力します。MATLAB エディターによって変数名が指定されますが、挿入後に変更できます。

      function y = stepImpl(obj,u,u2)
          % Implement algorithm. Calculate y as a function of
          % input u and discrete states.
          y = u;
      end

温度列挙の作成

  1. 新規または既存の System object を開きます。

  2. MATLAB エディターで [プロパティの挿入][列挙] の順に選択します。

  3. [列挙値] ダイアログ ボックスで、以下を入力します。

    1. [プロパティ名]TemperatureUnit

    2. [列挙名]TemperatureUnitValues

  4. [新規列挙値の作成] チェック ボックスをオンにします。

  5. 既存の列挙値を [-] (マイナス) ボタンを使って削除します。

  6. [+] (プラス) ボタンと以下の値を使って 3 つの列挙値を追加します。

    • Fahrenheit

    • Celsius

    • Kelvin

  7. [既定] をクリックして Fahrenheit を既定値として選択します。

    ダイアログ ボックスが次のようになります。

    Created enumeration dialog for temperature units

  8. この列挙値と関連付けられたクラスを作成するには、[挿入] をクリックします。

  9. MATLAB エディターで、列挙型定義をもつ追加のクラス ファイルが作成されます。列挙型クラス定義ファイルを TemperatureUnitValues.m の名前で保存します。

    classdef TemperatureUnitValues < int32
        enumeration
            Fahrenheit (0)
            Celsius (1)
            Kelvin (2)
        end
    end

    System object クラス定義で、以下のコードが追加されています。

      properties(Nontunable)
        TemperatureUnit (1, 1) TemperatureUnitValues = TemperatureUnitValues.Fahrenheit
      end

列挙型についての詳細については、プロパティ値を有限個のリストに制限を参照してください。

氷点のカスタム プロパティの作成

  1. 新規または既存の System object を開きます。

  2. MATLAB エディターで、[プロパティの挿入][カスタム プロパティ] の順に選択します。

  3. [カスタム プロパティ] ダイアログ ボックスの [System object の属性][Nontunable] を選択します。[MATLAB プロパティの属性][Constant] を選択します。[GetAccess][public] のままにしておきます。タイプが Constant のプロパティは System object メソッドを使用して設定できないため、[SetAccess] はグレー表示になっています。

  4. [挿入] をクリックすると次のコードが System object 定義に挿入されます。

        properties(Nontunable, Constant)
            Property
        end
  5. Property を自分のプロパティに置き換えます。

        properties(Nontunable, Constant)
            FreezingPointFahrenheit = 32;
        end

入力を検証するメソッドの追加

  1. 新規または既存の System object を開きます。

  2. MATLAB エディターで、[メソッドの挿入][入力の検証] を選択します。

    MATLAB エディターがこのコードを System object に挿入します。

        function validateInputsImpl(obj,u)
           % Validate inputs to the step method at initialization
        end

関連するトピック