FBBM パッケージ
複合材料積層板の積層構成最適化を,積層パラメータのフラクタル性に基づいて効率よく実施するフラクタル分枝限定法の実行ファイルです.
FBBMソフトウェアパッケージ(zipファイル)のダウンロード
Copyright © 2000, Yuichiro TERADA
1. | lamdes | FBBMによる積層構成最適設計 |
2. | lamparam | 積層パラメータの計算 |
3. | lamtrian | フラクタル分枝(三角形)を拡張メタファイル形式で描画 |
4. | lamtetra | フラクタル分枝(四面体)を拡張メタファイル形式で描画 |
5. | lamcand | 実験計画の候補点生成 |
6. | rsbuilder | 応答曲面作成 |
7. | evalrs | 応答曲面の値を計算 |
8. | subrs | 応答曲面に代入 |
*. | RSファイル | 応答曲面ファイルの書式について |
lamdes
Outline
積層構成の最適設計を行うソフト.Laminate Designer を略して名づけた.本研究の提案する FBBM と総当り探索の両方で最適設計を行うことができる.設計対象は,繊維配交角が0°,45°,90°,-45°の4種類に限定された対称積層構成.目的関数は積層パラメータの2次多項式(応答曲面)で与える.
Usage
(a) C:\> lamdes [options] n file1 file2 ... (b) C:\> lamdes [options] n0 n1 n2 n3 file1 file2 ... (c) C:\> lamdes [options] -b n0 n1 n2 file1 file2 ...
Arguments | |
---|---|
n | 片側積層数 |
n0, n1, n2, n3 | それぞれ0°,45°,90°,-45°の片側積層数 |
file1, file2, ... | 目的関数を表す応答曲面ファイル. |
Options | |
---|---|
-r | 総当り探索で最適化(デフォルトはFBBM) |
-M | 目的関数を最大化(デフォルト) |
-m | 目的関数を最小化 |
-b | 45°層と-45°層をバランスさせる拘束条件を課す |
(a)では片側積層数 n の積層構成を最適設計する.目的関数である応答曲面は別途にファイルに記述し,そのファイル名を指定する.応答曲面を複数指定した場合には多目的最適化を行う. n は片側積層数であるので,真の積層数の1/2の値である.
(b)(c)では,拘束条件として各繊維配交角の層数を指定する.すなわち,面内剛性を固定した状態で積層順序の最適化を行う.(b)では0°,45°,90°,-45°の層数を指定するが,(c)ではバランスルール(-b オプション)を課しているので,0°,±45°,90°の3つの層数を指定する.
応答曲面には次の3種類がある.
- 面内積層パラメータ Vi のみの2次多項式
- 面外積層パラメータ Wi のみの2次多項式
- Vi,Wi 両方の2次多項式
1の場合,面内剛性は積層順序に依存しないため,FBBM では積層順序が異なるだけの重複した解は排除している(その分だけ高速).しかし,総当り探索では積層順序も含めてすべての積層構成を探索する仕様となっている.2の場合が FBBM の最も得意とする問題である.
Example
C:\> lamdes abc.rs | FBBM により abc.rs で指定する応答曲面の最大化 |
C:\> lamdes -m abc.rs > abc.txt | FBBM により abc.rs を最小化し,結果を abc.txt に出力. |
C:\> lamdes -b aaa.rs bbb.rs | FBBM によりバランスルールを課して aaa.rs と bbb.rs の同時最大化(多目的最適化). |
C:\> lamdes -b -r abc.rs > abc.txt | 総当り探索によりバランスルールを課して abc.rs を最大化し,結果を abc.txt に出力. |
C:\> lamdes -rm aaa.rs bbb.rs | 総当り探索により aaa.rs と bbb.rs の同時最小化(多目的最適化). |
lamparam
Outline
積層構成から積層パラメータを計算するプログラム.対象は対称積層板のみ.
Usage
C:\> lamparam sequence sequence ... 対称積層構成
Options | |
---|---|
-v | 面内積層パラメータのみを計算 |
-w | 面外積層パラメータのみを計算 |
引数 sequence には, [0/45/90/-45]s のように対称積層構成を記述する.最後の s は書いても書かなくても対称積層構成として扱われる.括弧 [ ] はあってもなくても良い.繊維配交角はスラッシュ / かカンマ , で区切る.途中に空白文字を入れてはいけない.
Example
C:\> lamparam [0/45/90/-45]s | [0/45/90/-45]s の積層パラメータ(面内・面外両方)を計算 |
C:\> lamparam 0/45/90/-45 | [0/45/90/-45]s の積層パラメータ(面内・面外両方)を計算 |
C:\> lamparam 0,45,90,-45 | [0/45/90/-45]s の積層パラメータ(面内・面外両方)を計算 |
C:\> lamparam -v [0/45/90/-45]s | [0/45/90/-45]s の面内積層パラメータのみを計算 |
C:\> lamparam -w [0/45/90/-45]s | [0/45/90/-45]s の面外積層パラメータのみを計算 |
lamtrian
Outline
積層パラメータ平面上に,フラクタル分枝の三角形によるフラクタル図形を描画し,拡張メタファイル形式(*.emf)で図形を出力する.オプションにより,面内積層パラメータと面外積層パラメータを選択することができる.
Usage
C:\> lamtrian [options] length metafile
Arguments | |
---|---|
length | 片側積層数 |
metafile | 出力ファイル名 |
Options | |
---|---|
-v | 面内積層パラメータのフラクタル分枝を描画 |
-w | 面外積層パラメータのフラクタル分枝を描画(デフォルト) |
-p | 点のみを描画し,辺は描画しない |
lamtetra
Outline
積層パラメータ空間上に,フラクタル分枝の四面体によるフラクタル図形を描画し,拡張メタファイル形式(*.emf)で図形を出力する.オプションにより,面内積層パラメータと面外積層パラメータを選択することができる.
Usage
C:\> lamtetra [options] length metafile [deg1 [deg2]]
Arguments | |
---|---|
length | 片側積層数 |
metafile | 出力ファイル名 |
deg1 | x 軸周りの回転角(デフォルトは30°) |
deg2 | z 軸周りの回転角(デフォルトは120°) |
Options | |
---|---|
-v | 面内積層パラメータのフラクタル分枝を描画 |
-w | 面外積層パラメータのフラクタル分枝を描画(デフォルト) |
-p | 点のみを描画し,辺は描画しない |
lamcand
Outline
実験計画の入力データである候補点を生成するプログラム.lamcand の cand は candidate(候補)を意味している.本プログラムで生成したデータファイルは,そのまま応答曲面法ソフト JMP にインポートすることができる.
Usage
C:\> lamcand [options] n > filename
Arguments | |
---|---|
n | 片側積層数 |
filename | 出力ファイル |
Options | |
---|---|
-v | 面内積層パラメータのみの候補点を出力 |
-w | 面外積層パラメータのみの候補点を出力 |
-b | バランスルールを付加する(V3,W3を無視する) |
Example
C:\> lamcand 8 > candidate.txt | 全ての片側8層対称積層構成の積層パラメータ [V1,V2,V3,W1,W2,W3] を計算し,JMP にインポートできる形式で candidate.txt に出力. |
C:\> lamcand -v 8 > candidate.txt | 片側8層対称積層構成の面内積層パラメータ [V1,V2,V3] を計算し、candidate.txt に出力.面内積層パラメータは積層順序に依存しないため,積層順序が異なるだけの積層構成は重複しないように出力する. |
C:\> lamcand -w 8 > candidate.txt | 片側8層対称積層構成の面外積層パラメータ [W1,W2,W3] を計算し、candidate.txt に出力. |
C:\> lamcand -b 8 > candidate.txt | バランスルールを適用した片側8層対称積層構成の積層パラメータ [V1,V2,W1,W2] を計算し、candidate.txt に出力. |
C:\> lamcand -b -v 8 > candidate.txt | バランスルールを適用した片側8層対称積層構成の面内積層パラメータ [V1,V2] を計算し、candidate.txt に出力. |
rsbuilder
Outline
解析点と応答のデータファイルから2次の応答曲面を作成するプログラム.応答曲面は lamdes の入力ファイルと同じ形式(応答曲面ファイルの形式)で出力される.現バージョンの最大の欠点は決定係数が計算されないこと.また,変数の数(=解析点の次元)は8以下でなくてはならない.
Usage
C:\> rsbuilder dim response-file > output-file
Arguments | |
---|---|
dim | 応答曲面の変数の数(8以下) |
response-file | 解析点と応答のデータファイル |
output-file | 応答曲面の出力ファイル |
Example
以下に,2変数の応答曲面を作成するためのデータファイルの例を示す.
-1.000 1.000 2.0267 -0.875 0.750 2.83918 -0.500 0.000 3.80138 -0.375 -0.250 3.87511 0.000 -1.000 3.8231 0.125 -0.750 3.75566 -0.250 1.000 2.32651 0.000 1.000 2.297 0.500 0.000 3.37774 0.625 0.250 3.10101 0.750 1.000 1.95203 1.000 1.000 0.9459
左の2列が解析点(例えばV1,V2の値)であり,一番右の列が応答 y の値である.このファイルの場合,変数の数は2(解析点は2次元)であるので,コマンドは次のように入力する.(ファイル名は response.txt であるとする)
C:\> rsbuilder 2 response.txt > abc.rs
この結果,2変数2次の応答曲面が生成され,abc.rs に出力される.以下に abc.rs の内容を示す.
# Wed Oct 25 17:11:22 2000 00000000 5.031723e+02 00000001 -3.533792e-01 00000002 -1.599960e+02 00000010 6.312827e+01 00000011 6.143953e+00 00000020 -2.232452e+02
evalrs
Outline
応答曲面の変数(積層パラメータ)に任意の値を代入して,応答の値を計算するプログラム.
Usage
C:\> evalrs rs-file v1 v2 v3 v4 w1 w2 w3 w4
Arguments | |
---|---|
rs-file | 応答曲面ファイル |
v1, ..., w4 | 積層パラメータの値 |
積層パラメータの値は,指定した応答曲面で用いられている変数全てについて入力しないと正確に動作しない.(値を省略してしまうと,その値は 0 として計算されるわけではないので,おかしな数値を出力してしまう)
Example
C:\> evalrs abc.rs 0.1 0.2 0.3 0 0.4 0.5 0.6 0
V = (0.1, 0.2, 0.3), W = (0.4, 0.5, 0.6) のときの abc.rs の応答曲面の値.
subrs
Outline
応答曲面の任意の変数に任意の値を代入して,新たな応答曲面を生成するプログラム.
Usage
C:\> subrs input-file varNo1 value1 varNo2 value2 ... > output-file
Arguments | |
---|---|
input-file | 操作対象となる応答曲面ファイル |
varNoi | 値を代入する変数の番号 |
valuei | varNoi で指定した変数に代入する値 |
output-file | 代入操作の結果新たに生成された応答曲面の出力ファイル |
Example
C:\> subrs abc.rs 1 12.34 | abc.rs の応答曲面の x1 に 12.34 を代入した応答曲面を画面に出力. |
C:\> subrs abc.rs 2 12.34 > xyz.rs | abc.rs の応答曲面の x2 に 12.34 を代入した応答曲面を xyz.rs に出力. |
C:\> subrs abc.rs 1 1.23 2 4.56 | abc.rs の応答曲面の x1 に 1.23 を,x2 に 4.56 を代入. |
RSファイル
上記のプログラム群では,応答曲面をファイルからロードしたり,逆にファイルに書き込んだりすることが多く行われる.これらは全て同じ書式で入出力される.
応答曲面ファイルの入出力は,RsFile.h に定義されている RsFile クラスが担っている.ここでは,この RsFile クラスが入出力するファイル形式について説明する.
以下にRSファイルの例を示す.
# Wed Oct 25 17:11:22 2000 00000000 5.031723e+02 00000001 -3.533792e-01 00000002 -1.599960e+02 00000010 6.312827e+01 00000011 6.143953e+00 00000020 -2.232452e+02
先頭の行には,# に続けて日付がかかれている.行頭に # のある行はコメント行であり,無視される.RsFile クラスは,先頭の行にコメントとして出力時の日付を付すようになっている.読み込む際には,日付はなくても問題ない.
2行目から下が応答曲面の係数のデータである.左の列は係数を特定するキー,右の列はその係数の値である.まずはキーから説明する.
扱う変数は,面内積層パラメータ V1, V2, V3, V4 と面外積層パラメータ W1, W2, W3, W4 の計8つである.これに対応して,キーは8桁の16進数となっている.各積層パラメータとキーとの対応関係を以下に示す.
00000001 → V1 | 00000010 → V2 | 00000100 → V3 | 00001000 → V4 |
00010000 → W1 | 00100000 → W2 | 01000000 → W3 | 10000000 → W4 |
キーの各位の数字は累乗を表す.以下に例を示す.
00000002 → V12 | 00000030 → V23 |
00000011 → V1V2 | 01000020 → V22 W3 |
以上より,例として示した応答曲面ファイルは,次のような多項式を表している.
f = 5.031723e+02 - 3.533792e-01 V1 - 1.599960e+02 V12 + 6.312827e+01 V2 + 6.143953e+00 V1 V2 - 2.232452e+02 V22