返信時には元記事の引用は最小限にしてください
顔文字アイコンとヘルプはこちら>>>>
____________________
[設定ボタン]
を押すと、色々な設定が変更出来ます。題名は投稿内容が判るように付けてください。
|
sekiriki
- 13/6/3(月) 23:34 -
|
ご無沙汰しております。"smartpropo" の関です。
息子も7歳になり、「もうそろそろ飛ばせる年齢かな?」と、10年ぶりにRCに
復帰する事にしました。既に地元のクラブに入会金を支払ってしまったので、
もう後戻りすることはできません。息子が飽きたと言い出さないか不安です。
さてさて、息子の初飛行(父のリハビリ飛行)に先立って、シミュレーターで
練習しようと思い、このサイトに戻ってきた所、FMS が Alpha 8 以降メンテ
ナンスされていない事を知りました(smartpropo のメンテナンスを怠っている
事はこの際棚に上げておきます)。
であれば、(突飛ではありますが)「自分で作ってしまえ」と思い立ち、現在、
flight dynamics について勉強中です。
しかし、こちら↓のサイトを参考にしているものの、引用されている文献が
(h)ttp://www.princeton.edu/~stengel/MAE331Lectures.html
手元にないためか、イマイチ呑み込みが良くありません。かといって、元の
文献は高くて手が出せません。財務大臣の目が三角になってしまいます。
例えば、操縦翼面を動かしたときの dynamics は、AoA が変化したのと等価
(AoA-CL曲線が左右に移動する)のか、キャンバーが変化したのと等価(上下に
移動する)なのか、など、この辺りで消化不良を起こしています。
どなたか、良い文献をご存知でしたら、ご紹介頂けないでしょうか?
実装は仕事の合間の片手間ですので、あまり期待せずにお待ち頂ければと。
よろしくお願い致します。
1,646 hits
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36@u524118.neas2.ne2.yokohama.mopera.net>
|
sekiriki
- 13/6/3(月) 23:59 -
|
補足です。
「失速寸前にエルロンが逆に切れる」という話を聞いた事があります。
これは、エルロンが下がっている方の翼が失速し、反対側が失速せずに
起こる事なので、恐らく「左右に移動する」方が正解だと推測できるの
ですが、この辺りの確証が欲しいところです。
宜しくお願いいたします。
620 hits
<Mozilla/5.0 (Android; Mobile; rv:21.0) Gecko/21.0 Firefox/21.0@u524118.neas2.ne2.yokohama.mopera.net>
|
実験工房Sekiai
- 13/6/4(火) 7:26 -
|
sekirikiさん、お久しぶりです!(゜▽゜)
航空力学の専門的な話や参考書は私には分からないのですが、
桝岡さんが航空力学に大変詳しいので聞いてみるといいと思います。
ttp://www.ac.cyberhome.ne.jp/~v-tails/
また、桝岡さんはRCPsimと言うRCシミュレーターを開発中なので、
プログラミングに関しても詳しいアドバイスが頂けると思います。
ttp://www.ac.cyberhome.ne.jp/~v-tails/delphi/rcpsim.html
「失速寸前にエルロンが逆に切れる」と言うのは、
エルロン操舵によりエルロンが下がった方の翼の
見かけ上の迎え角が増大して気流剥離により失速し、
操舵と逆のロールが始まる現象だと私は理解しています。
632 hits
<Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36@115-179-88-63.kanagawa.ap.gmo-isp.jp>
|
sekiriki
- 13/6/4(火) 22:30 -
|
▼実験工房Sekiaiさん:
>「失速寸前にエルロンが逆に切れる」と言うのは、
>エルロン操舵によりエルロンが下がった方の翼の
>見かけ上の迎え角が増大して気流剥離により失速し、
>操舵と逆のロールが始まる現象だと私は理解しています。
ご説明お上手ですね。「AoA-CL曲線が左右に移動する」というのは、
「見かけ上の迎え角(angle of attack)が増大」と同じ意味で用いて
いました。
(h)ttp://en.wikipedia.org/wiki/Lift_coefficient
FMS は、Alpha 7 までは「エルロン"等価"最大舵角」と称するだけ
あって、おそらくこのモデルなのではないかと思います。
一方で YASim のコードを参照すると、stallFunc() の計算に slat
は寄与しているものの、flap が関与していないように見えます。
(h)ttps://fossies.org/dox/flightgear-2.10.0/Surface_8cpp_source.html
これでは、「失速直前にエルロンが逆に切れる」現象が発生しない
ような気がするのですが、イマイチ自信がありません。
JSBSim (より正確に記すれば Aeromatic)も、AoA(aero/alpha-rad)と
エルロン(fcs/left-aileron-pos-rad)に同時に関与している項目が
無いように見えます。
(h)ttp://jsbsim.sourceforge.net/aeromatic2.html
もう、ぜーんぜんわからなくなってきました。
こうなったら、xflr5 でシミュレーション回して自力で解析ですかね?
678 hits
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36@u524118.neas2.ne2.yokohama.mopera.net>
>例えば、操縦翼面を動かしたときの dynamics は、
両方の効果があると思うのですが、フライトシミュレータでは、
計算時間短縮のため、近似的に仰角変化で計算する場合が多いようです。
>どなたか、良い文献をご存知でしたら、
RCPsimの作成では、
(1)航空機力学入門 加藤寛一郎
(2)航空工学(I)(II) 東昭
を図書館で借りて読んでました。
3次元の飛行計算は(1)が基本で、空力計算は(2)を参照しました。
模型用エンジンの計算モデルは、資料が見つかっていません。
ただし、本を読んだだけで3次元飛行をプログラムに実装するのは
ハードルが高く、高崎さん
ttp://takasaki.eco.coocan.jp/LML/index.html
からメールでいただいた紙飛行機用のソースがベースになっています。
>RCPsimと言うRCシミュレーターを開発中なので、
すみません、開発停滞中で、
(A)地面ポリゴンを増加すると急激にフレームレートが低下
(B)接地計算(滑走や衝突)が暫定
(C)音のプログラムが未着手
という状態です。
特に(A)が解決できず、DelphiでのDirectXの扱いに疲れて放置状態です。
音が出れば、それなりに実用になるとは思うのですが。。。
FMSモデルの小修正で、簡単に、舵面、プロペラ、引込脚を動かせるので、
機体データ(モデル)を作っている人にも魅力的だと思います。
誰か、引き継いで開発しませんか?
>こうなったら、xflr5 でシミュレーション回して
そこまでしなくても、わりと適当で大丈夫のようです。
複雑な計算モデルにすると、機体データを作る人が困るし。。
#模型飛行機は相対的に大パワーなので、プロペラが作る流れの影響は気になります。
685 hits
<Mozilla/5.0 (Windows NT 6.0; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0@77.ISAS0010018.cyberhome.ne.jp>
▼sekirikiさん:
>>「失速寸前にエルロンが逆に切れる」
エルロンリバーサルのことでしょうね。経験ありますよ。ウルトラライトと言う小型機に乗っていたときすが。エルロンが主翼より1段下に独立してついているタイプでしたユンカーススツーカーみたいに。
左旋回で右エルロンを見ます右は下げ舵ですね。水平飛行なら問題ないです。
下げ舵エルロンは主翼を持ち上げます。右翼があがって左旋回。
機首を上げます。下げ舵になっている右エルロンを見ると気流に対する角度が大きすぎて主翼を持ち上げるのではなくて、スポイラーになってます。
右が抵抗版になってますから頭が右に振られます。
理論的な説明はできませんが体感としてはこんなところです。
616 hits
<Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36@FLH1Aca168.stm.mesh.ad.jp>
|
sekiriki
- 13/6/6(木) 19:17 -
|
▼桝岡さん:
ありがとうございます。今週末にでも早速図書館で探してみます。
>両方の効果があると思うのですが、フライトシミュレータでは、
>計算時間短縮のため、近似的に仰角変化で計算する場合が多いようです。
xflr5 で試してみたところ、見かけ上の迎角変化よりも、リフトに直接作用する
量の方が大きいような結果になりました。YASim のモデルと似ています。
しかし、全くゼロというわけでもなくて、失速角に対するペナルティも若干ある
ようです。
ただし、対象翼では負の alpha でも対象になるはずか、何やらおかしな結果が
出ています。何かシミュレーション条件が間違えているのかも知れません。
>ただし、本を読んだだけで3次元飛行をプログラムに実装するのはハードルが高く
この辺りは Unity を使うと非常に簡単です。Rigidbody に質量と内部テンソルを
設定すれば、あとは AddForce(),AddTorque() するだけて物理演算から衝突判定
まで勝手にやってくれます。
(h)ttp://docs-jp.unity3d.com/Documentation/Components/class-Rigidbody.html
>DelphiでのDirectXの扱いに疲れて放置状態です。
Unity 初めてみませんか?
他にも、地形エンジンから効果音システムまで、至れり尽くせりです。恐らく、
桝岡さんが苦労されていること、サックリ解決できますよ。
>>こうなったら、xflr5 でシミュレーション回して
>
>そこまでしなくても、わりと適当で大丈夫のようです。
>複雑な計算モデルにすると、機体データを作る人が困るし。。
Unity を使えば、面倒な所はかなり手抜きできるので、そのぶん flyght dynamics
には力を入れたいです。いかに簡単なモデルでリアルに飛行させられるかが鍵ですね。
xflr5 はその勉強用です。
なんか Unity の宣伝みたいな投稿になってしまいました。。
675 hits
<Mozilla/5.0 (Android; Mobile; rv:21.0) Gecko/21.0 Firefox/21.0@28.125.214.202.vmobile.jp>
|
アイローネ
- 13/6/6(木) 22:36 -
|
▼つばささん:
>エルロンリバーサルのことでしょうね。経験ありますよ。ウルトラライトと言う小型機に乗っていたときすが。エルロンが主翼より1段下に独立してついているタイプでしたユンカーススツーカーみたいに。
>
それはアドバンス・ヨーだと思います。エルロンが下がっている方の翼は迎え角が大きくなっているのと同じ=揚力が増えるが抗力も増えてヨーモーメント発生。とくに翼長の大きいグライダーなどに顕著。
エルロンリバーサルは文字通りエルロンの逆効き。1部のウルトラライトのような剛性の低い翼でエルロンを切る事にによって主翼が捩れ、結果的にエルロンの下がった側の翼の迎え角が減ってしまうことにより揚力が減少。アドバンス・ヨーはラダーを当てればなんとかなるがエルロンリバーサルが起こったら危ないからエルロンの舵角を減らして翼が捩れないように気を付けて急いで着陸しましょう。
失速寸前にエルロンを打ったらコケルは単に翼端失速かと。離陸時でも着陸時でも昔のアンダーパワーで重い電動機はよくコケました。
(私のベガ280は電池をニッカド7セル600mAhからリポ2セル800mAhに換えただけでなおりましたけどね。)8-8023
598 hits
<Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB7.4; .NET CLR 1.1.4322; YTB730)@caa4546d.tcat.ne.jp>
|
sekiriki
- 13/6/6(木) 22:44 -
|
つばささん、アイローネさん、解説ありがとうございます。
アドバンス・ヨー、ならびにエルロンリバーサル、よく理解できました。
>失速寸前にエルロンを打ったらコケルは単に翼端失速かと。
>エルロンが下がっている方の翼は迎え角が大きくなっているのと同じ
要するに、迎角が大きくなっている方の翼が先に(翼端)失速するという理解で
良いみたいですね。
602 hits
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36@u524118.neas2.ne2.yokohama.mopera.net>
|
sekiriki
- 13/6/6(木) 22:50 -
|
「内部テンソル」ではなくて「慣性テンソル」でした・・・。お恥ずかしい。
inertia(イナーシャ)をinterior(インテリア)と、ずーっと間違えて覚えていました。
こちらのページの説明がとても上手で理解しやすいです。
(h)ttp://homepage2.nifty.com/eman/dynamics/mom_tensor.html
628 hits
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36@u524118.neas2.ne2.yokohama.mopera.net>
861 hits
<Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36@FLH1Aca168.stm.mesh.ad.jp>
>見かけ上の迎角変化よりも、リフトに直接作用する量の方が大きい
はい。RCPsimの計算仕様の検討でも、そんな感じでした。
ttp://www.ac.cyberhome.ne.jp/~v-tails/delphi/rcpsim_par.html
RCPsimはFMS互換モデルで、parファイルでポーラーカーブが指定されるため、
ポーラーカーブを固定して、迎角変化を大きめに与えています。
FMSの形状モデルや空力モデルと、まったく異なるモデルを想定しているのでしょうか?
>この辺りは Unity を使うと非常に簡単です。
操舵応答において、機体の回転(3軸方向とも)による流れは、
翼型特性よりも大きな影響があります。
#フライトシューティングゲームでは、このへんがうまく計算されていないように感じます。
翼端失速などを再現するには、翼をいくつかの翼素に分割する必要があり、
各翼素ごとに、平行移動と回転による合成流(ベクトル)を求めて、
合成流ベクトルと各翼素の向きから、揚力(合成流に垂直)、抗力(合成流の方向)、
モーメントのベクトルを計算します。
Rigidbodyの親子関係や座標系が読めていない(地面基準と機体基準で混乱する)のですが、
翼素ごとにRigidbodyを割り当てて、
AddForce(),AddTorque()で、Rigidbodyのvelocityとrotationを使ってベクトル計算、
で良いのかな?
プロペラも翼素としてRigidbodyを割り当てて、モーターの回転トルクを与える?
やっぱり誘導抵抗(翼端渦)とプロペラ後流は問題ですね。
>Unity 初めてみませんか?
とりあえず、ダウンロードして、起動するところまで見ました。
使いこなすには、かなり時間がかかりそうです。
#Androidアプリ開発環境は、2年かけても使いこなせない。。
1,643 hits
<Mozilla/5.0 (Windows NT 6.0; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0@77.ISAS0010018.cyberhome.ne.jp>
|
sekiriki
- 13/6/8(土) 2:04 -
|
▼桝岡さん:
>FMSの形状モデルや空力モデルと、まったく異なるモデルを想定しているのでしょうか?
空力モデルは、なるべく FMS のと互換性を保ったうえで、YASim のような
単純な Surface(翼面)に分解できるようなものを考えています。
(h)ttps://fossies.org/dox/flightgear-2.10.0/Surface_8cpp_source.html
形状モデルは悩ましいですね。Unity で mesh を dynamic に load するのは
難しいので、blender 用の .geo import addon (.x 用は既にある)を準備して、
FMS のモデルからの変換ワークフローを提供できたらいいかなと思っています。
>翼素ごとにRigidbodyを割り当てて、AddForce(),AddTorque()で、Rigidbodyの
>velocityとrotationを使ってベクトル計算、で良いのかな?
翼素の揚力中心ごとに AddForceAtPosision() で良いはずです。
(h)ttp://docs.unity3d.com/Documentation/ScriptReference/Rigidbody.AddForceAtPosition.html
翼素毎のトルクは position に依存しません。
>プロペラも翼素としてRigidbodyを割り当てて、モーターの回転トルクを与える?
それでも良いと思いますが、プロペラの反動トルクを計算して AddTourque() する
方が素直な気がします。
>やっぱり誘導抵抗(翼端渦)とプロペラ後流は問題ですね。
誘導抵抗ぶんは翼素ごとに AddForceAtPosition() して、プロペラ後流は翼素の
force の計算に寄与するようにするのが良いのではないでしょうか。
>>Unity 初めてみませんか?
>とりあえず、ダウンロードして、起動するところまで見ました。
おおお、頼もしいですね。期待しています。
>使いこなすには、かなり時間がかかりそうです。
>#Androidアプリ開発環境は、2年かけても使いこなせない。。
Unity に関しては初心者ですが、Android についてはむしろ専門なので、お力添え
できるかと思います。NDA に抵触しない範囲でお答えさせて頂きます。
1,807 hits
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36@u524118.neas2.ne2.yokohama.mopera.net>
>YASim のような
YASimの全体像がつかめていませんが、コードはとても参考になります。
#英語だと、なかなか解読できません。
エンジンのモデルもあったんですね。
>FMS のモデルからの変換ワークフロー
できれば、、舵面やプロペラが動くようにお願いします。
>翼素の揚力中心ごとに AddForceAtPosision() で良いはずです。
なるほど。
機体に1つのRigidbodyを使い、3次元運動の微分方程式はUnityにまかせて、
得られた機体の速度、角速度、向きを使って、各翼素ごとの速度と力を計算、
という方針かな。
>プロペラの反動トルクを計算して AddTourque() する
機体速度やスロットルに応じて、力の釣り合いを考慮して
推力やトルクを与えることになると思うのですが、
プロペラも回転する翼素として機体運動の微分方程式に組み込んで、
微分方程式で力の釣り合い(プロペラ回転数)を解くほうが簡単、とRCPsimでは判断しました。
FMSのparファイルのプロペラ設定を、そのままプロペラ翼素として設定でき、
計算したプロペラ角度でプロペラを描画できる、という利点もあります。
>誘導抵抗ぶんは翼素ごとに AddForceAtPosition() して、プロペラ後流は翼素の
>force の計算に寄与するようにするのが良いのではないでしょうか。
翼端渦による吹き降ろしが尾翼に影響する効果とか、
発生した吹き降ろしや後流が後ろにある翼素に到達するまでの時間遅れとか、
翼素ごとの誘導速度の違い(翼平面形に依存した翼端失速しやすさ)とか、
けっこう悩ましいです。
各翼素から発生する翼端渦を計算し、
翼端渦により作られた流れの中を移動する各翼素
を計算すれば良さそうですが、挫折しました。
#たぶん、翼素と翼端渦の相互作用を微分方程式に組み込む必要がある
結局、RCPsimでは
・翼端渦は計算せず、誘導抵抗や吹き降ろしを考慮したポーラーを各翼に設定してもらう
・プロペラ後流の影響は適当に計算
になってしまいました。
>Android については
自分専用の野良アプリを作っているだけなので、
ゆっくりとマイペースで進めていきます。
1,769 hits
<Mozilla/5.0 (Windows NT 6.0; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0@77.ISAS0010018.cyberhome.ne.jp>
|
sekiriki
- 13/8/1(木) 23:32 -
|
だいぶ時間が空いてしまいましたが、ようやく、FMSのモデルを読み込んで「飛べる」ようになりました。
シミュレーションが途中で発散してしまったりと、まだ荒削りではありますが。
もう少し整理できましたら、ソースコード公開しようと思います。
これからも、よろしくご教示お願いいたします。
1,473 hits
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36@2.208.138.210.vmobile.jp>
★☆★☆★☆ ナウでヤングなレンタルサーバー!ロリポップ! ☆★☆★☆★月額105円〜容量最大30GB!WordpressやMovable Typeの簡単インストール付★