1

加工(ホイールセットの移動)をしています。ホイールセットには質量があり、変数であり、init.mファイルで宣言しています (例M=1;)

このプロセスでは、ホイールセットの質量が 2 秒ごとに変更されるようにしたいと考えています。質量の新しい値を Simulink から M 変数に保存する方法は?

4

3 に答える 3

2

Random Numberブロックのようなものを使用して、これらの値を生成できますか?平均と分散を与えることができます。

これがうまくいかない場合、次に簡単な方法は、MATLABで記述されたS関数またはMATLAB関数ブロックのいずれかを使用することです。関数は各タイムステップで呼び出され、任意のMATLABコードを実行して出力の次の値を計算できます。

于 2011-04-22T02:34:08.433 に答える
2

私にとって、私は決定を見つけました。

Mオブジェクトの質量を格納するために変数を使用しました。そして、simulink から関数呼び出しで M を呼び出しました。例えば:

ここに画像の説明を入力

MATLAB Functionしかし、ブロック 内で関数 Rho を呼び出すと、次のようになります。ここに画像の説明を入力

このアプローチは、M が静的な場合にのみ機能します。今、私は時間の中でダイナミックに変化したいと思ってMいます。Mそれで、まず、グローバルにして変更できると決めました。M関数を作成し、新しい値を計算してグローバルM変数に設定する関数ブロックを作成しました。しかし、うまくいきませんでした。Simulink で 1 つのグローバル変数を同時に使用および変更することはできません。

そこで、アプローチ全体を変更することにしました。M静的パラメーターではなくなったので、シグナルとして作成する必要がありますM。したがって、次のようになります。

ここに画像の説明を入力

ここで、ブロックConstant Mはワークスペース (またはいくつかの init.m ファイル) から取得され、SimulinkMはワークスペースからの変数ではなく、ローカル信号で動作します。M

于 2011-04-22T09:42:16.093 に答える
2

変数をワークスペースに保存し、ワークスペースで変更してシミュレーションに戻すよりも良い解決策 (これが許可されているかどうかはわかりません) は、シミュレーション自体で変数を変更してその変数を使用することです。あなたの問題をよりよく説明していただければ、もっとお手伝いできるかもしれません。

于 2011-04-21T02:02:02.140 に答える