いくつかのプロセスをシミュレートするために、自己モデル化されたブロックの事前定義された動作順序を取得する際に問題が発生します。
たとえば、ブロックBとCが機能し始める前に、ブロックAを終了する必要があることをどのように確認できますか?
問題は、一部のブロックが他のブロックの後に機能し、一部のブロックが機能しないことです。時間に依存することを行うために、Simulinkの経験があまりないことを認めなければなりません(simulinkの基本的な知識は利用可能ですが)。
たとえば、このシナリオは次のように実現されます。
A -> B, C -> D, E, F
主なことは、すべてのブロックAFには相互に論理的な相関関係がなく、すべてがいくつかのことを行うということです。私の目的は、Aが終了した後、BとCが機能し始めるようにすることです。そして、BANDCが終了した後のD/E/F。この場合、「並列」という単語は間違った単語でした。これは、実際に並列に計算する必要はありません。これが事前に定義された安定した順序に準拠していることを確認してください。
編集: 私の新しいアイデアは、matlabワークスペースのalsバッファーを使用することです。これにより、ブロックAは結果をワークスペースに(「toworkspace」ブロックによって)プッシュできます。しかし今、私は、ブロックBとCがAの結果を(「ワークスペースから」で)読み取ることができることを確認する必要があります。Aがその情報をワークスペースにプッシュした後...これを行う方法は?
Edit2:
これはいくつかの考えをより明確にするはずのスクリーンショット
です:「Sortedorder
」のドキュメントが参照しているように、セットアップは問題ないようです(サブシステムのタイミングを含む)。しかし、残念ながらまだ問題が存在します。変数「simin」は、書き込まれる前にワークスペースからロードされます:(ご覧のとおり、ディスプレイには「1」が表示されますが、これは実行すべきではありません。シミュレーションの最初の実行で、変数「simin」という例外が発生します。 「simin」は存在しません。
私の問題を手伝っていただければ幸いです。
挨拶、poeschlorn