ROSS を使いこなそう
TestRotorを使って、このような感じの多段遠心コンプレッサを見ていきましょう。
座標系の定義
ROSSではBearingにおけるKxx,Kxy,Kyyの座標定義は下記のようになっています。
Rotorで使用するオプション
ここのサンプルではRotorのオプションとして頻繁に登場するものをいくつか使用しています。
shaft_file = Path("shaft_si.xls")
shaft = rs.ShaftElement.from_table(
file=shaft_file, sheet_type="Model", sheet_name="Model"
)
file_path = Path("shaft_si.xls")
list_of_disks = rs.DiskElement.from_table(file=file_path, sheet_name="More")
bearing1 = rs.BearingElement.from_table(n=7, file="bearing_seal_si.xls")
bearing2 = rs.BearingElement.from_table(n=48, file="bearing_seal_si.xls")
bearings = [bearing1, bearing2]
rotor3 = rs.Rotor(shaft, list_of_disks, bearings)
- rs.shaftElement.from_table エクセルインポートオプション:Tutorialではpythonで作成したRotor.tomlをあらかじめ入力ファイルとして設定したエクセルを取り込むことで構築することが可能です。
- rs.BearingElement.from_table 軸だけでなく、ベアリングもエクセルから取り込み可能です。
- BearingElement n_link: デフォルトではベアリングは地面に剛結された状態です。ダンパーや軸が浮いている場合は、n_linkオプションを使って浮かすことができます。下記のように使います。nは2以上でも設定できるので複雑な二軸式などの軸も再現可能です。
- MagneticBearingElement: bearingelement定義オプションの一つで、磁気浮上軸受に使用します。サンプルでは未使用です。
stfx = 1e6
stfy = 0.8e6
bearing3 = rs.BearingElement(n=0, kxx=stfx, kyy=stfy, cxx=1e3, n_link=1, tag="journal_bearing")
bearing4 = rs.BearingElement(n=1, kxx=1e7, kyy=1e9, cxx=10, tag="support")
下図の例の場合、地面、ファンケーシング、コンプレッサケーショング、コンプレッサシャフト、ファンシャフトが入り組んでいて、n_link=0~5までを使用します。
その他、流体軸受も頻繁に使用するオプションの一つで、フィルムの解析を事前に実施する必要があります。
流体軸受だけで記事になってしまうので今回は割愛です。。。軸受プロパティを理論的に求める機能は実装されていて、公式チュートリアルに作り方があります。
https://ross.readthedocs.io/en/stable/discussions/example_9.html
実行結果
実行すると一通りの結果が出力されます。まずキャンベル線図を見てみましょう。この図だけだと一応結果としては出力されるものの、線図から一次危険速度を読み取ることが難しそうですね。非減衰固有値線図を見ると2000-4000rpmで遷移することが分かります。
次に各モードシェイプをプロットします。ここでの各モード周波数はあくまで軸/軸受単体の固有値で、軸系全体の応答とは異なります。
mode1~3は剛性軸としての軸受共振ですが、ωd=0~1.8と、ほぼ静止状態の共振点であることが分かります。つまり回転していない状態で軸を揺らした時の挙動なので、無視できます。mode4~は弾性軸としての共振でmode5 ωd:903 = 8600rpm付近が軸の固有値に該当します。
この時振幅が出ているのは中央付近、node no. 20~30付近ですので、危険速度付近ではこのあたりの振幅が大きくなると考えられます。軸系全体の挙動を確認するため、node no.27での周波数応答線図を引いてみます。
6350rpmで、一次危険速度に該当する共振が発生することが分かりました。また、1000rpm付近でも振幅が立つ領域があります。これで軸系の挙動がある程度把握できました。
最後に強制的に外力を与えるために、人為的なアンバランスを導入します。node 29, 33のディスクに不釣り合いが仮定した場合、下図のような応答を示します。例えば危険速度手前の5200rpmでの位相遅れやBMDの出力もできます。
プロットしてみていかがでしたでしょうか?RD解析では、ただ危険回転速度を導出するだけではなく、軸の挙動を把握し、効率よく軸設計を行う上で欠かせません。
いじってみてどうでしたか?軸設計において注意が必要な点は、RDに関して言えば:
- 必ずしも危険回転速度ですべてのノードの振幅が最大になるわけではないから、気をつけよう。
- 軸や軸受の固有値=軸系の固有値とはならないよ。でもオーダーとしては何かしらの要素の固有値に近くなる傾向があるから、値がおかしい場合は要素単体と見比べてみよう。
- 危険速度を避けられない場合は、変位や力が大きくなるノード付近への要素の配置をなるべく避けよう。
- 逆に軸の許容応力以下であれば、積極的に変位を発生させることで、要素部位での力や変位が抑えられることがあるよ=>これがShaft Slenderです。
- キャンベル線図から得られる情報は限定的。モードシェイプと周波数をしっかりと確認しよう。
- 許容アンバランスは大きい方が製造コストは下げられるけど、その結果として軸全体が複雑化したり軸受が増えてしまうと本末転倒。アンバランスに対する感度がどこが高いのかと確認しよう。
使用する上でのチュートリアルは以上です。他にも公式ページには色々なオプションやケーススタディが掲載されています。
Stochasitc ROSS
ROSSには製造ばらつきを加味した解析を行うStochasticモードが標準搭載されています。ばらつきパラメータを設定すると自動的に分散を計算してくれ、信頼区間のプロットを作成することも可能です。
Stochasticモードは各要素のメソッド名methodに対して、ST_methodを使います。
その他の機能について
ROSSは生まれたばかりの新しいソフトで、残念ながらスラストの計算、ねじれ振動の計算はまだ実装されていません。その分、どのような機能でも比較的簡単に追加することが可能です。
機能ではまだ商用ソフトには及ばないですが、無料で使え、高い拡張性が強みです。何よりたった2年間でここまで開発が進んだというのが、一番の驚きです!積極的に開発を進めるためにも是非皆さんたくさん使って、広めて行ってください!
おすすめ図書・最後に
計算の中身についてもっと学びたいという方向けにおすすめの図書を紹介しています。
イチオシ:Turbomachinery Rotordynamics:
Dyrobesのオンラインマニュアルが公開されており、ソフトは違うものの、これを読めば一連の作業の内容や必要な計算内容について理解することができます。
https://dyrobes.com/wp-content/uploads/2012/12/book_pract_rdffbd_Chapter-6.pdf
防大松下教授の入門図書で、振動解析の基本が記載されています。
RDにを実施するための数学的背景を理解するのに適した内容です。
上級者向け:
RDの偉大な貢献者であるWen Jeng Chen氏の図書でRDの詳細を網羅しています。(私も全編は履修できていません。)
RDは教科書を読むだけでは理解が難しく、実践してみるのが一番分かりです。
今回はこれまでは商用ソフトでしか出来なかったRD解析をOSSを利用して体験してみるというのが目的でしたがいかがでしたでしょうか?
体験を通じて少しでも軸への理解が深まったなら、嬉しい限りです。
本日も読んで頂きありがとうございました!二回連続でターボ機械特集でしたが、楽しんで頂けたでしょうか?次回はまた違うトピックで記事を書きたいと思います。それではまた~お会いしましょう!
参考・クレジット
https://jstage.jst.go.jp/article/tsj1973/28/3/28_3_129/_pdf
https://www.tytlabs.com/japanese/review/rev301pdf/301_001inagaki.pdf