FMS(R/C用フライトシミュレータ)のParファイル解析
FMSは、フリーソフトとして海外で開発されているラジコン用のフライトシミュレータです。Windows95/98/Meパソコン上で動作し、自分の使っているプロポをコントローラーとして使用できること、機体や風景のデータを作成/流用しやすいこと、リアルな操作感が得られることなどから、日本でも利用者が増加中です。
ここでは、parファイル(空力特性のデータファイル)の内容について、少しずつ解明していきたいと思います。
[1]パラメータ推定
FMSはリアルな動きを再現しているにもかかわらず、使用している空力パラメータの数は、驚くほど少なくなっています(PPSimのパラメータ数はFMSの3倍以上です)。パラメータを整理することで、計算速度を向上し、スムーズな操作感が得られるように配慮しているものと思われます。おそらく、飛行計算よりも画面表示に重点を置いたプログラム設計なのだと思います。
この入力パラメータを前提として、自分でシミュレータを作る場合、どのように変数を設定し計算式を作成すれば計算量を減らせるか、という着目点から、パラメータの推定を行いました。ただし、まだ検証できていない項目が多いです。
行 | 記号 | 名称 | Su-26 | 単位 | コメント |
1 | Type | 機体タイプ | 0 | - | 0=飛行機/1=ヘリコプター |
2 | Tmax | 最大推力 | 25 | N |
フルスロットルでのエンジン推力です。 |
3 | Drmax | ラダー等価最大舵角 | 0.22 | rad | フライングラダーの最大舵角(ステックをフルに倒したときの舵角)です。 垂直尾翼に対するラダーの面積が30%で、最大舵角が25度なら、フライングラダー換算とラジアン換算を行い、 Drmax=(30/100)^(1/1.7)*25/180*π=0.215 |
4 | Demax | エレベーター等価最大舵角 | 0.17 | rad | フライングエレベーターに換算した、エレベーターの最大舵角(ステックをフルに倒したときの舵角)です。 水平尾翼に対するエレベーターの面積が30%で、最大舵角が20度なら、フライングエレベーター換算とラジアン換算を行い、 Demax=(30/100)^(1/1.7)*20/180*π=0.172 |
5 | Damax | エルロン等価最大舵角 | 0.003 | rad | フライングエルロンに換算した、エルロンの最大舵角(ステックをフルに倒したときの舵角)です。普通に計算すると、主翼に対するエルロンの面積が20%で、最大舵角が25度なら、フライングエルロン換算とラジアン換算と翼幅規格化を行い、 Damax=(20/100)^(1/2)*25/180*π/4=0.0488 になるはずですが、FMSでは、かなり小さい値が使用されています。 |
6 | CLmax | 最大揚力係数 | 1 | - | 主翼の最大揚力係数です。使用するレイノルズ数における翼型の風洞実験データが入手できれば、そのまま使ってください。不明なときの近似式は、 CLmax=(1+0.07*Log10(Re/10000))*(1+0.048*Camber) ここで、Re:レイノルズ数=V*c/15E-6、V:飛行速度(m/s)、Camber:キャンバー(%) 速度10m/s、翼弦長=0.26m、キャンバー2%とすると、Re=10*0.26/15E-6=173333なので CLmax=(1+0.07*Log10(173333/10000))*(1+0.048*2)=1.10 |
7 | CLmin | 最小揚力係数 | -1 | - |
主翼の最小揚力係数です。背面飛行における最大揚力係数に相当します。翼型の風洞実験データが入手できないときの近似式は、 |
8 | CLa | 揚力傾斜 | 6.2 | 1/rad | 主翼の揚力傾斜です。迎角を大きくしていくときの、揚力の増加割合を表しています。2次元翼(無限長の翼幅を持つ翼)での理論値は2*π=6.28319ですが、実際の三次元翼の揚力傾斜は、翼端を回りこむ流れのために小さくなり、 CLa=1/(1/(2*π)+1/(π*A)) になります。ここでA:主翼のアスペクトレシオで、A=5のとき、 CLa=1/(1/(2*π)+1/(π*5))=4.49 |
9 | CLaSt | 失速時揚力傾斜 | 13 | 1/rad | 失速時の揚力係数の減少割合(たぶん傾き)です。最大揚力係数に対応する迎角以上になったとき、この傾きで揚力を減少させます。この値が大きいと、失速時の挙動がクリティカルになります。 キャンバーの大きな翼型は、失速時の揚力減少も大きくなるため、少し大きめの値にしますが、失速特性は複雑で、これを単純なパラメータで表現することは困難のため、飛行特性を見ながら値を合わせこむことになると思います。 |
10 | Cf | 翼面抗力係数 | 0.018 | - |
揚力=0における主翼の抗力係数です。 |
11 | CDb | 胴体抗力係数 | 0.02 | - | 胴体の抗力係数と尾翼の抗力係数を主翼面積基準に換算した値です。 ただし、FMS内部で自動的に0.04が加算されるので、計算上は、0.04を引いた値を設定(負の値にも設定できるようです)したほうが良いはずですが、Cf+CDbが負になると、FMSが不安定になる場合があるようです。 流れが剥離していない場合の近似式は、 CDb=Cf*(胴体表面積+尾翼表面積)/S-0.04 |
12 | mug | 路面摩擦係数 | 0.4 | - | 地上走行時の、路面の摩擦係数です。摩擦力(Kg重)は摩擦係数*機体質量(Kg)なので、摩擦係数をエンジン推力/機体質量/9.8以上にすると、推力よりも路面摩擦が大きくなり、地上走行ができなくなります。エンジン推力=25(N)、機体質量=2.1Kgなら、25/2.1/9.8=1.21が境界値になります。 |
13 | dCDSt | 失速時抗力係数増加 | 0.76 | - | 失速時の抗力係数の増加分です。最大揚力係数に対応する迎角以上になったとき、この値を加算します。値が大きいと、失速前後の挙動がクリティカルになります。 この値も計算で求めることは困難(値を合わせても、FMS上の飛行特性が一致する保証が無い)なので、飛行特性を見ながら値を合わせこむことになると思います。 |
14 | CM | モーメント係数 |
0 | - | 主翼の翼型のモーメント係数(空力中心まわりに翼を回転させようとする空気力を無次元化したもの)です。対称翼の場合は0、キャンバーが正のときは負の値になります。翼型の風洞実験データが入手できないときの近似式は、CM=-0.03*Camber キャンバーが2%のとき、CM=-0.03*2=-0.06 |
15 | alpha0 | 主翼取付角 | 0.015 | rad | 水平尾翼の取付け角を基準とする、主翼の取付け角(rad)です。 3度なら、3/180*π=0.0524rad になります。 |
16 | b | 主翼翼幅 | 1.6 | m | 主翼の翼幅です。 |
17 | c | 主翼翼弦長 | 0.32 | m^2 | 主翼(矩形翼換算)の翼弦長です。 Su-26の場合、b=1.6m、c=0.32mなので、 主翼面積は、S=b*c=1.6*0.32=0.512m^2(=51.2dm^2) アスペクトレシオは、A=b/c=1.6/0.32=5.00になっています。 |
18 | hce | 等価重心位置 | 0.08 | m | 主翼(矩形翼換算)の前縁から機体重心までの等価的な距離です。 Su-26の場合、hce=0.08m、c=0.32mなので、主翼翼弦長基準に換算するとhe=hce/c=0.08/0.32=0.25 (=25%)になり、主翼空力中心位置に重心が設定されていることになります。 ただし、FMSでは、主翼の吹き降ろしの影響を計算していないようなので、その影響分を補正したほうが、計算上は、実際の飛行に近くなると思います。 hce=hc+She/S*Lt*CLa*2/π/A ここで、hc=主翼(矩形翼換算)の前縁から機体重心までの距離(m) She=水平尾翼等価面積(m^2) S=主翼面積(m^2) Lt=テールモーメントアーム(m) CLa=主翼揚力傾斜(1/rad) A=主翼アスペクトレシオ She=0.0933(m^2)、S=0.512(m^2)、Lt=1(m)、CLa=4.49(1/rad)、A=5とすると、 hce=0.08+0.0933/0.512*1*4.49*2/π/5=0.184(m) ただし、あまり大きく(重心を後方に)すると、静安定余裕msが悪化し、FMSが動作しなくなります。 ms=She/S*Lt/c-hce/c+0.25 She=0.0933(m^2)、S=0.512(m^2)、Lt=1(m)、c=0.32(m)、hce=0.184(m)とすると、 ms=0.0933/0.512*1/0.32-0.184/0.32+0.25=0.244 (=24.4%) 静安定余裕msが20%以上になるように重心位置を設定したほうが良さそうです。 20%以上でも、慣性モーメントとの関連で、エラーになる場合もあり、FMSの操作感としては、主翼の吹き降ろしの影響を補正しないほうが良いかもしれません。 |
19 | m | 機体質量 | 2.1 | Kg | 機体の質量です。 Su-26の場合、m=2.1Kg、b=1.6m、c=0.32mなので、 翼面荷重 WS=m/(b*c)=2.1/(1.6*0.32)=4.10Kg/m^2(=41g/dm^2)になっています。 |
20 | Izz | ヨー慣性モーメント | 0.11 | Kg*m^2 | ヨー軸まわりの慣性モーメントです。近似的には、Iyy+Ixxになります。 大きくすると、ラダーの操舵応答が少し遅くなります。ただし、極端に大きく(1000Kg*m^2)しても、あまり効果がなく、どのように計算に使われているか不明です。 |
21 | Iyy | ピッチ慣性モーメント | 0.085 | Kg*m^2 | ピッチ軸まわりの慣性モーメントです。胴体と尾翼の慣性モーメントが支配的になります。 大きくすると、エレベーターの操舵応答が遅くなります。あまり大きくすると、エラーが発生するようです。(普通に計算していれば、小さいとエラーが発生しやすいはずなのですが、どのように計算しているか不明です。) |
22 | Ixx | ロール慣性モーメント | 0.06 | Kg*m^2 |
ロール軸まわりの慣性モーメントです。 |
23 | She | 水平尾翼等価面積 | 0.09 | m^2 | 水平尾翼の面積を、水平尾翼の揚力傾斜と主翼の揚力傾斜の比で補正したものです。 She=Sh*CLah/CLa Shは水平尾翼面積、CLah=1/(1/(2*π)+1/(π*Ah))は水平尾翼の揚力傾斜です。 水平尾翼のアスペクトレシオAh=4のとき、CLah=1/(1/(2*π)+1/(π*4))=4.19なので、Sh=0.1m^2、主翼の揚力傾斜CLa=4.49の場合、 She=0.1*4.19/4.49=0.0933 |
24 | Sfe | 垂直尾翼等価面積 | 0.03 | m^2 | 垂直尾翼の面積を、垂直尾翼の揚力傾斜と主翼の揚力傾斜の比で補正したものです。 Sfe=Sf*CLaf/CLa Sfは垂直尾翼面積、CLaf=1/(1/(2*π)+1/(π*Af))は垂直尾翼の揚力傾斜です。 垂直尾翼のアスペクトレシオAf=1のとき、CLaf=1/(1/(2*π)+1/(π*1))=2.09なので、Sf=0.04m^2、主翼の揚力傾斜CLa=4.49の場合、 Sfe=0.04*2.09/4.49=0.0186 |
25 | Lt | テールモーメントアーム | 1 | m | テールモーメントアームの長さです。重心位置から、尾翼の空力中心までの長さを入力します。 |
26 | VForm | 上反角効果 | 0.0001 | - | Gamma/180*π/4 Gammaは上反角(deg)です。 上反角=5度のとき、VForm=5/180*π/4=0.0218 になるはずなのですが、FMSではかなり小さい値が使用されています。 |
使用しているパラメータ数が少ないため、理論的な計算値をそのまま使用するよりも、少し修正して入力したほうが実際の飛行に近くなる可能性もありますが、DamaxとVFormについては10倍以上の差があるため、基本的な計算式が違っているのかもしれません。特に、Damaxは、上記の計算値の1/10〜1/20程度にしたほうが良さそうです。
[2]パラメータの静的検証
推定したパラメータの検証のため、モデルを変更してフライトを行い、定常飛行状態(直線飛行)の飛行特性について、シミュレーション結果と予想値の比較を実施中です。FMS画面に表示される速度と高度の桁数が少ないため、検証精度はあまり高くありません。
(A)定常飛行状態の揚力係数と飛行速度は
CL=(CLa*(alpha0-k*Demax)+CM/Vhe)/(1-(hce/c-0.25)/Vhe)
V=Sqrt(2/1.2*9.8*Ws/CL)
になるように計算されているようです(失速しない場合)。ここで、kはエレベーターの操舵率で、フルアップでk=-1、トリムでk=0、フルダウンでk=1です。
主翼の吹き降ろしの影響は計算していないようです。(beta7でも修正されていないようです。)
(B)抗力係数CDは、
CD=2*Cf+CDb+CL^2/A+0.02 :beta6
CD=Cf+CDb+CL^2/(A*π)+0.04 :beta7
になっているようです。誘導抗力の計算式が、beta6では通常の航空力学における計算式と異なっていましたが、beta7で修正され、通常の計算式になりました。このA*πとAとの差は大きく、beta6では、誘導抗力が、通常の3.14倍に大きく計算されていました。このため、グライダーのようにアスペクトレシオを大きくした機体でも、誘導抗力が大きくなり、極端に滑空比が劣化していましたが、beta7では少し改善されました。
それでも、抗力係数に固定値が加算されているため、滑空比には制限があります。Cf+CDbを負にすると、FMSの計算が発散する場合があるようです。計算アルゴリズムに問題があり、発散防止用に固定値を加算しているように思われます。計算式の違いにより、beta6用の機体をbeta7で飛行させると、違和感が発生する場合があります。
(C)推力はスロットルだけの関数になっているようです。このため、計算上、安定点が2ポイント発生してしまい、動きが不自然に感じる場合がありそうです。ParDesignerでも、少し変な値が表示されることがあります。
パラメータの静的検証用に作成したソフトを公開しています。
フリーソフトのページ
[3]パラメータの動的検証
操舵応答や安定回復など、動的なパラメータの確認は、手計算では対応できないので、PPSimの計算式を変更して、比較シミュレーションを行う予定でしたが、
パラメータの静的検証で判明した内部計算式が、自分には納得できない内容だったので、取りやめました。
その分、独自のシミュレータソフトの作成に時間をかけたいと思います。
V-Tailsのトップへ戻る
Copyright(C)
2001-12-04 桝岡 秀昭