2

SIMULINK で if-else フロー ブロック (またはそれを行うカスタム matlab 関数) を使用し、組み込みコーダーを使用してコードを生成したいと考えています。以前、SIMULINK で使用される MATLAB 関数ブロックのゼロおよび 1 ベースのインデックス付けで問題に遭遇しました。それを回避する方法はほとんどないようです。SIMULINK で if-elseif ロジックをモデル化するにはどうすればよいでしょうか?

switch ブロックと mux ブロックを使用しようとしましたが、それらは複雑すぎて、実装しようとしている元のフロー ロジックを誤解する可能性があります。

私のフロー ロジック (PSEUDOCODE) は次のとおりです。

if (a<b) then
    p = x;
else if (a<c) then
    p = max(y, some_const_val);
else
    p = z;

誰かが方法を提案してもらえますか?

KR、

4

1 に答える 1

1

疑似コードは、MATLAB Functionブロック (MATLAB 関数のサブセットのコード生成をサポート) として機能する必要があります。0 および 1 ベースのインデックス付けの問題は実際には見られませんか??

より複雑なロジックの場合、Stateflowは非常に強力なツールですが、アドオンであるため、まだ持っていない場合はさらにお金を払う必要があります。ただし、非常に単純なロジック アルゴリズムを除けば、純粋な Simulink=blocks アプローチはすぐに面倒になる可能性があることに同意します。

于 2013-10-02T10:20:14.920 に答える