Main Content

convertUnits

Simulink.sdi.Signal オブジェクトの単位を変換

説明

convertUnits(sig,units) は、Simulink.sdi.Signal オブジェクト sig の保存された単位を units で指定された単位に変換します。保存された単位を変換すると、単位の表示が更新されます。サポートされる単位のリストについては、Allowed Units を参照してください。関数 convertUnits を使用して、すべての組み込み型および固定小数点型のデータを含む Simulink.sdi.Signal オブジェクトの単位を変換できます。

メモ

単位変換は元に戻すことをサポートしておらず、桁落ちが発生する可能性があります。

すべて折りたたむ

関数 convertUnits を使用して Simulink.sdi.Signal オブジェクトの保存された単位を変換します。この例ではモデル sldemo_autotrans のシミュレーションによって生成されたデータを使用します。Signal オブジェクトの保存された単位を変換するときに、シミュレーション データ インスペクターはデータの変換を実行し、信号を表示するすべてのプロットに対する信号の表示単位を更新します。Signal オブジェクトの保存された単位を変更しても、その信号を作成したモデルには影響しません。

シミュレーション データの生成

sldemo_autotrans モデルのシミュレーションを実行し、シミュレーション データ インスペクターで実行を作成します。次に、関数 Simulink.sdi.Run.getLatest を使用してシミュレーションに対応する Run オブジェクトにアクセスします。

out = sim('sldemo_autotrans');

autoRun = Simulink.sdi.Run.getLatest;

信号プロパティの検査

EngineRPM 信号の Simulink.sdi.Signal オブジェクトを取得し、StoredUnits プロパティと DisplayUnits プロパティをチェックします。

engine_sig = getSignalsByName(autoRun,'EngineRPM');

engine_sig.StoredUnits
ans = 
'rpm'
engine_sig.DisplayUnits
ans = 
'rpm'

保存された単位の変換

関数 convertUnits を使用して EngineRPM 信号単位を rad/s に変換します。保存された単位を変換すると、単位の表示が更新されます。次に、新しい単位を反映するように信号名を変更します。

convertUnits(engine_sig,'rad/s')
engine_sig.Name = 'EngineFreq,rad/s';

変更された信号のプロパティをチェックします。

engine_sig.StoredUnits
ans = 
'rad/s'
engine_sig.DisplayUnits
ans = 
'rad/s'
engine_sig.Name
ans = 
'EngineFreq,rad/s'

入力引数

すべて折りたたむ

変換する単位をもつ信号。Simulink.sdi.Signal オブジェクトとして指定します。

目的の信号単位。string または文字ベクトルとして指定します。許容される単位のリストについては、Allowed Units を参照してください。

例: 'm'

例: "ft/s"

データ型: char | string

バージョン履歴

R2018a で導入