SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|

2025-06-14(Sat) ロードスターを実装するが、またもや「理解」されてしまう

  つうわけで、しばらくは鈴鹿でロードスター(相当)を走らせて、コースを覚えたり、各種調整を進めることにする。

  早速だが、ロードスターの各ギアでの上限速度は……ん? ギア比が公開されているのだから、それを使えばいいか。すると、それを速度に変換するための係数はいくつになるのだろう……ん? それってタイヤの外径から理詰めで求められるのでは? 195/50R16の外径は……ん? それも理詰めで求められるのでは?

#!/usr/bin/env ruby
 
include Math
 
gear_ratios = [5.087, 2.991, 2.035, 1.594, 1.286, 1.000]
final_ratio = 2.866
tire = [195, 50, 16]
rpm = 7500
 
tire_dia = (tire[0] * tire[1] / 100.0 * 2 + tire[2] * 25.4)
tire_cir = PI * tire_dia
 
gear_ratios.each {|gr|
    p tire_cir * rpm * 60 / gr / final_ratio / 1000 / 1000
}

  できてしまった。実行すると……

58.31602138429881
99.18207983347644
145.77572519996463
186.10639948678045
230.6793163156517
296.65360078192805

  ……合っているっぽい。実際の鈴鹿の動画では4速までしか入れておらず、180km/hチョイだったので合っている。直接にkm/hを与える方法も残しつつ、ギア比等の入力で車両特性を指定する方法も実装してみるか。

  と、ここでまた、ふと、AIを試してみたくなった。やめときゃいいのに。

以下は何のプログラムでしょうか?
ratios = [5.087, 2.991, 2.035, 1.594, 1.286, 1.000]
final = 2.866
spec = [195, 50, 16]
rpm = 7500
 
dia = (spec[0] * spec[1] / 100.0 * 2 + spec[2] * 25.4)
cir = PI * dia
 
ratios.each {|gr|
    p cir * rpm * 60 / gr / final / 1000 / 1000
}
このプログラムは、**自動車やバイクの各ギアにおける最高速度の概算を計算するスクリプト**です。
特にエンジンの最大回転数(`rpm = 7500`)時に、各ギアでの\*\*理論的な最高速度(km/h)\*\*を求めています。
 
## 🧠 解説:何を計算しているのか?
 
### 🔢 入力データの意味
 
```ruby
ratios = [5.087, 2.991, 2.035, 1.594, 1.286, 1.000]  # 各ギアのギア比(1速〜6速)
final = 2.866                                        # ファイナルギア比(ディファレンシャル)
spec = [195, 50, 16]                                 # タイヤサイズ:[幅 (mm), 扁平率 (%), ホイール径 (inch)]
rpm = 7500                                           # 最大回転数(エンジンの回転数)
```
 
### 🛞 タイヤの直径と外周長の計算
 
```ruby
dia = (spec[0] * spec[1] / 100.0 * 2 + spec[2] * 25.4)
```
 
* タイヤの直径(mm)を計算:
 
  * `spec[0] * spec[1] / 100` → サイドウォールの高さ(上下分なので ×2)
  * `spec[2] * 25.4` → ホイール径を mm に変換
  * 合計で**タイヤ全体の直径**
 
```ruby
cir = PI * dia
```
 
* タイヤの外周長(mm)= 円周公式:π × 直径
 
### 🚗 速度の計算
 
```ruby
ratios.each {|gr|
  p cir * rpm * 60 / gr / final / 1000 / 1000
}
```
 
各ギア(`gr`)に対して:
 
* `cir * rpm * 60` → 1分間のタイヤの進行距離(mm)
* `/ gr / final` → エンジン回転数からタイヤ回転数への換算(ギア比補正)
* `/ 1000 / 1000` → mm → km に変換
* → **理論最高速度(km/h)を出力**
 
## ✅ 出力されるもの
 
このスクリプトは、**1速〜6速ギアにおける最大回転数時の理論的な速度(km/h)を出力**します。
 
例えば出力が以下のようになるとすれば:
 
```
31.4
53.4
78.5
100.3
124.3
160.1
```
 
これは、「7500rpm 時の各ギアの速度」です。
 
## 📝 まとめ
 
このプログラムは:
 
> **「指定したギア比・ファイナル比・タイヤサイズ・エンジン回転数」から、各ギアでの最高速度(km/h)を計算する**
> → 車やバイクの**性能シミュレーションや仕様設計**でよく使われる方法です。

  ……マジか……またもや完璧な説明。コメントも何もないのに、正しいコメントを付けてくれちまっている。当然のように[195, 50, 16]が「195/50R16」を意味することまで見抜いている。

  ひとつだけ間違っている。「cir * rpm * 60」は1分間でなはく、1時間のタイヤの進行距離(mm)だ。しかし、それ以外は完璧すぎて、もしかしてワザと間違ったのではないかと勘ぐってしまったり。

必要であれば:
 
* 同じ処理の Python 版や CoffeeScript 版
* より実用的な「グラフ化」や「回転数別スピードマップ」
  も提供できます。お気軽にどうぞ。

  うっせぇわ!