FreeCAD-Ship s60 tutorial (II)/jp

このチュートリアルを開始する前に第一部.を既におこなったどうか確認してください.

ここでFreeCAD-Shipをより詳しく学ぶことができます.

導入
このチュートリアルでは最も重要な静水力学的安定パラメーターであるGZ曲線を計算するための重量とタンクを取り扱います. GZとは船舶がロールした際に発生する静的モーメントのことでGZによる力が正の場合には船舶は製のモーメントを取って垂直な位置に復帰しますが、GZが負に変わると船舶は安定性を失い、危険な状態に陥ります.

IMO（国際海事機関）は次のような基準を定めています：


 * GM >= 0.15m. GM（メタセンタ高）はGZ曲線の初期タンジェントです.
 * 最大GZ値がロール角30度より大きいこと.
 * ロール角30度でGZ値が少なくとも0.2mあること.
 * ロール角40度までのGZ曲線に含まれる面積が少なくとも0.090m · rad.あること.
 * ロール角30度までのGZ曲線に含まれる面積が少なくとも0.055m · rad.あること.
 * ロール角30度から40度までのGZ曲線に含まれる面積が少なくとも0.030m · rad.あること.

このチュートリアルではシリーズ60船型に対して現実にはありえない仮想的な重量とタンクの設定を行います.

船の重量
GZ曲線を計算するためには船の重量と各ロール角でのその位置をしる必要があります. 重量は二つのカテゴリーに分けられます：


 * 固定重量. 船の動きに完全に追従します.
 * タンク. 流体の形状が角度によって変化するので各位置で重心を計算する必要があります.

FreeCAD-Shipでは各インスタンスを生成する二つの異なるツールが用意されています.

重量定義ツールのアイコン

重量定義ツールを使うと一つ目のカテゴリーの重量を設定することができます. 最初に（船のインスタンスを選択して）ツールを立ち上げた際にFreeCAD-Shipはライト級船舶（船の排水量と等価）として船の重量を初期化します. この荷重は船体形状の重心のX座標と設計喫水高に配置されます. 通常は少なくとも2つの関連する荷重が存在します：


 * 構造
 * 主エンジン（複数の場合あり）

それでは変更を加えていきましょう. 各セルをダブルクリックして編集可能な状態にしたら以下の重量を設定していきます：


 * Structure, 15000 kg, (-0.1, 0, 1.25) m
 * Starboard engine, 5000 kg, (-6.5, -0.65, 0.5) m
 * Port side engine, 5000 kg, (-6.5, 0.65, 0.5) m
 * Emergency engine, 2500 kg, (0.2, 0, 2.5) m

重量定義の3Dプレビュー

重量位置は3Dビューで表示されます. この注釈はツールを閉じると消えるので気にしないでください. Acceptを押すと重量が船のインスタンスに保存されます.

タンク
船舶のインスタンスと同じようにタンクはソリッド形状の最上段レベルに作成する必要があります. まず最初にやることは計算を行う二つの船首タンクのソリッド形状を（船の両側に一つずつ）作成することです（通常、船舶には燃料、真水、積荷などの複数のタンクが載せられています）.

形状の生成
タンクを作成するためにパートモジュールを読み込み、ボックスソリッドを作成します.

ボックスを編集する必要があるのでAtributes and tagsツリーで選択してデータタブの画面から変更を行います. PlacementのPositionを開き、xを1.5、zを-1と入力します. ボックスの長さも変更したいのでLengthを5.0に変更してください（単位がmmとなっていますが気にする必要はありません）.

タンクの形状は作成したボックスと船体形状の共通部分です. まずShipインスタンスを非表示にしてからs60_IowaUniversity形状を表示しましょう. ボックスとs60_IowaUniversityを選択し、積演算を使って右舷側タンク形状を生成します.

タンク形状の生成

左舷側タンクは右舷側の形状を選択してミラーツールを使うことで作成できます. 鏡像面にはXZを選択します.

タンクの形状を通常のソリッド形状に変換し、s60_IowaUniversity形状をもとに戻すためにドラフトモジュールを読み込み、右舷側タンクの形状を選択してアップグレードを実行します. 同様に左舷側タンク形状に対しても同じ操作を繰り返してください. それからジオメトリーの名前を次のように変更します.


 * StarboardTankGeom
 * PortTankGeom

