0

空間内のオブジェクトの回転と移動をシミュレートするために、Simulink で同次行列を作成したいと考えています。

指定された角度を入力として受け取る 4x4 マトリックスを作成するにはどうすればよいですか?

たとえば、X 軸を横切る平行移動と Z の回転を組み合わせたものは、MATLAB では次のようになります。

%Supposing the input is 
in = [a, b]
%translational part:
transl = eye(4);
transl (1,4) = in(1);

%Rotational Part:
rotat = eye(4);
rotat(1:3,1:3) = rotx(in(2));

move = transl*rotat;

主な問題は、Simulink モデルをよりコードフリー (MATLAB 解釈関数などなし) にして、ブロックだけにしたいということです。

ありがとうございました。

4

2 に答える 2

1

まず、何かを達成するためにコードの方が優れている場合があります。信号処理として行うと、不必要に複雑になるものがあります。

Vector Concatenateを使用してベクトルを生成し、これを に入力してMatrix Concatenate行列を作成できます。どちらのブロックもMath Operationsの下にあります。そこには、指定された値などで乗算するために必要なすべてのメソッドもあるはずです。

于 2013-08-06T14:59:29.317 に答える
1

'Rotation Angles to Direction Cosine Matrix' ブロックを試してください。回転角度を方向余弦行列に変換します。出力は、ボディ フレームから地球フレームへの回転角度に基づいて座標変換を実行する 3x3 マトリックス Rxyz です。

于 2014-04-09T22:24:20.773 に答える