MATLAB エディターを使用した System object コードの挿入
コード挿入による System object の定義
MATLAB® エディターのコード挿入オプションを使用して System object を定義できます。これらのオプションを選択すると、MATLAB エディターが事前定義されたプロパティ、メソッド、状態、入力または出力を System object™ に追加します。これらのツールを使用すると、System object の作成と変更を高速化し、入力エラーを削減することで正確性を高めることができます。MATLAB Online では GUI が多少異なりますが、機能は同じです。
System object の編集オプションにアクセスするには、新規の System object を作成するか、既存の System object を開きます。
事前定義されたコードを 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 コード内に存在する場合、そのメソッドは [メソッドの挿入] メニューに影付きで表示されます。 |
状態 |
|
入力/出力 | [入力の検証] や [入力サイズの変更を許可しない] などの入力、出力および関連メソッド。 入力または出力を選択すると、MATLAB エディターが指定されたコードを function y = stepImpl(obj,u,u2) % Implement algorithm. Calculate y as a function of % input u and discrete states. y = u; end |
温度列挙の作成
新規または既存の System object を開きます。
MATLAB エディターで [プロパティの挿入] 、 [列挙] の順に選択します。
[列挙値] ダイアログ ボックスで、以下を入力します。
[プロパティ名] に
TemperatureUnit
[列挙名] に
TemperatureUnitValues
[新規列挙値の作成] チェック ボックスをオンにします。
既存の列挙値を [-] (マイナス) ボタンを使って削除します。
[+] (プラス) ボタンと以下の値を使って 3 つの列挙値を追加します。
Fahrenheit
Celsius
Kelvin
[既定] をクリックして
Fahrenheit
を既定値として選択します。ダイアログ ボックスが次のようになります。
この列挙値と関連付けられたクラスを作成するには、[挿入] をクリックします。
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
列挙型についての詳細については、プロパティ値を有限個のリストに制限を参照してください。
氷点のカスタム プロパティの作成
新規または既存の System object を開きます。
MATLAB エディターで、[プロパティの挿入] 、 [カスタム プロパティ] の順に選択します。
[カスタム プロパティ] ダイアログ ボックスの [System object の属性] で [Nontunable] を選択します。[MATLAB プロパティの属性] で [Constant] を選択します。[GetAccess] は
[public]
のままにしておきます。タイプが Constant のプロパティは System object メソッドを使用して設定できないため、[SetAccess] はグレー表示になっています。[挿入] をクリックすると次のコードが System object 定義に挿入されます。
properties(Nontunable, Constant) Property end
Property
を自分のプロパティに置き換えます。properties(Nontunable, Constant) FreezingPointFahrenheit = 32; end
入力を検証するメソッドの追加
新規または既存の System object を開きます。
MATLAB エディターで、[メソッドの挿入] 、 [入力の検証] を選択します。
MATLAB エディターがこのコードを System object に挿入します。
function validateInputsImpl(obj,u) % Validate inputs to the step method at initialization end