Meca導入記フリーのCAEソフト「SALOME-Meca」を使ってみようという試みの記録です。(月)ゴムバンドの摩擦力による動力伝達(前編)今回は、2本のローラー間にゴムのバンドを掛けて、その摩擦力でローラーの回転と動力を伝達させるという事例です。設定内容が複雑なため、前編と後編の2回に分けることにします。11.2.0)で、OSはdebian6です。接触・摩擦計算が高速化されたCode_aster11.2を使いたかったため、いつものDEXCS-Salomeではなく、この環境になりました。モデル化は2次元(平面ひずみ)としました。はじめから3次元で行うと、試行錯誤に大変な時間がかかるためです。ローラーとゴムバンドのモデルです。ゴムバンド(band)は真円の状態が初期形状です。その中に、中空のローラー2個を配置します。向かって左側が駆動ローラー(dr)、右側が従動ローラー(dn)です。drはdriving、dnはdrivenの略です。(外径:100mm、内径:88mm)従動ローラーの拡大図です。センター位置をピン固定するためのアームが1本出ているのと、トルクを与えるための突起(高さ2mm)が、内側へ出ています。上図のように各グループを設定しましたが、それぞれの役割は下記の通りです。・center:従動ローラーの軸荷重点、および回転中心このモデルについて、下記の手順で計算します。drp2を固定)し、従動ローラー中心(center)に右向きの荷重を与え、ゴムバンドを所定の軸荷重で張っていく。2ゴムバンドを張った状態で、従動ローラーをcenter位置でピン固定し、軸荷重は除去。4駆動ローラーを反時計回りに2回転させる(time=1あたり1回転)。このとき、回転始め~1/4回転迄の間で、従動ローラーのトルクを増加させて所定の値にする。文章で説明しても分かりにくいので、まずは最終計算結果の動画をご覧下さい。実は、このような解析が、私がSALOME-Meca導入当初からやりたかった事です(実際はもっと複雑ですが)。やっていたため、導入・試行を始めてから1年以上かかってしまいました。Code_Asterの様々な機能を検証してきたのですが、その多くがこの解析のための前準備です。次に、メッシュ分割です。全て三角形2次要素で分割しました。それぞれ別にMesh作成を行い、Compoundでまとめています。座標が重なる節点についてのマージは行っていません(回転によってズレていくため)。各グループ名をジオメトリから設定しています。ここからが今回(前編)の設定内容なのですが、これまでのようにEficasの画面スナップショットを用いると画像が膨大な量になってしまうため、commファイルの内容を用いる事にします(それでもかなり多いですが)。前編のcommファイル名は「rband01a.comm」です。前編では、上記の解析手順の(2)まで、つまり、バンドを張った状態で従動ローラーを固定し、それまで与えていた軸荷重を抜くところまでです。残りの回転部分については、後編にて継続計算(POURSUITE)で行います。■メッシュの修正(エッジの方向)接触や面圧荷重を受けるエッジ(線)の方向を整える設定です。初期の不安定な状態において計算の収束性を向上させるため、ゴムバンド2ヶ所、従動ローラー1ヶ所に弱いバネを作成します。駆動ローラー近くで変位が小さい所(bandp1)をspring1、従動ローラー近くで大きく変位する所(bandp1,dnp1)をspring2と二つに分け、バネ定数などの設定を分けられるようにしています。spring2)は「2D_DIS_T」としました。ここで、負荷トルクのための圧力荷重面(trq)も「D_PLAN」に含める必要がありました(その理由は分かりません)。弱いバネのバネ定数の設定です。種類は「K_T_D_N」です。ここの値の設定は、何度も値を変えての試行錯誤が必要で、かなり苦労しました。バネが弱すぎると初期の不安定性を抑えきれないし、強すぎるとゴムバンドが大きく伸びたときにバネの影響が出てしまいます。spring2共に“1e-3”で落ち着きました。私が使っている商用ソフトでは、バネ定数をTimeの関数にして、バネを徐々に消滅させていく事が出来るのですが、Code_Asterにはそのような機能が無いようです(“VALE_F”はあったのですが、Timeの関数には出来ませんでした)。この機能はぜひ入れて欲しいところです。■材料物性の設定ゴムバンドはMooney-Rivlin材料としました(「超弾性材料の検証」を参照)。ローラーは剛体にしたかったのですが、「LIAISON_SOLIDEによる剛体は大回転出来ない」の結果から、やむなく変形体として、大きなヤング率(1000[GPa])を設定しました。・ALGO_RESO_FROT=’NEWTON’・ALGO_RESO_CONT=’NEWTON’を設定しました。ゴムバンドを「マスター」、2つのローラーを「スレーブ」としています。硬い材料であるローラーをマスターにしたかったのですが、複数のZONEに共通している面がある場合、それをマスターにしないといけないようです(今回の場合はbandです)。摩擦係数は0.4で、他にはあまり調整したところはありません。■タイムステップの設定(time=0~1)pas1aは、従動ローラーを右(X方向)に引っ張り、ゴムバンドを張っていく段階(time=0~1)のタイムステップ定義です。解析初期(time=0.5まで)の不安定なところの刻みを多くしています。output1は、出力の時間刻み設定です。これに関しては「結果出力の間隔設定」をご参照ください。今回は、time=0~1を均等に50分割しています。pas1bは、pas1aを基本として、タイムステップの自動調整を追加したものです。これについては「時間ステップ幅の自動調整機能」をご参照ください。今回のような解析は非常に不安定で収束性が悪く、この機能が無ければ、現実的な時間で計算する事が難しかったと思います。最小時間幅(PAS_MINI)の値は小さめにしています。時間幅を増やす場合の増加割合(PCENT_AUGM)のデフォルトは100(%)なのですが、時間幅が元の2倍になると再び収束しなくなって、もう一度分割される、という非効率な現象が良く起こっていたので、これを50(%)にしました。■タイムステップの設定(time=1~2)time=1~2では境界条件の切り替えを行うだけなので、時間刻み幅を「1」としてます。出力の刻み幅も「1」です。一応、収束しなかったときのために自動調整機能も入れていますが、実際は動作せず、時間刻み幅は「1」のままでした。・force_dn:従動ローラーを右に引っ張る軸荷重10[N]としています。平面ひずみ要素を用いているので、厚み(Z方向)が1mmあたりの値になります。・fix_y_b:弱いバネを設定した節点を、y方向に固定バネがあるので本来この条件は不要なはずですが、これを入れないと収束しませんでした。・force:force_dnを増減させるための関数です。time=0~1では増加します。解析初期であるtime=0.5までの増加量を少なくしています。time=1~2でゼロになります。■非線形解析の設定(time=0~1)time=0~1では、駆動ローラーを固定し、従動ローラーに軸荷重(force_dn)を与えてゴムバンドを引っ張っていきます。そのため、「fix_x_c」は使いません。COMP_INCRでは、ローラー(ELAS)とゴムバンド(ELAS_HYPER)を異なるRELATIONに設定しました。「異なる「DEFORMATION」設定の混在」も可能なのですが、今回は両方とも「GROT_GDEP」にしています。ニュートン法の求解過程において、イテレーション毎に接線剛性を更新するものです。デフォルトではインクリメント(タイムステップ)毎になっているので、非線形性の強い計算では収束性が悪くなります。詳しくは「追従荷重(その2)」を参照ください。■非線形解析の設定(time=1~2)time=1~2では、ゴムバンドを引っ張った状態で従動ローラーのセンター位置を固定(fix_x_cの条件を追加)し、軸荷重(force_dn)を除去します。後編でのローラー回転に備え、安定化のためのy方向固定(fix_y_b)も除去します。ここで、従動ローラーのセンター一固定(fix_x_cの条件)については、初期位置から変位した場所で固定するため、「TYPE_CHARGE='DIDI'」の設定が必要になります。これに関しては「荷重を与えて変形させた状態で固定する方法(境界条件の切り替え)」を参照ください。time=1からの継続計算なので、「ETAT_INIT=_F(EVOL_NORI=RESU,)」を設定しています。■結果の計算と出力設定です。これは特に問題ないと思います。--------------------------------------------------------以上の設定で、ASTKを用いて計算を実行しました。この後に後編で続きの計算(ローラー回転)を行うので、データを「rband01a.base」フォルダに保存する設定にしておきます。time=2の時点での結果です(Mises応力)。ゴムバンドが伸ばされて応力が生じている事が分かります。現段階では単に引っ張っただけですので、変形や応力状態は上下対称になっています(メッシュによる誤差を除いて)。ローラーも変形体なので応力が出力されているのですが、評価対象ではないため非表示にしています。そのほうが、ゴムバンドの応力が見やすくなります。「条件設定」カテゴリの記事ゴムバンドの摩擦力による動力伝達(問題点)(2013.01.03)Eficasのマニュアルと、便利な自動翻訳(2012.12.29)ゴムバンドの摩擦力による動力伝達(後編)(2012.12.09)ゴムバンドの摩擦力による動力伝達(前編)(2012.12.03)回転体とゴム板の接触(2012.11.03)「超弾性」カテゴリの記事ゴムバンドの摩擦力による動力伝達(テンショナーの追加)(2014.02.20)ゴムバンドの摩擦力による動力伝達(クラウン効果について)(2013.09.07)ゴムバンドの摩擦力による動力伝達(3次元)(2013.08.31)ゴムバンドの摩擦力による動力伝達(問題点が解決)(2013.07.24)金属シャフトとリング間へのゴム圧入(2013.07.13)「接触・摩擦」カテゴリの記事ゴムバンドの摩擦力による動力伝達(テンショナーの追加)(2014.02.20)ゴムバンドの摩擦力による動力伝達(クラウン効果について)(2013.09.07)ゴムバンドの摩擦力による動力伝達(3次元)(2013.08.31)ゴムバンドの摩擦力による動力伝達(問題点が解決)(2013.07.24)金属シャフトとリング間へのゴム圧入(2013.07.13)「回転体」カテゴリの記事ゴムバンドの摩擦力による動力伝達(テンショナーの追加)(2014.02.20)ゴムバンドの摩擦力による動力伝達(クラウン効果について)(2013.09.07)ゴムバンドの摩擦力による動力伝達(3次元)(2013.08.31)ゴムバンドの摩擦力による動力伝達(問題点が解決)(2013.07.24)ゴムバンドの摩擦力による動力伝達(問題点)(2013.01.03)コメントかなり複雑な計算になってきましたね。これはVベルトかベルトコンベアですか。いずれにせよ、実際にある設備に近いモデルになるとインパクトがありますね。摩擦、接触の設定では勉強させてもらってますので今後の発展を期待してます。摩擦力だけで力を伝達しようとすると、やはりかなり不安定になるようで、なかなか苦労しています。出来るだけ安定して解けるような設定を見つけるべく、試行錯誤してますが、摩擦は奥が深いですね・・・。(この解析事例をまとめた後になって、「SEUIL_INIT」で、ある程度初期の不安定性を抑えることが出来るのが分かりました・・・。)まだまだ摩擦設定の全貌をとらえきれていません。何かお気づきの点がありましたら、ご助力の程お願い申し上げます。私が思いつく安定化は、ALGO_CONTとALGO_FROTをPENALISATIONに変えることぐらいでしょうか。私も摩擦ありの接触(特に摩擦係数:0.3以上)はやった経験が少ないので間違っているかもしれません。23時24分もう1つ安定化の方法がありました。境界条件を、AFEE_CHAR_MECAからAFFE_CHAR_CINEに変えるのも良いようです。下のURLに、rband01b.commにAFFE_CHAR_CINEを加えたものを置きましたので参考にしてください。併せて計算の高速化のために、STAT_NON_LINEのソルバーもMUMPSに変えています。(ただ、MUMPSはパラメータの調整が要るので、エラーが出るようでしたら消しても良いです。上でリンクを貼ったコマンドファイルはAFFE_CHAR_CINEの設定がおかしかったので修正しました。commファイルのサンプル作成ありがとうございます。作成して頂いたcommファイル(修正前)で試してみました。(trqについては、AFFE_CHAR_MECAに修正したのと、AFFE_CAHR_CINEとMUMPSの効果を切り分けるため、両者を別に設定して、計算してみました。)その結果ですが、残念ながらこのモデルではCINEおよびMumpsの効果は確認出来ませんでした。安定化の評価については難しいですが、計算時間(収束しやすさ)と、COEF_FROTをどこまで大きく出来るかという点に着目すると、CINEやMumpsを適用した場合も従来とほぼ同じになりました。この原因ですが、まずCINEについては、このモデルは全体の自由度に対して拘束される自由度の割合が極端に少なく(わずか数点)、自由度の減少の効果がほとんど無いためだと思われます。Mumpsについては、全体の自由度が小さすぎ、Mumpsソルバーの効果があまり発揮されないのでは無いでしょうか。これについては、また3次元化して全体自由度や拘束される自由度が増えた時に再度試してみます。ありがとうございました。それから、摩擦のPENALISATIONですが、STANDARDよりも収束しやすく、時間ステップ幅を大きく取れるようです。COEF_PENA_FLOTをかなり小さな値にしないと、初回のインクリメントが収束してくれないという問題が有りました。COEF_PENA_FLOTを1ぐらいまで下げると収束しますが、その場合には、摩擦の効きが悪く、バンドが滑ってしまいました。時間ステップ刻みを非常に細かくすると、収束することもありますが、その場合は計算時間が膨大になって現実的では無くなります。それに関しては、「SEUIL_INIT」に0.01~0.2程度の値を設定することで、ある程度解決できそうです。今のところ、COEF_PENA_FLOTは200~500ぐらいまで上げることが出来、摩擦も効くようになっています。あとは、メッシュについて、四角形要素で均等・整然とした分割をするようにして試行しています。アドバイスありがとうございます。何か進捗があればご報告いたします。23時41分この記事へのコメントは終了しました。URL携帯にURLを送るRSSを表示する@niftyが提供する無料ブログはココログ!。