2017-09-21 14 views
1

現在、標準のModelicaディストリビューションに含まれているMultiBodyライブラリを使用して、マルチボディの機械システムで作業しています。2つのフランジを切り替える

指定されたジョイントの位置または強制コントロールを選択するために、フランジ間の切り替えを実装する必要があります。

model FlangeSwitch "Switch between flanges" 
    Modelica.Mechanics.Translational.Interfaces.Flange_a flange_a_1; 
    Modelica.Mechanics.Translational.Interfaces.Flange_b flange_b_1; 
    Modelica.Mechanics.Translational.Interfaces.Flange_a flange_a_2; 
    Modelica.Mechanics.Translational.Interfaces.Flange_b flange_b_2; 
    Modelica.Mechanics.Translational.Interfaces.Flange_a flange_a_exit; 
    Modelica.Mechanics.Translational.Interfaces.Flange_b flange_b_exit; 
    Modelica.Blocks.Interfaces.BooleanInput u; 
equation 
    if u then 
    flange_a_exit = flange_a_2; 
    flange_b_exit = flange_b_2; 
    else 
    flange_a_exit = flange_a_1; 
    flange_b_exit = flange_b_1; 
    end if; 
end FlangeSwitch; 

しかし、このアプローチは機能しません。システムは平衡していません:10式と12変数。

これを行う方法はありますか?

答えて

1

私はModelicaツールでは、可変構造体システムにつながる可能性があるので、(バランスのとれたモデルを使用していても)この操作を許可しないと思います。今はModelicaがサポートしていないものです。あなたは二つのアプローチを試みることができる、完全にアプリケーションを知らなくてもhttps://www.modelica.org/events/modelica2017/proceedings/html/submissions/ecp17132291_Stuber.pdf

:ここに素晴らしい紹介を参照してください

  • アクティブ化パラメータuseSupportModelica.Mechanics.Translational.Components.Brakeのように、回転クラッチをエミュレートしたモデルを使用してください。この方法で、いずれかのフランジをsupportコネクタに接続するための「制御可能な機械的接続」を生成することができます。あなたのコードを正しく読んだら、flange_a_2をサポートに、flange_a_exitflange_aまたはflange_bのいずれかに接続してください。 RealInputを介してブレーキを作動させると、機械的な接続が行われます。あなたが試すことができます

  • 2つ目は、あなたがセンサーModelica.Mechanics.Translational.Sensors.PositionSensorで適用したいの両方のどの(位置や力のいずれかを測定し、この場合にはModelica.Mechanics.Translational.Sources.Positionになり、それぞれのソースを使用して、それを適用することである。間の切り替えソースは、代わりに物理コネクタの実信号を切り替えることによって行うことができる。気にそれが直接位置を適用した場合の位置にジャンプを発生させる可能性がある。

1

あなたが投稿したリンクである非phyiscalコネクタに関連しています物理的なコネクタに比べて制限が少ないので、2つのソリューションを比較する際は、非常に注意深く行う必要があります。

入力としての位置から入力への強制への切り替えには、このスイッチを実行するときに方程式のシステムを再構築する必要があります。これは現在の世代Modelicaでは不可能です。シミュレーション全体で同じ入力を基にしたソリューションを見つける必要があります。

ポジションソースを使用して最初に移動したい場所でシステムがシミュレーションを開始する方法でポジションを初期化するだけで十分でしょうか?あなたが失うのは、システムをこの位置に動かすことです。

+0

お返事ありがとうございます。シミュレーション中にモデルを定義する微分方程式で動的な変更を行う必要がありますが、これはまだModelicaでは不可能です。私は別のアプローチを試みます。 –

関連する問題