1

Matlab のコマンド ウィンドウで、次のようないくつかの方程式を取得しました。

Tc1 = (- 2*J2*cos(t3)*sin(t1)*sin(t3)*n^2 + 2*J2*w3*sin(t3)*n)/cos(t2) - d2 + cos(t2)*(J2*cos(t3)*sin(t1)*sin(t3)*n^2 + J2*v3*sin(t1)) + J1*w1*w3 + J2*w1*w3 - J3*w1*w3 + J2*v2*cos(t1) + J2*n^2*cos(t1)*tan(t2) - J2*w2^2*cos(t1)*tan(t2) + 2*J2*w3^2*cos(t1)*tan(t2) + J2*w2^2*cos(t1)^3*tan(t2) - J2*w3^2*cos(t1)^3*tan(t2) - 2*J2*n*w2*cos(t3)*tan(t2) + 2*J2*w2*w3*sin(t1)*tan(t2) - J2*n^2*cos(t1)*cos(t3)^2*tan(t2) + 2*J2*n*w2*cos(t1)^2*cos(t3)*tan(t2) - 2*J2*w2*w3*cos(t1)^2*sin(t1)*tan(t2) - 2*J2*n*w3*cos(t1)*cos(t3)*sin(t1)*tan(t2)         

Simulink では、すべてのパラメーター (Tc1、J1、J2、J3、t1、t2、t3 など) に対して From ブロックと Goto ブロックを使用します。

今、これらの長い数式をシミュレーション用に Simulink に実装する最も簡単な方法を考えています。通常は、Simulink のあらゆる種類のブロックを使用して方程式を再構築するだけですが、今回の方程式ははるかに長くなりました。何か案は?

4

1 に答える 1

2
  1. 最初の方法は、ユーザー定義関数のブロックを使用し、関数を 1 行に記述して、、、....Fcnのような入力を使用することです。u(1)u(2)

ブロックは、指定されたFcn数式をその入力に適用します。式には、次のコンポーネントを 1 つ以上含めることができます。

  • u— ブロックへの入力。uがベクトルの場合、ベクトルu(i)の i 番目の要素を表します。u(1)またはu単独で最初の要素を表します。
  • 数値定数。
  • 算術演算子 ( + - * / ^)。
  • 関係演算子 ( ) —関係が true の場合、== != > < >= <=式は戻ります。1それ以外の場合は、 を返します 0
  • 論理演算子 ( ) — 関係が true の場合、&& || !式は戻ります。1それ以外の場合は、 を返します0
  • 括弧。
  • 数学関数— absacosasinatanatan2ceilcoscoshexpfabsfloorhypotlnloglog10pow、および. power_ rem_ sgn_ sin_sinhsqrttantanh

このリンクを確認してください


  1. 2 番目の方法はMatlab Function、ユーザー定義関数を使用して、埋め込みのすべての関数を記述しますm-file。次に、すべての入力と出力をそれに接続します。

このリンクを確認してください

于 2013-05-12T20:30:53.037 に答える