メインコンテンツ

Rotary Switch

ダイヤルでパラメーターの値を切り替えて設定

  • Rotary Switch block

ライブラリ:
Simulink / Dashboard

説明

Rotary Switch は、シミュレーション中に接続されているブロック パラメーターの値をいくつかの指定された値に変更します。たとえば、Rotary Switch ブロックをモデルの入力信号の振幅または周波数に接続し、シミュレーション中にその特性を変更できます。Rotary Switch ブロックを他の Dashboard ブロックと共に使用して、モデルを制御する対話型のダッシュボードを作成します。

Rotary Switch ブロックをダブルクリックしても、シミュレーション中やブロックが選択されているときは、そのダイアログ ボックスは開きません。ブロックのパラメーターを編集する場合は、[プロパティ インスペクター] を使用するか、ブロックを右クリックして [ブロック パラメーター] ボタン をクリックできます。

Dashboard ブロックの接続

Dashboard ブロックはモデル要素への接続に端子を使用しません。Dashboard ブロックを接続するには、接続モードを使用します。接続されていないブロックで接続モードに切り替えるには、接続するブロックをポイントし、[接続] ボタン をクリックします。接続されているブロックで接続モードに切り替えるには、ブロックを選択すると表示される省略記号 (…) をポイントし、展開されるアクション メニューで [接続] ボタンをクリックします。

制御ブロックをモデル内のパラメーターに接続するか、制御ブロックの接続を変更するには、接続モードに切り替えます。接続するパラメーターが含まれているブロックを選択します。表示されるリストから、接続するパラメーターを選択します。次に、Dashboard ブロックをポイントし、[接続完了] ボタン をクリックします。

モデルのブロック線図を更新するまで、制御ブロックは値が変数であるパラメーターに接続できません。シミュレーションが実行されていないときに、値が変数であるパラメーターに接続するか、接続されているパラメーターの値である変数の値を変更するには、Ctrl+D を押してモデルのブロック線図を更新します。

スカラー値をもつパラメーター、あるいは行列または構造体の要素に接続できます。詳細については、Connect Dashboard Blocks to Simulink Modelを参照してください。

Dashboard ブロックは Stateflow® チャートにも接続できます。詳細については、Dashboard ブロックと Stateflow との接続 (Stateflow)を参照してください。

次のアニメーションは、Rotary Switch ブロックをモデルに接続する方法を示しています。

An unconnected Rotary Switch block connects to the Gain parameter of a Gain block.

パラメーターのログ記録

Dashboard ブロックに接続されている調整可能なパラメーターはシミュレーション データ インスペクターに記録されます。シミュレーション データ インスペクターでは、記録された信号データと共にパラメーター値を表示できます。UI を使用して、または関数Simulink.sdi.exportRunを使用して、シミュレーション データ インスペクターからパラメーター データをエクスポートすることで、MATLAB® ワークスペース内のログに記録されたパラメーター データにアクセスできます。シミュレーション データ インスペクターの UI を使用したデータのエクスポートの詳細については、Export Data From Simulation Data Inspector to Workspace or Fileを参照してください。パラメーター データは Simulink.SimulationData.Parameter オブジェクトに格納され、エクスポートされた Simulink.SimulationData.Dataset の要素としてアクセスできます。

すべて展開する

Rotary Switch ブロックを使用すると、シミュレーション中にパラメーターの値をいくつかある値の 1 つに設定できます。たとえば、モデル rotaryGain では、Rotary Switch ブロックが Gain ブロックの [ゲイン] パラメーターに接続されています。Rotary Switch ブロックは、ゲイン値 0510、または 15 を選択できるように構成されています。

The Block Parameters dialog box for the Rotary Switch block

モデルのシミュレーションを実行します。シミュレーション中にゲイン値を変更するには、Rotary Switch ブロックを回します。

Animation of the rotaryGain model during simulation

拡張例

制限

  • Dashboard Scope ブロックおよび Display ブロックを除き、Dashboard ブロックは実数のスカラー信号にのみ接続できます。

  • コメントアウトされたブロックには、[ブロック パラメーター] ダイアログ ボックスの [接続] テーブルを使用して Dashboard ブロックを接続することはできません。コメント化されたブロックに接続モードを使用して Dashboard ブロックを接続した場合、ブロックのコメントを解除するまでは Dashboard ブロックに接続された値が表示されません。

  • Dashboard ブロックは参照モデル内のモデル要素には接続できません。

  • モデルの階層構造をシミュレーションすると、参照モデル内の Dashboard ブロックで更新は実行されません。

  • Dashboard ブロックは、ラピッド アクセラレータ シミュレーションをサポートしていません。

  • シミュレーション中に Dashboard ブロックを変数またはパラメーターに接続すると、その変数またはパラメーターのデータはシミュレーション データ インスペクターに記録されません。シミュレーション データ インスペクターに変数とパラメーターのデータを記録するには、シミュレーションを実行する前に Dashboard ブロックを変数またはパラメーターに接続します。

  • [既定のパラメーター動作][インライン] に設定してエクスターナル モードでモデルをシミュレーションするときに、Dashboard ブロックがパラメーターと変数の値を変更するように見える場合があります。ただし、その変更はシミュレーションに伝播されません。たとえば、Gain ブロックには Dashboard ブロックを使用して [ゲイン] パラメーターに加えられた変更が表示されますが、シミュレーションで使用された [ゲイン] 値は変更されません。

パラメーター

すべて展開する

