2016-10-26 2 views
0

問題の説明:MATLAB:モータ制御バルブのシミュレーション

私はMATLAB/Simulinkとモータ制御バルブ(MCV)をシミュレートします。制御葛(赤)、0%(完全閉鎖)および100%(全開)との間のすべての値を取ることができるMCVを制御:

enter image description here

Iは、インプットの三つの異なるパルスを示し入力信号が0から1に変化すると(立ち上がりエッジ)、MCVが開き始めます。時間t_Opの後、MCVは完全に開かれる。入力信号が1から0(立ち下がりエッジ)に変わるとすぐに、バルブが閉じ始めます。このプロセスはt_Clの後に終了します。 t_Opとt_Clは必ずしも同一である必要はありません。

図からわかるように、バルブはパルス番号の後に完全に閉じます。 1(立ち下がりエッジ)。しかし、パルス番号とパルス幅の間の幅は、 2とパルス番号。 3はバルブを完全に閉じるのに十分な長さではありません。パルス番号の立ち上がりエッジで図3に示すように、弁は完全に開くまで再び開く。

質問:

が、私はMatlabの(好ま)またはSimulinkので、上記のプロセスをシミュレートします。私はその問題をどのように始めるべきか100%確信していません。私は元のシステムから立ち上がり/エッジを抽出することを考え、この「トリガ」を使用して時間依存の「傾斜」ステップ機能を開始しました。多分あなたは私のためにいくつかのヒントを持っていますか?

+0

異なる文脈で、この問題へのSimulink溶液http://stackoverflow.com/questions/40190454/matlab-simulink-simulate-filling-and-emptyingにほとんど同じ方法で達成されているが川の流れその質問の「雨」はあなたの「開口部」ですが、「雨は降らない」があなたの「閉鎖」です。 t_opとt_Clのタイミング要件を満たすには、2つのサブシステムに適切なスロープ/ランプを実装するだけです。 –

+0

私は2つの有効なサブシステムでそれを解決しようとしました。しかし、完全に開かれていないMCVがない場合には、結果を1つのサブシステムから他のサブシステムへ(例えばその50%のようなバルブの実際の位置)供給する方法はわかりません。各サブシステムの内部では、弁の0%/ 100%の位置に対応する最小値/最大値でランプを簡単に定義することができます。しかし、これらの値はシミュレーション時間にわたって一定のままであり、変更することはできません。 –

+0

このリンクの例は、既存の値をサブシステムに戻す方法を示しています。これは、バルブの方向が変化したときのバルブの位置に関係なく機能します。 –

答えて

0

これをシミュレートするために、あなたが定義する必要があります。
1)時間分解能(0.1秒0.01秒)
2)バルブの解像度(おそらく1%)
3)あなたの制御信号を量子化する方法(もし?それは、これはすでに行われている、ちょうど0または1である;それは0Vだ場合 - > 5V、あなたはoffになっている値選択する必要があり、neutralになった、とされますが、0.1秒にあなたのデータを量子化した場合on

なり、クオンタイズバルブの分解能を1%にするには、次のようなものを使用することができます(あなたは%%%セクションを自分で記入できるはずです

pos_initial = 0; % percent, position 
t_res = 0.1; % seconds 
pos_res = 1; % percent 

%%% Declare t_op, t_cl. Solve for open_speed and close_speed If you have t_op and t_res, how can you solve for the open_speed (the amount of opening in a single step? Do the same for close_speed %%% 

position(1) = pos_initial; 
for ii = 2:length(input) 
    if(input == 1) 
     position(ii) = min(position(ii-1) + open_speed, 100); %this makes potition get bigger, but doesn't let it get bigger than 100% 
    else 
     %%% Looking at the position(ii) line above, how could you do the same for closing to make sure it doesn't go below zero? 
    end 
end 
関連する問題