メインコンテンツ

Toggle Switch

パラメーターの 2 つの値を切り換える

  • Toggle Switch block

ライブラリ:
Simulink / Dashboard

説明

Toggle Switch ブロックは、シミュレーション中に接続されているブロック パラメーターの 2 つの値を切り替えます。たとえば、モデルで Toggle Switch ブロックを Switch ブロックに接続し、シミュレーション中にその状態を変更できます。Toggle Switch ブロックをその他の Dashboard ブロックと共に使用し、モデル用に対話型のダッシュボードを作成します。

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

Dashboard ブロックの接続

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

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

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

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

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

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

An unconnected Toggle Switch block connects to the Value parameter of a Constant block.

パラメーターのログ記録

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

すべて展開する

Toggle Switch ブロックを使用すると、シミュレーション中に Switch ブロックの状態を変更できます。モデル toggleSwitch には、Control Input という名前の Constant ブロックの [値] パラメーターに接続されている Toggle Switch ブロックが含まれています。Toggle Switch ブロックがオンの場合、Control Input ブロックの値は 1 となり、Switch ブロックは値 5 を出力します。Toggle Switch ブロックがオフの場合、Control Input ブロックの値は 0 となり、Switch ブロックは値 0 を出力します。

モデル toggleSwitch のシミュレーションを実行します。シミュレーション中に Switch ブロックの状態を変更するには、Toggle Switch ブロックをクリックします。

Animation of the toggleSwitch 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)

接続された変数またはパラメーターに代入する値のペアと、ブロックに表示するテキスト。スイッチには [上][下] の 2 つの状態があり、それぞれがスイッチの各位置に対応しています。各状態に [値][ラベル] があります。

  • — スイッチが対応する位置にあるときに、接続された変数またはパラメーターに代入される値。

  • ラベル — 対応する位置に対してブロック上に表示するテキスト。

この表は、ブロックの既定の構成を示しています。

位置状態値状態ラベル
0on
1off

プログラムでの使用

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

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

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

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

たとえば、現在選択されている Switch ブロックに次の状態を設定するとします。最初の状態のラベルは Reverse であり、接続されたパラメーターに値 -5 を代入します。2 番目の状態のラベルは Forward であり、接続されたパラメーターに値 5 を代入します。これらの状態を実装するには、以下のコードを使用します。

state1.Value = -5;
state1.Label = 'Reverse';
state2.Value = 5;
state2.Label = 'Forward';
myStates = [state1 state2];

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

例: set_param(gcb,States=myStates)

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

プログラムでの使用

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

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

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

ブロックの特性

データ型

double | half | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

すべて展開する

バージョン履歴

R2015a で導入

すべて展開する