このコーナーは方法論の解説が長いので、「とりあえず結論が知りたい!」という方はこのページの一番下を見てください。
当然のことではありますが、モーターパワー、タイヤグリップ、ギア比など、車体のすべてのパラメータによって”ベスト"な走行ラインは変わってきます。ここではアウト−イン−アウトの定速コーナリングを前提としたときのベストラインを探っていきます。
といった動機からです。では、(はじめに考えていたより膨大な作業になったのですが)その顛末を説明します。
まず、繰り返しになりますがこれまで行ってきた走行計算上の前提を確認しておきます。
つまり、理想のラインを考えるときはすべてのコーナーでなるべくアウト側からコーナーに侵入し、コーナー内側の縁ぎりぎりを通過(いわゆるクリッピングポイントです)、その後再びアウト側ぎりぎりまで膨らんでコーナーを脱出し、直線に入ります。下の図は典型的なヘアピンにおいて、(1)アウト−イン−アウトのラインどりと、(2)コース中ほどから進入し、中ほどへ抜けていくラインを比較した例です。コーナー部分のみでは(2)の方が速いのですが、前後の直線部分もあわせて考えると、やはり(1)のほうがタイムも早く、終速も若干ながらよいので、有利であると考えられます。
では、このようなアウト-イン-アウトのラインを求めるためにコーナーの幾何を座標化し、計算のパラメータに使えるようにします。このためには外周を2本の直線、内周を円であらわすと計算しやすいようです。(下図)
外周の直線は基準点(直線の通過点ならどこでも)の座標および、方向ベクトル(直線の傾きをあらわすベクトルです)の2組の座標で定義されます。円は中心の座標と、半径で定義されます。このとき、最大のRを持つアウト-イン-アウトのラインは外周-内周-外周の順に接し、
中心(x,y)から両外周直線までの距離=内周中心(e,f)までの距離+内周円の半径ro
が成り立つのでこれらの条件から求めることができます。
※数学的には、ある円と直線に接する(円とは内接)半径Rの円は2種類存在しますが、ここではそのうちコーナーの幾何に合致するほうを選んでいます。
実際の(x,y)および r を求めるための式を列挙しようと思いましたが、複雑な割にあまり参考になるところが少ないのでやめておきます。ぜひ知りたい!という奇特な方がいらっしゃったら、走行計算用Excelファイル(ver.7)をダウンロードして、マクロを見てください。もちろん、メールでの質問も大歓迎です。
では、すべてのコーナーでこのようなアウト−イン−アウトのラインをとり得るかというと、そうでない場合もあります。たとえばタミヤコースの場合では操縦台下の右コーナーからヘアピン、およびそのあとのS字コーナーがそうでした。「基礎モデル構築編」で述べていますが、ここでもう一度、前者のライン決定プロセスを見てみましょう。
1 |
2 |
|
|
3 |
|
|
ここで注意してもらいたいのは、各ステップで二つのコーナー半径を「少しずつ」小さくしている点です。このとき、どちらのコーナーをどのくらい縮小していくかはまったくのカンで、見た目で「まあこんな感じかな」と調整していました。しかしこれが本当に一番速いラインだったのでしょうか?そこで、いろいろなラインを考えてみます。
|
|
※数学的には、ある円と直線に接する(円とは内接)半径Rの円は2種類存在しますが、ここではそのうちコーナーの幾何に合致するほうを選んでいます。
|
|
(1)V2' > V2 のとき
これはL2でせいいっぱい減速しても、ヘアピンコーナーに突入したときにはまだ減速不十分で、ヘアピンコーナーで限界スピードを超えてしまい、コースアウトしてしまうことを意味しています。この場合には、ヘアピンのコーナー半径(R3)を小さくすることで直線距離を稼ぎ、十分な減速が得られるようにします。
(2)V2' < V2 のとき
この場合は減速区間にある程度余裕があるということを意味しており、1コーナー脱出のあと直ちに減速はせず、つまりブレーキングを遅らせることができる、あるいはパーシャルブレーキでも十分な減速が得られる、ということです。現実のサーキット走行ではこのような余裕を残してなめらかなコーナリングになっていると思われますが、ここではあくまで冒頭に述べた前提に基づいた「理論上の」ベストラインを探りますので、この場合のラインは最適とは言えない、ということになります。つまり直線部分に余裕があるのなら、その部分を削って、ヘアピンのコーナー半径(R3)を大きくすることもでき、そのほうがタイム向上につながるということです。
以上をまとめると、V2'>V2のときはR3を小さくし、逆のときはR3を大きくします。その結果V2'=V2となるR3に収束し、この値は1コーナーの半径(R1)からひとつだけ決まる値です。
したがって1コーナーの半径(R1)が決まれば、自動的に最適な減速距離L2およびヘアピンコーナリング半径R3が求まり、最終的にS字全体のラインも決まる、ということになります。
ここで一度立ち止まって、このようなS字コーナーの「理想のライン」とはどのようなものになるのか、いろんな可能性を考えてみます。
1.R1をなるべく大きくとるライン |
2.R3をなるべく大きくとるライン |
|
|
3.R1=R3となるライン |
4.R1max:R3max の比率を維持したコーナー半径 |
|
|
実際の計算プロセスを考えてみます。基本的にはこれまでの計算法に、ライン最適化が加わっただけですのでそんなに難しいことではなく、
このあと各コーナーの走行距離、直線の距離などを求めなおせば、これまでの計算と同じ方法で周回シミュレーションを行うことが可能です。
この方法ですと、ループが2重の構造になっていますのでたとえばR1の設定を100回、R3の設定を100回行うとその内部の作業は(3.から5.まで)10,000回繰り返さなければなりません。問題になるのは5.の計算で、実はこれまでの加減速は下の図に示すように単位時間(0.001秒)ごとの各数値の算出およびその積み重ねで求めていました。
つまり、たとえば1秒間の加減速計算をするのには上の図のステップを1,000回もループしなければならず、したがってこのプロセスがさらに10,000回のループの中に組こまれてしまうと、なんと1,000万回ものループを計算しなければならないことになります。これでは計算が終わるころには白髪の老人です(うそ)。
そこで、これまであえて避けてきた加減速計算の関数化に着手しました。
これはどう言うことかというと、たとえばこれまで5.0m/sから8.0m/sまで加速した時の走行距離を求めるのに、上で述べたような1000回の積み重ね計算(数学の参考書によると「数値積分法」というらしいです)が必要だったところを、たとえば
f(初速度, 終速度) = f(5.0, 8.0)=8(m)
という風に一発で求めることのできる関数f(x)を考えてみよう、ということです。
と気軽にはじめたまではよかったのですが、いや〜大変だったっす。高校生の参考書を3冊も買って、10年以上も前に習った(はずの)ことをウンウンうなりながら復習することになってしまったのでした。高校の数学って、結構高度なことをやってたんですねえ(笑)。
まず、加速における速度と時間の関係について考えます。
上の、「計算ループ図」を見ると、初速度→加速度→新しい速度 という順番に求め、新しい速度を初速度として次の区間の計算をする、という構造になっています。細かく書くと、
|
という式になりました。複雑ですが、よく見るとv以外はすべて定数であって、
加速度 a = lv2 + mv + n (l, m, nは定数)
の形になっています。加速度 a とは、時間 t あたりの速度 v の変化量ですから、
という積分式ができました。これを解いて、(簡単に書いてますがここだけで3日間かかっています^ ^;)
が求まりました(ぜえぜえ・・)。
ここまでの結論は 速度v1からv2まで加速したときの時間を求める関数を開発した。 ということです。
では次に必要になる速度と走行距離の関数を導きます。
走行距離 s(一番上の解説から変数名が変わりました。ごめんなさい) は
という積分で表され、これを解いて(やっぱり2日かかりました。)
という関数を得ることができました。
つまりこれは 速度v1からv2まで加速したときの走行距離を求める関数ということです。
ここまで加速に関する関数を二つ(v→t, v→s)求めましたが、実際のシミュレーションではもうひとつ、「初速度v1から距離sまで加速したときの終速度(v2)」を求める関数(s→v)が必要です。これは関数v→sの逆関数を求めればよいのですが、途中で気が狂いそうになるほど複雑だったので、近似計算で代用することにしました。近似計算といっても、10-20回繰り返すことで十分な精度がえられますので、「気が狂う」よりはましです。これも高校数学(現在の教育課程では”数学C"のはんちゅう、ということらしいです)の参考書で見つけた方法で、「方程式の数値解法」の「2分法」なるものを応用しました。詳しくは割愛しますが、(v→s)に関数を使い、まとめていうと・・・・
速度v1から距離sまで加速したときの終速度v2を求めるためには、
1) 変数v3にv1を、変数v4にあらかじめ求めておいた最高速度を代入
2) 仮の終速度候補v5に、v3,v4の平均(v3+v4)/2を代入
3) v1からv5まで加速したときの走行距離をs(v)関数から算出。この値を s' とする。
4) s と s' を比較して、もし s>s' のときはv3にv5の値を代入、逆のときはv4にv5の値を代入。
5) 必要な精度でs'がsに近い値になるまで、2)にもどるループを続ける。
6) ループ後のv5がv2の近似値。
というプロセスを実行すればいいのです。ちょっとここは読んだだけでは解りづらいと思います・・・。
この近似法はS字コーナーの2番目(上の例ではヘアピンです)以降のコーナー半径を求めるのにも使っています。
つぎは減速編です。まずこれまでの減速計算法は・・・
|
で、こんどは
加速度 a = lv2 + n (l, nは定数)
の形になります。積分の過程は省略して、関数として・・・・
おぉぉ。tan-1だよタンジェントの逆関数だよ。なんでこうなるのか想像を絶しますが、ちゃんと計算できてしまうので不思議です。高校数学恐るべし。
のってきたところで(ひょっとして、このページもう誰も見てない?)一気に速度〜距離関係です。いきなりですが下のが答えの関数です。
この関数が単純に見えてしまうところが、ここまでの数学の過酷さを物語っています(笑)。
勢いあまって、この場合には逆関数を求めるところまでいってしまいました。
おつかれさまでした。ここまでで加減速計算に必要な関数はすべてそろいました。
これらの関数を計算システムにくみこむと、これまで5-10秒もかかっていた周回計算が一瞬で終わるほどにスピードアップしました。これまでのステップごとの計算はやはり能率が悪かったのですねえ。
ここまでで「積分学」の時間はおしまい。
ではいよいよ実際の最適化に入ります。はじめに1コーナーからヘアピン(3コーナー)を抜けるまでのラインの最適化を行います。その順序は冒頭でも述べましたが、
1. 1コーナーのコーナリング半径(R1)を決める。
2. 自動的に間の直線区間(長さL2)、ヘアピンのコーナー半径(R3)も決定できる
3. 前後区間を含めた(つまり最終コーナーの後のホームストレート;11ストレートおよび、ヘアピン後のストレート;4ストレートを含めた)ラインおよびその走行タイムを算出
4. R1を、タイムが小さくなる方向へ変えていき、何回か計算を繰り返す。
前後区間を計算にいれることで、前後区間の加減速まで含めて最適化することができます。
以上の関数、計算プロセスをExcelのVBAでプログラミングしました。つい最近まで「マクロってなあに?」とか言ってた私にとっては、非常に難しい課題でした。
では最適化した結果です。
|
計算条件:マブチ、メルセデス、ギア比5.18、タイヤ1.3G |
R1最大値=4.16m
R2最大値=3.32m
したがってR1/R2(最大値)=1.25
最適化R1/R2=3.81/2.59=1.47
ですからやはり仮説4.の数字からはずれています.ここまでの結果を見ると最適ラインを求めるにはここで行った計算が必要になってくるようです.
|
同様に、5コーナー〜7コーナー(いわゆるS字コーナー)もこれまで見てきたのと同じく、両方のRについて最適化しなければいけません。ただし、このときR1>R2ですので、あいだの直線は加速する必要があります。また、このS字を抜けたあとの直線では、ギア比などによっては加速しきれずに、サウスコーナーの限界速度より低い速度で進入することになります。このラインではムダがあるので、コーナリング変形を狭め、その分加速区間を長く取るようにできるわけです。したがって、サウスコーナーもS字の最適化と同時に計算する必要があります。
このようにして計算した結果が上の図です。サウスコーナーのRが最大限のアウト-イン-アウトのラインより狭いことがわかります。
結局、全体を見ると最大限のRでコーナリングできるコーナーは最終のノースコーナーのみであることがわかります。最適化プロセスで、影響し合うコーナー、直線の集合を「ブロック」として考えたのが上の図の赤い枠組みです。各ブロック間をつなぐ直線では加速&減速が行われるのに対し、ブロック内での直線はそのどちらか一方であることがわかると思います。
上の図をみていただくとわかるように、ここで計算した「ベストライン」は、これまであてずっぽうで「まあこの辺だろ」と適当に書いたラインからそんなに離れていません。ラップタイムも0.01s程度速くなったのみでした。ただの「カン」でもいいセンいっていたわけです。
詳しくは述べませんが、モーターやギア比などパラメータを変えてライン計算してみましたが、サウスコーナー以外はそんなに変わりませんでした。したがってこれまでライン固定で行ってきた比較も、まあ妥当といえると思います。
結局、めちゃくちゃ苦労した割には、新しく何か発見したというようなことはありませんでした。これは冒頭で述べたようにある程度予想していたことでしたが、今後の更なるブラッシュアップには、いずれ必要になってくる作業であった、と思っています。
いやはや勉強になりましたってかんじでここは終わりです。お疲れ様でした。