このブロックは、パラメーターの値を制御するブロックである、制御ブロックです。このブロックを、制御対象の値を持つパラメーターに接続します。スカラー値をもつパラメーター、または行列の要素に接続できます。

Dashboard ブロックはモデル要素への接続に端子を使用しません。Dashboard ブロックを接続するには、接続モード、Simulink® ツールストリップ、または [ブロック パラメーター] ダイアログ ボックスの [接続] テーブルを使用します。詳細については、Connect Dashboard Blocks to Simulink Modelを参照してください。

[接続] テーブルを使用して、スカラー値をもつパラメーターを接続するには、次のようにします。

  1. ブロックを選択します。

  2. プロパティ インスペクターの [パラメーター] タブで、[接続] または [変更] をクリックします。

  3. 接続するパラメーター値が含まれているブロックを選択します。

  4. 表示されるテーブルで、パラメーターを選択します。

  5. [適用] をクリックします。

値が変数として指定されているパラメーターに接続するか、接続されている変数の値を変更するには、まず、モデルのブロック線図を更新する必要があります。モデルのブロック線図を更新するには、Ctrl+D を押します。

Dashboard ブロックは Stateflow チャートにも接続できます。詳細については、Dashboard ブロックと Stateflow との接続 (Stateflow)を参照してください。

プログラムでの使用

プログラムで制御ブロックをパラメーターに接続できます。パラメーターを表す Simulink.HMI.ParamSourceInfo オブジェクトを定義します。次に、Binding パラメーターの値をオブジェクトに設定します。Binding パラメーターの値を設定するには、set_param 関数を使用します。

たとえば、vdp という名前のモデルに、myButton という名前の Push Button ブロックと、x1 という名前の Integrator ブロックが含まれているとします。Push Button ブロックを Integrator ブロックの Initial Condition パラメーターに接続するには、次のコードを使用します。

blockPath1 = "vdp/myButton";
blockPath2 = "vdp/x1";

myObj = Simulink.HMI.ParamSourceInfo;
myObj.BlockPath = Simulink.BlockPath(blockPath2);
myObj.ParamName = 'InitialCondition';

set_param(blockPath1,Binding=myObj)
パラメーター: Binding
値: Simulink.HMI.ParamSourceInfo object

例: set_param(gcb,Binding=myObj)

ブロックのラベルの接続している変数またはパラメーターに割り当てられる数値のペア。[状態] は、[状態値][状態ラベル] で構成されています。

  • 状態値Rotary Switch ブロックが、対応する [状態ラベル] の位置にある場合、接続している変数またはパラメーターに割り当てられる値。

  • 状態ラベル — スイッチ位置のラベル。[状態ラベル] を使用して、Rotary Switch ブロックが [状態ラベル] を指す場合に接続している変数またはパラメーターが取る値を表示することも、説明的なテキスト ラベルを使用することもできます。

[+] ボタンをクリックして [状態] を追加します。

ブロックの既定のコンフィギュレーションには次の [状態] が含まれます。

状態値状態ラベル
0Off
1Low
2Medium
3High

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

States パラメーターの値を構造体の配列として指定します。ここで、各構造体は状態を表します。各構造体には次のフィールドが含まれます。

  • Value — 接続されたパラメーターにブロックが代入する値

  • Label — スイッチのラベル。文字ベクトルとして指定

たとえば、現在選択されている Rotary Switch ブロックに 6 つの状態を含めるとします。状態には A から F の文字のラベルが付けられ、1 から 6 の値が代入されます。たとえば、2 番目の状態にはラベル B が付けられ、値 2 が代入されます。これらの状態を実装するには、以下のコードを使用します。

state1.Value = 1;
state1.Label = 'A';
state2.Value = 2;
state2.Label = 'B';
state3.Value = 3;
state3.Label = 'C';
state4.Value = 4;
state4.Label = 'D';
state5.Value = 5;
state5.Label = 'E';
state6.Value = 6;
state6.Label = 'F';
myStates = [state1 state2 state3 state4 state5 state6];

set_param(gcb,States=myStates)
パラメーター: States
値: N-by-1 struct array, where N is the number of states and each struct has the fields Value and Label

例: set_param(gcb,States=myStates)

ブロックの状態値とラベルを設定するために、数値と列挙値がペアとなる列挙データ型を使用できます。列挙データ型を使用してブロックの状態を指定するには、まず [列挙データ型] オプションを選択します。次に、テキスト ボックスに列挙データ型の名前を指定します。指定された列挙データ型の定義は MATLAB パス上またはベース ワークスペースに保存しなければなりません。

例: myEnumType

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター UseEnumeratedDataType の値を "on" に設定し、パラメーター EnumeratedDataType の値を列挙データ型の名前に設定します。

パラメーター: UseEnumeratedDataType
値: 'off' (既定値) | "on" | "off"

例: set_param(gcb,UseEnumeratedDataType="on")

パラメーター: EnumeratedDataType
値: name of enumerated data type
データ型: string | char

例: set_param(gcb,EnumeratedDataType="myEnumType")

ブロック ラベルの位置。ブロックがモデル内の要素に接続されている場合、ラベルは接続された要素の名前です。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: LabelPosition
値: 'Top' (既定値) | "Top" | "Bottom" | "Hide"

例: set_param(gcb,LabelPosition="Bottom")

ブロックの特性

データ型

double | half | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

すべて展開する

バージョン履歴

R2015a で導入

すべて展開する