ノーマルモード解析結果の保存と読み込み

OptiStructでは、ノーマルモード解析の結果を読み込んで、モーダル法による周波数応答解析または線形過渡応答解析で使用することができます。

これにより、1回のノーマルモード解析から得られた固有値結果を利用して、動荷重解析を複数回実行できます。

この場合の入力には、以下の入出力オプションおよびサブケース情報セクションエントリを使用できます:
  • EIGVSAVE
  • EIGVRETRIEVE
  • EIGVNAME
  • ノーマルモード解析から得られた固有値および固有ベクトルの保存

サブケース情報エントリEIGVSAVEをノーマルモード解析のサブケース内で使用すると、このサブケースの固有値および固有ベクトルが、外部のデータファイルに書き込まれます。EIGVNAME入出力オプションを指定しない限り、この外部データファイルはデフォルトとして入力ファイル名を使用し、その後にアンダースコア、EIGVSAVEの整数引数、および拡張子.eigvが続きます。

例えば、入力は、ノーマルモード解析で得られた固有値および固有ベクトルを、test_file_50.eigvというファイルに保存します。
EIGVNAME = test_file
$
Subcase 10
spc 	= 1
method	= 20
EIGVSAVE	= 50

モーダル法による周波数応答解析または過渡応答解析のための固有値および固有ベクトルの読み込み

サブケース情報エントリEIGVRETRIEVEを、モーダル法による周波数応答解析または過渡応答解析のサブケース内で使用すると、外部データファイルから固有値および固有ベクトルを読み込むことができます。EIGVRETRIEVEには複数の整数引数を指定できます。個々の引数は、それぞれ別の外部データファイルを指します。EIGVNAME入出力オプションを指定しない限り、この外部データファイル名は、デフォルトの出力ファイル接頭子の後にアンダースコア、EIGVRETRIEVEの整数引数、および拡張子.eigvを付加したものであることが必要です。

たとえば、次の入力をモーダル法による周波数応答解析のサブケースに使用することで、前述の例で保存した固有値および固有ベクトルを読み込むことができます。
EIGVNAME = test_file
$
Subcase 40
Spc	= 1
Dload	= 30
Method	= 20
EIGVRETRIEVE	= 50

複数のノーマルモード解析から得られた固有値および固有ベクトルを結合して、モーダル法による1回の周波数応答解析または過渡応答解析に使用

複数のノーマルモード解析から得られた結果を読み込んで結合し、モーダル法による1回の周波数応答解析に使用できます。

たとえば、次の実固有値抽出(EIGRL)データを使用してノーマルモード解析を実行したとします。
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20   50.0            
この結果は、外部データファイルに次のように書き込まれます:
EIGVNAME = test_file
$
Subcase 10
spc 	= 1
method	= 20
EIGVSAVE	= 50

この例では、50Hzを上限としてすべての固有モードが計算され、test_file_50.eigvファイルに書き込まれます。

70Hzを上限としたすべてのモードによってモーダル法による周波数応答解析を実行するには、次の実固有値抽出データを使用して、新たにノーマルモード解析を実行します:
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 50.0 70.0            
この結果は、外部データファイルに次のように書き込まれます。
EIGVNAME = test_file
$
subcase 10
spc 	= 1
method 	= 20
EIGVSAVE	= 70

50~70Hzのすべての固有モードが、test_file_70.eigvファイルに書き込まれます。

これで、次の内容でモーダル法による過渡応答解析を実行できます。
EIGVNAME = test_file
$
subcase 40
spc	= 1
dload	= 30
method 	20
tstep(time)	= 100
EIGVRETRIEVE	= 50, 70
モーダル法による過渡応答解析のサブケースで参照される実固有値抽出データは、読み込まれた値の範囲を超える固有値や固有ベクトルの結果を要求することはできません。このような値が要求されると、エラーが発生してOptiStructが終了します。
表 1. EIGRLカードが有効
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 0.0 70.0            
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 0.0 50.0            
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 30.0 40.0            
表 2. EIGRLカードがエラー終了を招いている
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 0 100.0            
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 50.0 70.01            

固有値の結果を保存する際に実行していたノーマルモード解析で参照されたEIGRLバルクデータエントリの最大モード数を含まない周波数範囲を使用することをお奨めします。最大モード数が指定されていると、モーダル法周波数応答解析でこれらの固有値結果が読み込まれたとき、要求された範囲に対応するモードがすべて取得されたかどうか判断できない場合に、エラーが発生してOptiStructが終了します。

たとえば、周波数範囲0.0~50.0Hzに、ちょうど300のモードが存在するとします。ここで、次のEIGRLバルクデータエントリを参照するノーマルモード解析を実行したとします。
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 0.0 50.0 300          
固有ベクトルおよび固有値は次のように保存されます:
EIGVNAME = test_file
$
Subcase 10
spc 	= 1
method	= 20
EIGVSAVE	= 50

0~50.0Hzの範囲にある300のモードがすべて抽出され、test_file_50.eigvファイルに保存されます。

次に、モーダル法による周波数応答解析で使用するために、これらの結果を次のように読み込みます:
EIGVNAME = test_file
$
subcase 40
spc	= 1
dload	= 30
method 	20
EIGVRETRIEVE = 50
参照するEIGRLの定義は次のとおりです:
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 0.0 50.0            

この処理はエラーが発生して終了します。外部データファイルから、0.0~50.0Hzの範囲に300のモードがあることはわかっていますが、これらがすべてのモードであるかどうかは判断できないためです。

しかし、ノーマルモード解析で参照されるEIGRL定義が次のように指定されていたとします:
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
EIGRL 20 0.0 50.0 301          

これに対し、検出されたモードが300のみであった場合は、それらが0.0~50.0Hzの範囲にあるすべてのモードであると判断できるので、保存された固有値結果を読み込むことができます。OptiStructは、エラーが発生して終了することはありません。