1

バス信号構造を失うことなく
、階層内の最下位レベルでマルチレベル バス信号を合計する方法を探しています。

MWE

たとえば、以下の MWE では
、バス信号は自動的に最低レベルで合計されますが
、バス信号は Add ブロックを通過した後に失われます。

代わりにベクトル信号が生成されます。

MWE

私は次のような方法を好んだでしょう:

red + blue = purple

またはより具体的に:

red.[a b c].[1 2] + blue.[a b c].[1 2] --> purple.[a b c].[1 2]

どこ

purple.b.3 = red.b.3 + blue.b.3

など。

4

1 に答える 1

0

私の知る限り、バス信号で数学を行う唯一の方法は、MATLAB Function ブロックを使用することです。パフォーマンスが低下する可能性があることに注意してください。

MATLAB Function ブロックを使用するには、最初に一致するバス オブジェクトを生成し、2 つのバス クリエーター マージ a / b / c がそれぞれこのバス オブジェクトを出力するように割り当てられていることを確認します。1 と 2 は有効なフィールド名ではないため、エラーが発生します。x1 と x2 に変更しました。

次のステップでは、MATLAB Function ブロックを作成します。2 つの入力と 1 つの出力を、前に定義したバス オブジェクトに設定します。次のコードを貼り付けます。

function y = fcn(u, v)
%#codegen

y.a=innerplus(u.a,v.a);
y.b=innerplus(u.b,v.b);
y.c=innerplus(u.c,v.c);
end

function y=innerplus(u,v)
y.x1=u.x1+v.x1;
y.x2=u.x2+v.x1;
end

ここに画像の説明を入力

于 2016-03-07T19:48:39.100 に答える