2017-01-16 5 views
1

私はこの絵の後のSimulinkダイアグラムを作成するために持っていた:Simulinkモデルのエラー

Diagram

私の答えはこの1つである:

Simulink image

私はいくつかの値を与えてきましたa,bc(3,4,5など)ですが、実行しようとすると次の警告が表示されます。

Warning: The model 'ex2_2' does not have continuous states, hence Simulink is using the solver 'VariableStepDiscrete' instead of solver 'ode45'. You can disable this diagnostic by explicitly specifying a discrete solver in the solver tab of the Configuration Parameters dialog, or by setting the 'Automatic solver parameter selection' diagnostic to 'none' in the Diagnostics tab of the Configuration Parameters dialog

Warning: 'ex2_2/Unit Delay' is discrete, yet is inheriting a continuous sample time; consider replacing unit delay with a memory block. When a unit delay block inherits continuous sample time, its behavior is the same as the memory block. Unit delay block's time delay will not be fixed and could change with each time step. This might be unexpected behavior. Normally, a unit delay block uses discrete sample time. You can disable this diagnostic by setting the 'Discrete used as continuous' diagnostic to 'none' in the Sample Time group on the Diagnostics pane of the Configuration Parameters dialog box. "

と出力(範囲)それだけステップ信号です...

私はここで間違っているところ私は知りません。

答えて

1

モデルを正しく構築しましたが、正しく構成していませんでした。そのまま

がモデルを実行すると、何が起こるだろうことは以下の通りです:

  1. ステップブロックは、デフォルトでは、連続時間の源である(それはだSample Time設定0です)。
  2. Simulinkはdocumentation on sample timesによるとステップ
  3. メモリブロックとは違って)マイナーステップの間に一定の出力を持つことが保証されて単位遅延ブロックに接続されていることを見ている:

    [...] Simulink sets [Fixed-in-Minor step] as either an inherited sample time or as an alteration to a user specification of 0 (continuous). This setting is equivalent to, and therefore converted to, the fastest discrete rate when you use a fixed-step solver.

    可変ステップ・ソルバーのコンテキストでは、連続サンプル時間が離散時間ではなく固定小数ステップに低下します。シミュレーションのスピードアップには可変ステップサイズが使用されますが、精度が許せばより大きなステップがとられますが、ステップがトリガする正確な時間など、細かい計算が必要です(ステップブロックの "Enable zero-crossing detection"オプション)。したがって、この特定の状況でSimulinkの最善の方法は、ステップブロックのサンプル時間を固定小数点ステップに変換することです。このステップは前方に伝播され、モデルの他のすべてのブロックによって継承されます。

  4. これは通常、実質的に連続時間ではありませんが、それでもすべてのブロックで見られるサンプル時間の厄介なタイプです。したがって、本質的に離散時間の単位遅延は、連続時間信号(あなたの2 nd警告)によって駆動されることについて不満を持ち、Simulink自身はどこでも "本当の"連続時間ブロックが完全に不足していると不満を持ち、連続時間ソルバーode45(ご使用の1 st警告)を使用するよう指示されています。ソフトウェア開発でいつものように

:それは常に最善を明示的にするために、およそすべてです。この場合、モデル設定ダイアログで離散時間の固定ステップソルバを明示的に指定するのが最も簡単な方法です。これにより、ステップの連続時間は、ユニット遅延の離散時間に自動的に変換されます。

+0

モデル設定ダイアログで離散時間の固定ステップソルバーを指定するにはどうすればよいですか?申し訳ありませんが、私はsimulinkにちょっと新しいです... –

+0

@LaurentiuAdrianParaschiv大幅に変更されていない限り(私はR2010aにあります)、モデルの設定ダイアログ(Ctrl + E)を開きます。左側で、設定カテゴリを選択できます。 「ソルバー」を選択します。次に、右側の「ソルバーオプション」で、「固定ステップ」**タイプ**、「離散時間」**ソルバー**を選択します。さらに、サンプル時間を明示的に指定することもできます。 「auto」に設定すると、Simulinkは合計50ステップを取るようにサンプル時間を選択します。より良いスコープ出力を得るためには、もっと多くのものを必要とするかもしれません。 –

+0

これで私に次のエラーが表示されます。モデルに離散サンプル時間がないため、モデルのサンプル時間に基づいて固定ステップサイズを決定できません。 'ex2_2'固定ステップの選択 シミュレーションの開始および停止時間に基づいて(0.2)のサイズ。この診断を無効にするには、 コンフィグレーションパラメータ ダイアログボックスのソルバーペインで固定ステップサイズを明示的に指定するか、または[自動ソルバーパラメータ選択]診断を[なし]に設定します。 ソルバーグループ[構成パラメータ]ダイアログボックス。 –

関連する問題