任意の入力と初期条件を含むモデルのシミュレーション
線形シミュレーション ツールとは
線形シミュレーション ツールを使用すると、任意の入力信号と初期条件を含む線形モデルをシミュレーションできます。
線形シミュレーション ツールでは、次のことができます。
MATLAB® ワークスペースからの入力信号のインポート
MAT ファイル、Microsoft® Excel® スプレッドシート、ASCII フラットファイル、コンマ区切りの変数ファイル (CSV)、またはテキスト ファイルからの入力信号のインポート
正弦波、矩形波、ステップ関数、ホワイト ノイズの形の任意の入力信号の生成
状態空間モデルに対する初期状態の指定
既定の初期状態はゼロです。
線形シミュレーション ツールを開く
線形シミュレーション ツールを開くには、以下のいずれかを行います。
線形システム アナライザーでプロット領域を右クリックして、[プロットタイプ]、[線形シミュレーション] を選択します。
MATLAB プロンプトで次のように関数
lsim
を使用します。lsim(modelname)
MATLAB Figure ウィンドウで、応答プロットを右クリックして、[入力データ] を選択します。
線形シミュレーション ツールの使用
線形シミュレーション ツールには、[入力信号] と [初期状態] の 2 つのタブがあります。
線形シミュレーション ツールを開いた後に (線形シミュレーション ツールを開くに記述)、以下の手順に従い、モデルをシミュレーションします。
[入力信号] タブをクリックします (表示されていない場合)。
[タイミング] 領域で、次のいずれかを行って、シミュレーション時間ベクトルを指定します。
[時間のインポート] をクリックして、時間ベクトルをインポートします。
終了時間と時間間隔を秒単位で入力します。開始時間が
0
秒に設定されます。
次のいずれかを行って、入力信号を指定します。
[信号のインポート] をクリックして、MATLAB ワークスペースまたはファイルから入力信号をインポートします。詳細は、入力信号のインポートを参照してください。
[信号の設計] をクリックして、独自の入力を作成します。詳細は、入力信号の設計を参照してください。
状態空間モデルがあり、初期条件を指定する場合は、[初期状態] タブをクリックします。既定では、初期状態はすべてゼロに設定されています。
[初期値] 列に状態の値を入力するか、[状態ベクトルのインポート] をクリックして値をインポートできます。初期状態の入力の詳細は、初期条件の指定を参照してください。
連続モデルの場合は、[内挿法] リストで、シミュレーション ソルバーで使用する内挿法を以下から 1 つ選択します。
ゼロ次ホールド
1 次ホールド (線形内挿)
自動 (線形シミュレーション ツールでは、入力の滑らかさに基づき、1 次ホールドまたは 0 次ホールドが自動的に選択されます。)
メモ
離散モデルのシミュレーションでは、内挿法は使用しません。
[シミュレーション] をクリックします。
入力信号のインポート
線形シミュレーション ツール (線形シミュレーション ツールを開く参照) を開いた後に、MATLAB ワークスペースから入力信号をインポートできます。MAT ファイル、Microsoft Excel スプレッドシート、ASCII フラットファイル、コンマ区切りの変数ファイル (CSV)、またはテキスト ファイルから入力をインポートすることもできます。
独自の入力の作成についての詳細は、入力信号の設計を参照してください。線形シミュレーション ツールの機能の概要は、線形シミュレーション ツールの使用を参照してください。
複数の入力信号をインポートするには、以下を行います。
入力信号が表示されていない場合は、線形シミュレーション ツールで、[入力信号] タブをクリックします。
[タイミング] 領域でシミュレーション時間を指定します。
インポートする入力チャネルに対する 1 行または複数行を選択します。次の図は、チャネルを 2 つ選択した例を示します。
[信号のインポート] をクリックして、[データ インポート] ダイアログ ボックスを開きます。次の図は、[データ インポート] ダイアログ ボックスの例を示します。
[インポート元] のリストで、入力信号のソースを選択します。これは、以下のいずれかになります。
Workspace
MAT file
XLS file
CSV file
ASCII file
インポートするデータを選択します。[データ インポート] ダイアログ ボックスでは、選択するソースの形式によってオプションが異なります。
[インポート] をクリックします。
入力信号のインポートの例として、以下を参照してください。
例: Microsoft Excel スプレッドシートからの入力の読み込み
Microsoft Excel (XLS) スプレッドシートから入力を読み込むには、次を行います。
線形シミュレーション ツールで、[入力信号] タブの [信号のインポート] をクリックして、[データ インポート] ダイアログ ボックスを開きます。
[インポート元] リストで、[XLS ファイル] を選択します。
[参照] をクリックします。
インポートするファイルを選択して、[開く] をクリックします。[データのインポート] ダイアログ ボックスに、Microsoft Excel のスプレッドシートからのデータが表示されます。
例: ワークスペースからの入力のインポート
MATLAB ワークスペースから入力信号を読み込むには、以下を行います。
次のコードを入力して、2 次システムの応答プロットを開きます。
s=tf('s'); ss=(s+2)/(s^2+3*s+2); lsim(ss,randn(100,1),1:100);
プロットの背景を右クリックし、[入力データ] を選択します。
線形シミュレーション ツールが開き、既定の入力データが表示されます。
MATLAB コマンド ウィンドウで、システムに対する以下のような入力信号を作成します。
new_signal=[-3*ones(1,20) 2*ones(1,30) 0.5*ones(1,50)]';
線形シミュレーション ツールで、[信号のインポート] をクリックします。
[データ インポート] ダイアログ ボックスで、[列の割り当て] を選択し、選択したチャネルに入力信号の第 1 列を割り当てます。
[インポート] をクリックします。線形シミュレーション ツールに新しい信号がインポートされます。
[シミュレーション] をクリックし、インポートされた信号に対する 2 次システムの応答を表示します。
入力信号の設計
線形シミュレーション ツールを開いた後に、正弦波、矩形波、ステップ関数、またはホワイト ノイズの形の任意の入力信号を生成できます (線形シミュレーション ツールを開くを参照)。
MATLAB ワークスペースまたはファイルからの入力のインポートの詳細は、入力信号のインポートを参照してください。線形シミュレーション ツールの機能の概要は、線形シミュレーション ツールの使用を参照してください。
複数の入力信号を設計するには、以下を行います。
(入力信号が表示されていない場合) 線形シミュレーション ツールで、[入力信号] タブをクリックします。
[タイミング] 領域でシミュレーション時間を指定します。この手順の後方で設計する入力信号の評価には、時間間隔 (秒単位) を使用します。
設計する信号チャネルに対する 1 行または複数行を選択します。次の図は、チャネルを 2 つ選択した例を示します。
[信号の設計] をクリックして、[信号設計] ダイアログ ボックスを開きます。次の図は、[信号設計] ダイアログ ボックスの例を示します。
[信号タイプ] リストで、作成する信号のタイプを選択します。これは、以下のいずれかになります。
Sine wave
Square wave
Step function
White noise
信号の特性を指定します。[信号設計] ダイアログ ボックスでは、選択する信号のタイプによってオプションが異なります。
[挿入] をクリックします。これで、線形シミュレーション ツールに新規の信号が含まれます。
線形シミュレーション ツールで [シミュレーション] をクリックして、システムの応答を表示します。
初期条件の指定
システムが状態空間形式である場合は、線形シミュレーション ツールを開いた後に、初期状態の入力またはインポートができます (線形シミュレーション ツールを開くを参照)。
線形シミュレーション ツールの機能の概要は、線形シミュレーション ツールの使用を参照してください。
MATLAB ワークスペースからも初期状態をインポートできます。
複数の入力状態をインポートするには、以下を行います。
(入力信号がまだ表示されていない場合) 線形シミュレーション ツールで、[初期状態] タブをクリックします。
[選択したシステム] リストで、初期条件を指定するシステムを選択します。
[初期値] 列に状態の値を入力するか、[状態ベクトルのインポート] をクリックして MATLAB ワークスペースから値をインポートできます。次の図は、インポート ウィンドウの例を示します。
メモ
n 個の状態に対しては、n 個からなるベクトルが必要です。
初期状態を指定した後に、線形シミュレーション ツールで [シミュレーション] をクリックして、システムの応答を表示します。