作成したボックスはもう必要ないので削除して構いません.

タンクのインスタンスの生成
再度FreeCAD-Shipモジュールを読み込むとタンクインスタンス生成ツールがあることに気がつくでしょう.

Tタンクインスタンス生成ツールのアイコン

まずStarboardTankGeomを選択してタンクインスタンス生成ツールを実行します. ここでいくつかのデータを設定する必要があります. 充填レベル40%、流体密度925kg/m$$\mathrm{m}^{3}$$（燃料の近似値）を設定しましょう. Acceptをクリックすると Tankという名前の新しいタンクのインスタンスが生成されます. 名前をStarboardTankに変更してStarboardTankGeomを非表示にしましょう.

同じ操作を行なって左舷側のPortTankを生成します.

生成された荷重の表示

図は私たちの船での計算結果を示しています.

GZ曲線の計算
FreeCAD-ShiではGZ曲線を簡単に計算するためのツールが用意されています.

GZ曲線計算ツールのアイコン

Shipインスタンスを選択してからこのツールを実行します. 開かれたダイアログにまず表示されるのはアクティブなドキュメントで見つかった全てのタンクインスタンスのリストです. 今回は両方とも使用したいのでタンクをクリックします. クリックすると目印として背景色が変わります.

船舶の排水量と喫水の結果を求めるためにUpdate displacement and draftを押してください. しばらくの間、計算が実行され、以下の様なデータが出力されます.


 * Displacement = 37505.5 kg
 * Draft = 0.818664 m

積載をおこなっていない状況なので喫水は設計喫水よりも少し低い位置になります. 通常、低い喫水は船舶の安定性の低下を意味します. 喫水は積載の状態に依存するのでもし本当に船をこの積載条件で運用しようと考えるのであればバラストタンクの実装を考えるべきでしょう.

船のトリムを自動で計算することもできます. この処理には約一分かかり、私たちの船には0.95度のトリム角があるという結果が返されます（船尾側が高い）. 今回の例ではトリム角無し（0度）で作業を行いましょう.

ツールは考慮するロール角も必要とします. 今回のケースでは船舶の全ての振る舞いを知りたいので以下のように設定します：


 * 開始ロール角 0度
 * 終了ロール角 180度
 * 46点. 各点2度ずつ. GZ計算には時間がかかります. 設定する計算点数には注意してください.

Acceptを押すとツールが計算を開始します. もしFreeCADをターミナルから実行している場合には処理の進捗を確認することができます. 数秒でGZ曲線を得ることができます.

このツールではpyxplotとghostscriptを使用しています. レポートビュー（View/Views/Report view）で出力ファイルgz.datがどこに保存されたかを確認することが可能です. このファイルはデータシートソフトウェア（例えばlibreOffice）を使って読み込むことができます. 他にもいくつかの補助的なファイルが作成されます.


 * gz.dat: 計算されたGZ曲線のデータ
 * gz.pyxplot: 曲線をプロットするためのpyxplotレイアウト
 * gz.eps: EPS画像
 * gz.png: PNG画像

ツールを再度実行した場合にはこれらのファイルは上書きされます.

結果
GZ曲線の結果

GZ最大値は30度より大きい位置にあり（45度）、30度で0.25mになっています（0.2 mが最小値）. 30度まででGZ曲線の下になる面積は0.065m·rad、40度までだと0.092m·rad、30度から40度までの間の面積は0.027m·radです. 従って私たちの船はIMOの基準に達していません. これを解決するにはバラストタンクを設置することです.

一方でこの船は非常に悪い状況にある場合であるロール角95度でも正のGZ値を持っています. とはいってもIMOの安定性基準から見れば十分なものとはいえません. これはIMOによって課せられた基準が厳格なものであることを示しています.

もちろんこのサンプルは現実のものではありません（何よりも燃料タンクが二重底構造でなく、しかも船体側を構造として使用していないというのがあり得ません）がFreeCAD-Shipの学習用途としては良いサンプルだと思います.