エクセルシートを用いて機体の重量を推算するための下準備を行う
目的
今回の目的は,エクセルシートを用いて機体の重量を推算することである
今までの記事では設計の一部に使われているプログラムの解説だったが,これからの記事ではそれらを組み合わせながらエクセルで設計シートを製作していく
テンプレートファイルのダウンロード
エクセルシートの配置などの参考になるようにテンプレートファイルを添付しておく
※数式やマクロはすべて削除してあり,値も適当である
文字なしテンプレート
数値のみテンプレート
この記事を読みながら設計シートを作っていきたい人は「no-text」のほうをダウンロードするといい
テンプレート機体の諸元
設計シートのテンプレートファイルで計算している機体の諸元を以下に示す
- 機体重量:95㎏(パイロット60㎏+機体35㎏)
- 巡航速度:11m/s
- 主翼翼幅:25m
- 主翼翼面積:16.7㎡
- 翼面荷重:5.7㎏/㎡
- 水平尾翼面積:1.8㎡
- 垂直尾翼面積:0.6㎡
- 翼型:NACA4415,NACA4412,NACA0012,NACA0009
主翼はスパン方向に5分割されており,内側から0番翼,1番翼,2番翼とする
設計シートの枠組み製作
まずは設計シートの枠組みから製作していく
必要なシートを以下に示す
- 各種パラメータ
- 主翼
- たわみ・ねじり
- 水平尾翼
- 垂直尾翼
- 全機計算
- 主翼翼型1解析
- 主翼翼型2解析
- 水平尾翼翼型解析
- 垂直尾翼翼型解析
- 胴体構造計算
- スパー寸法
- 0番積層構成
- 1番積層構成
- 2番積層構成
- 水平尾翼積層構成
- 垂直尾翼積層構成
- 胴体積層構成
- 機体重量
1つずつ解説していく
翼型解析
このシートの内容は次の記事で説明しているのでそちらを参考にしてもらいたい
各種パラメータ
このシートはプリプレグの物性値や当日の気象条件などを入力する
気象条件の計算方法やソースは以下を参考にしてほしい
≫標準大気 ー 各高度における空気の温度・圧力・密度・音速・粘性係数・動粘性係数の計算式
主翼
このシートでは,主翼についての様々な計算を行う
主翼の空力中心位置[%],リブ間隔[m],桁位置[%]を入力する
主翼は矩形部,第一段テーパー,第2段テーパー,第3段テーパー,ウィングレットから構成され,翼型は翼根側と翼端側で2種類使用する(テーパー数や翼型数を変更したいときはここを変更する)
各テーパー部の境界のスパン[m],コード長[m],取り付け角(機体軸から前縁上げを正)[deg],上反角[deg],翼型配合率[-]を入力し,翼素番号(=\((スパン)\div(リブ間隔)\))を計算する
セルD33で翼素番号の最大値を計算し,片翼分のリブ枚数とする(MAX関数)
先に入力した主翼平面形の値をリブ位置で線形補完したときの傾きと切片を計算する(LINEST関数)
たとえば第一段テーパーのコード長の傾きと切片を計算するにはセルAA7:AB7に次のように入力する
=LINEST(O7:O8,N7:N8,TRUE,FALSE)
45行目以下のセルに,リブ番号,テーパー,リブ位置(スパーに沿った位置)[m],翼素位置(xy平面に投影した位置)[m],高さ[m],翼素間隔[m],取り付け角[deg],上反角[deg],翼型配合率[-]を以下の順番で計算する
- リブ番号
- リブ位置
- テーパー,取り付け角,上反角,翼型配合率
- 翼素位置,高さ
※初期上反角がなければリブ位置と翼素位置は一致する
リブ番号はオートフィルで,リブ位置は(\(=(リブ番号)\times(リブ間隔)\))で計算する
テーパー,取り付け角,上反角,翼型配合率は各テーパーごとに異なるので,IF関数を用いて場合分けをしながら(\(=(傾き)\times(リブ位置)+(切片)\))で計算していく
場合分けにはセルC45以下のリブ番号とM6:M11のリブ番号を用いる
例えばI45には次のように入力する
=IF($C45<$M$7,$AC$6*$E45+$AD$6,IF($C45<$M$8,$AC$7*$E45+$AD$7,IF($C45<$M$9,$AC$8*$E45+$AD$8,IF($C45<$M$10,$AC$9*$E45+$AD$9,$AC$10*$E45+$AD$10))))
エクセルのIF関数は非常に見づらく面倒なのでオートフィルをうまく使いながら頑張って入力していく
翼素位置は(\(=(リブ間隔)\times\cos{(上反角)}\)),高さは(\(=(リブ間隔)\times\sin{(上反角)}\))で計算する
上反角[deg]をRADIANS関数で[rad]に変換するのを忘れずに
同様に,P45以下のセルにコード長を計算し,前縁位置(\(=(コード長)\times(桁位置)\))[m]と後縁位置(\(=(前縁位置)-(コード長)\))[m]を計算する
翼型の解析結果をそれぞれのシートから持ってくる
とりあえずここまで
水平尾翼,垂直尾翼
これらのシートでは,水平尾翼,垂直尾翼についての様々な計算を行う
シートの形式はすべての翼で統一してあるので同様の方法で数値を入力する
積層構成
このシートの内容は次の記事で説明しているので参考にしてほしい
上の記事で説明したことに加え,X26~で積層の種類(全周/強化積層)を選択できるようにし,セルI31でCOUNT関数を使い強化積層の積層数を数えている
ちなみに積層数を変えるたびに右側の表を書き換えるのは非常に面倒なので,「表を自動で書き換えるマクロ」を使う
Sub 積層数変更()
'変数の宣言
Dim ply As Integer '積層数
Dim i As Integer 'カウンター
'積層数の読み込み
ply = Range("I29")
'表を削除
Range(Columns(26), Columns(100)).Select
Selection.Delete Shift:=xlToLeft
'表を追加
Columns(25).Select
For i = 1 To ply - 2
Selection.Insert Shift:=xlToRight
Next i
Range("X3:X26").Select
Selection.Copy
Range(Cells(3, 24), Cells(26, 24 + ply - 1)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'層番号書き換え
For i = 1 To ply
Cells(3, 24 + i - 1) = i
Next i
Range("V2").Select
End Sub
詳しくは解説しないので自分で調べてみてほしい
スパー寸法
このシートではスパーの寸法や断面係数などを計算する
セルD20に短軸/長軸比を入力する.真円なら1.とある滑空チームは1よりも小さい値を入力する
セルF6:F9にスパーのテーパー比を入力する.単位スパン[m]あたりどれくらい長軸内径[mm]が短くなるかを表す.テーパーがない桁なら0.
他シートから必要な値を持ってくる
- セルC6:J9 積層構成シートから積層数と弾性係数
- セルD27 各種パラメータシートからプリプレグ厚さ
- セルD30:D33 主翼シートからリブ枚数,桁位置,リブ間隔
- セルD34:35 翼型解析シートから翼厚
- セルM14 主翼シートから翼端のy座標
セルM6:M13にスパーの境界のy座標,セルD15:D16に挿ししろのマージン[mm]を入力する
それぞれのy座標での楕円の寸法を次のように計算する
- \((長軸内径)=(1つ前の長軸内径)-(テーパー比)\times(距離)\)
- \((短軸内径)=(長軸内径)\times(短軸/長軸比)\)
- \((長軸外径)=(長軸内径)+(全積層数)\times(プリプレグ厚さ)\times2 \)
- \((短軸外径)=(短軸内径)+(全周のみ積層数)\times(プリプレグ厚さ)\times2 \)
ただし,接合部は\( (長軸内径)=(オス側の長軸外径)+(挿ししろマージン)\times 2 \)で計算する
セルAD6:AI12に長軸内径を線形補完するときの係数と傾きを計算する
主翼のシートと同様にLINEST関数を使う
45行目以下を入力していく
主翼のシートからC列にリブ番号,E列にリブ位置,AJ~AL列に翼型配合率とコード長を持ってくる
D列にスパーの種類,P~Q列にヤング率と横弾性係数を計算する
E列のリブ位置をセルM7:M11の値で場合分けするので,例えばD列のスパーの種類だと次のようになる
=IF(E45<$M$8,"0",IF(E45<$M$9,"0-1接合",IF(E45<$M$10,"1",IF(E45<$M$11,"1-2接合",IF(E45<$M$12,"2",IF(E45<$M$13,"2-3接合",3))))))
T列からAE列に,リブ位置における各スパーの径を計算する
リブ位置で場合分けし,目的のスパー以外のリブ位置では何も表示しないようにするので,たとえばV列には次のように入力する
=IF(E45<$M$7,$AD$6*E45+$AE$6,IF(E45<$M$8,$AD$7*E45+$AE$7,IF(E45<=$M$9,$AD$8*E45+$AE$8,"")))
翼端のセルまで値が表示されるよう等号と不等号を使い分ける
F列からI列に,リブ位置におけるスパーの外径と内径を次のように計算する
- 長軸外径:同じリブ位置での各スパーの長軸外径の最大値
- 短軸外径:同じリブ位置での各スパーの短軸外径の最大値
- 長軸内径:同じリブ位置での各スパーの長軸内径の最小値
- 短軸内径:同じリブ位置での各スパーの短軸内径の最小値
このように計算すれば,スパーの接合部の外径はメス側のスパーの外径,内径はオス側のスパーの内径とすることができる
セルD24に断面係数を計算するときの周方向分割数を入力し,リブ位置で桁の断面係数を計算するマクロを作る
Sub 楕円計算()
'引数
Dim ai As Double '楕円内径短半軸 [mm]
Dim bi As Double '楕円内径長半軸 [mm]
Dim ao As Double '楕円外径短半軸 [mm]
Dim bo As Double '楕円外径長半軸 [mm]
Dim num As Integer '周方向分割数
'変数の宣言
Dim span_div As Integer 'スパン方向分割数
Dim data() As Double 'エクセルシートに貼り付ける用の配列
Dim tmp() As Double
'カウンター
Dim i As Integer
Dim k As Integer
Dim sht1 As Worksheet
Set sht1 = Sheets("スパー寸法(sht20)")
With sht1
'値の読み込み
span_div = .Range("D33") 'スパン方向分割数
num = .Range("D24") '周方向分割数
ReDim data(span_div, 5) '配列の要素数を決定
For i = 0 To span_div
'値の読み込み
bo = .Cells(45 + i, 6) '[mm]
ao = .Cells(45 + i, 7) '[mm]
bi = .Cells(45 + i, 8) '[mm]
ai = .Cells(45 + i, 9) '[mm]
tmp() = Section_Modulus(ai, bi, ao, bo, num) '断面係数の計算
For j = 0 To 5 '計算結果を貼り付け用配列に格納
data(i, 0) = tmp(0)
data(i, 1) = tmp(1)
data(i, 2) = tmp(2)
data(i, 3) = tmp(3)
data(i, 4) = tmp(4)
data(i, 5) = tmp(5)
Next j
Next i
.Range("J45:O" & 45 + span_div & "") = data '結果の出力
End With
End Sub
コードについては詳しく解説しないので自分で調べてみてほしい
上のマクロを実行すると45行以下のJ列からO列にリブ位置での断面係数が書きだされるので,R列,S列で曲げ剛性,ねじれ剛性を計算する
AM列からAO列に翼厚と翼厚のマージンを計算する
遷移区間はそれぞれの翼型の翼厚に配合率をかけて足し合わせたものとする
とりあえずここまで
胴体構造計算
このシートでは胴体の構造計算を行う
シートの中身はスパー寸法のシートとほぼ同じなので見たらわかると思う
テンプレートファイルのダウンロード
今回の記事で説明した数式が入っているエクセルシートを添付しておく
説明が不十分だった箇所は実際に自分で見て確認してほしい
※マクロは削除してある
数式のみテンプレート
まとめ
今回は重量推算の下準備として設計シートを作った
エクセルシートの引継ぎ資料は書くのがとても面倒で今までの設計者の気持ちがわかった気がする
↓次の記事
↓記事一覧
コメント