ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

matlab.System クラス

パッケージ: matlab

System object の基底クラス

説明

matlab.System は System object の基底クラスです。クラス定義ファイルでは、この基底クラス (またはこの基底クラスから派生する別のクラス) から、オブジェクトをサブクラス化しなければなりません。サブクラス化により、この基底クラスで提供されている実装やサービス メソッドを使用してオブジェクトを構成できるようになります。matlab.System 基底クラスから直接継承するには、クラス定義ファイルの最初の行で次の構文を入力します。ここで、ObjectName は構成するオブジェクト名です。

classdef ObjectName < matlab.System

メモ

コードで使用する各 matlab.System メソッドに対し、Access = protected と設定しなければなりません。

メソッド

allowModelReferenceDiscreteSampleTimeInheritanceImpl離散サンプル時間に関するモデル参照のサンプル時間継承状態
getDiscreteStateImpl離散状態プロパティ値
getGlobalNamesImplMATLAB システム ブロックのグローバル変数名
getHeaderImplSystem object 表示のヘッダー
getImpulseResponseLengthImplDataflow Subsystem で用いる入力効果の長さを定義
getInputDimensionConstraintImplDataflow Subsystem で用いる入力の次元制約を定義
getNumInputsImplSystem object への入力数
getNumOutputsImplSystem object からの出力数
getOutputDimensionConstraintImplDataflow Subsystem で用いる出力の次元制約を定義
getSimulateUsingImpl[シミュレーション実行方法] パラメーターの値を指定
getSimulinkFunctionNamesImplSystem object で使用する Simulink 関数名の登録
infoImplSystem object に関する情報
isDiscreteStateSpecificationMutableImpl離散状態がデータ型を変更できるかどうかの制御
isInactivePropertyImpl非アクティブなプロパティのステータス
isInputComplexityMutableImplSystem object の入力の実数/複素数が変更できるかどうかの設定
isInputDataTypeMutableImplSystem object の入力データ型が変更できるかどうかの設定
isInputSizeLockedImpl入力サイズのロック状態
isInputSizeMutableImplSystem object の入力サイズが変更できるかどうかの設定
isTunablePropertyDataTypeMutableImpl調整可能なプロパティがデータ型を変更できるかどうかの設定
loadObjectImplMAT ファイルからの System object の読み込み
processInputSpecificationChangeImpl入力サイズ、実数/複素数、またはデータ型が変更されたときのアクションの実行
processTunedPropertiesImpl調整可能なプロパティが変更された場合のアクション
releaseImplリソースの解放
resetImplSystem object の状態のリセット
saveObjectImplMAT ファイルへの System object の保存
setPropertiesSystem object の作成時に名前と値のペアを使用したプロパティ値を設定
setupImplSystem object の初期化
showFiSettingsImplSystem object の固定小数点データ型タブの表示
showSimulateUsingImpl[シミュレーション実行方法] パラメーターの可視性
stepImplシステム出力と状態更新の式
supportsMultipleInstanceImplSimulink の For Each Subsystem における System object のサポート
validateInputsImplSystem object への入力の検証
validatePropertiesImplSystem object のプロパティ値の検証

属性

System object™ クラスおよびプロパティに属性を適用できます。属性の詳細については、クラスの属性またはプロパティの属性を参照してください。

クラス属性

次の表に、MATLAB® System object クラスに適用できる属性を示します。

属性名説明
StrictDefaults

仕様変更の変更を制限するメソッドの既定値をコントロールします。

  • isInputSizeMutableImpl

  • isInputComplexityMutableImpl

  • isInputDataTypeMutableImpl

  • isTunablePropertyDataTypeMutableImpl

  • isDiscreteStateDataTypeMutableImpl

既定では、これらのメソッドは true を返します。このクラス属性を追加すると、これらのメソッドは既定で false を返します。これらのメソッドが false を返すようにすることで、指定された入力の特性、調整可能なプロパティ、離散状態が変更できなくなります。これらのメソッドはいつでも個別に実装できます。カスタマイズされたメソッドは StrictDefaults 属性より優先されます。

Simulink® で使用される System object については、この属性は入力サイズの変更のみを制限します。Simulink は既に、調整可能なプロパティ、入力および状態について、実数/複素数およびデータ型を制限しているためです。

クラス属性値はクラス名の前にかっこで囲んで指定します。たとえば次のようにします。

classdef (StrictDefaults) MySystemObject < matlab.System

プロパティの属性

次の属性をカスタム System object の任意のプロパティに適用できます。

NontunableNontunable を使用して、オブジェクトの使用中にユーザーがプロパティ値を変更できないようにします。既定の設定では、すべてのプロパティは調整可能です。Nontunable 属性は、変更すると副次的影響が出るプロパティをロックするのに便利です。またこの属性は、処理中に一定であると仮定されているプロパティ値をロックするのにも便利です。入力端子や出力端子の数に影響を及ぼすプロパティは、常に Nontunable に指定します。
LogicalLogical を使用すると、プロパティ値が論理スカラー値に制限されます。0 や 1 など、logicalに変換できる任意のスカラー値も有効です。
PositiveIntegerPositiveInteger を使用すると、プロパティ値が正の整数に制限されます。
DiscreteStateDiscreteState を使用すると、getDiscreteState メソッドを使用したときに状態値が表示されるようにプロパティがマークされます。

すべて折りたたむ

matlab.System からサブクラス化される単純な System object AddOne を作成します。このコードを MATLAB ファイル AddOne.m に配置します。

classdef AddOne < matlab.System
% ADDONE Compute an output value that increments the input by one

    methods (Access = protected)
       % stepImpl method is called when the object is called.
       function y = stepImpl(~,x)
          y = x + 1;
       end    
    end
end

AddOne のインスタンスを作成し、入力を指定してオブジェクトを実行することで、このオブジェクトを使用します。

hAdder = AddOne;
x = 1;
hAdder(x);

クラス定義ファイルで定義する InitialValue プロパティに Nontunable 属性を割り当てます。

properties (Nontunable)
   InitialValue
end