Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

sldiscmdl

連続的なブロックを含むモデルの離散化

構文

sldiscmdl('model_name',sample_time)
sldiscmdl('model_name',sample_time,method)
sldiscmdl('model_name',sample_time,options)
sldiscmdl('model_name',sample_time,method,freq)
sldiscmdl('model_name',sample_time,method,options)
sldiscmdl('model_name',sample_time,method,freq,options)
[old_blks,new_blks] = sldiscmdl('model_name',sample_time,method,freq,options)

説明

sldiscmdl('model_name',sample_time) は、指定された sample_time を使って 'model_name' という名前のモデルを離散化します。モデルは開いている必要はありません。sample_time の単位はシミュレーションでの秒数です。

sldiscmdl('model_name',sample_time,method) は、sample_timemethod に指定された変換方法を使ってモデルを離散化します。

sldiscmdl('model_name',sample_time,options) は、sample_timeoptions cell 配列に指定された基準に従ってモデルを離散化します。この配列には次の 4 つの要素があります。{target, replace_with, put_into, prompt}。

sldiscmdl('model_name',sample_time,method,freq) は、sample_timemethod、および freq に指定された臨界周波数を使ってモデルを離散化します。freq の単位は Hz です。freq を指定するときは、method'prewarp' にしなければなりません。

sldiscmdl('model_name',sample_time,method,options) は、sample_timemethod、および options を使ってモデルを離散化します。

sldiscmdl('model_name',sample_time,method,freq,options) は、sample_timemethodfreq および options を使ってモデルを離散化します。freq を指定するときは、method'prewarp' にしなければなりません。

[old_blks,new_blks] = sldiscmdl('model_name',sample_time,method,freq,options) は、sample_timemethodfreq および options を使ってモデルを離散化します。freq を指定するときは、method'prewarp' にしなければなりません。この関数は、元の連続ブロックの絶対パス名の cell 配列と新しい離散化されたブロックの絶対パス名が入った cell 配列を返します。

入力引数

model_name

離散化するモデルの名前。

sample_time

モデルのサンプル時間は次のように指定できます。

スカラー値

1 などのオフセットなしのサンプル時間

2 要素ベクトル

[1 0.1] のようにオフセットがゼロ以外のサンプル時間

method

連続モードから離散モードに変換する方法は次のとおりです。

'zoh' (既定の設定)

入力のゼロ次ホールド

'foh'

入力の 1 次ホールド

'tustin'

双一次 (Tustin) 近似

'prewarp'

周波数プリワープを伴う Tustin 近似

'matched'

極-零点マッチング法

単入力、単出力 (SISO) システムのみ

freq

臨界周波数 (Hz)。この入力は method'prewarp' のときにしか適用できません。

options

cell 配列 {target, replace_with, put_into, prompt}。各要素の値は次のようになります。

target

'all' (既定の設定)

すべての連続ブロックを離散化します。

'selected'

モデル内の選択されたブロックのみが離散化されます。

'full_blk_path'

指定されたブロックを離散化します。

replace_with

'parammask' (既定の設定)

パラメーターが対応する連続ブロックから受け継がれる離散ブロックを作成します。

'hardcoded'

パラメーターが各ブロックのダイアログ ボックスに直接挿入されハードコードされた離散ブロックを作成します。

put_into

'copy' (既定の設定)

元のモデルのコピー内に離散ブロックを作成します。

'variant'

Variant Subsystem 内に離散ブロックの候補を作成します。

'current'

現在のモデルを離散化します。

'untitled'

新しい無題ウィンドウ内に離散ブロックを作成します。

prompt

'on' (既定の設定)

コマンド プロンプトに離散化情報を表示します。

'off'

コマンド プロンプトに離散化情報を表示しません。

1 秒のサンプル時間を使って slexAircraftExample モデル内のすべての連続ブロックを離散化します。

openExample('slexAircraftExample');
sldiscmdl('slexAircraftExample',1);

slexAircraftExample というモデル内の Aircraft Dynamics Model というサブシステムを、1 秒のサンプル時間、0.1 秒のオフセットおよび 1 次ホールド変換手法を使って離散化します。

sldiscmdl('slexAircraftExample',[1 0.1],'foh',...
{'slexAircraftExample/Aircraft Dynamics Model',... 
'parammask','copy','on'});

slexAircraftExample というモデル内の Aircraft Dynamics Model というサブシステムを離散化して、2 番目の離散化されたブロックの絶対パス名を取得します。

[old_blks,new_blks] = sldiscmdl('slexAircraftExample',[1 0.1],...
'foh',{'slexAircraftExample/Aircraft Dynamics Model','parammask',...
'copy','on'});
% Get full path name of the second discretized block
new_blks{2}

1 秒のサンプル時間を使って slexAircraftExample モデル内のすべての連続ブロックを離散化します。

openExample('slexAircraftExample');
[old_blk,new_blk] = sldiscmdl('f14',1,'zoh',...
{'f14/Aircraft Dynamics Model',...
'parammask','variant','on'})
--discretizing 'f14/Aircraft Dynamics Model' and putting results into a variant subsystem

old_blk =

  1x1 cell array

    {'f14/Aircraft Dynamics Model'}

new_blk =

  1x1 cell array

    {'f14/Aircraft↵Dynamics↵Model'}

バージョン履歴

R2006a より前に導入