今回より応用編に入ります。それに従って説明を少しずつ省略していくことにしました。
少し難易度が上がりますが、頑張って読み解いてみてください。

パネ●ットとRigid Chipsではいくつかの大きく違う特徴があります。
その一つがモデルの出せるパワーです。

Rigid Chipsではユーザーによってパワーを設定できるため、強大なパワーを簡単に手に入れることが出来ます。
そのため、コントロールし難いモデルもよく見かけるようになりました。
今回は実車でも大パワー車にはおなじみの「トラクションコントロール」を行ってみようと思います。

まずはfileこれを開いてみてください。
おなじみのきほんけいですね。
それをこうしてみます。

Val
{
	Handle(default=0,min=-20,max=20,step=5)
	Engine(default=0,min=-2500,max=2500,step=2500)
}

これを

Val
{
	Handle(default=0,min=-20,max=20,step=5)
	Engine(default=0,min=-10000,max=10000,step=10000)
}

ハイパワーキタ━━━━(。A。)━(゚∀゚)━(。A。)━(゚∀゚)━(。A。)━━━━!!!!
誰でも一度は通る道です。w

muri.jpg
[でも、ちょっと無理]

とたんに扱いにくくなりましたよね?
さて、この大パワーをどう制御していきましょうか。

		S:Chip(){
			W:Frame(){
				W:Wheel(angle=90,power=rEngine){
				}
			}
			E:Frame(){
				E:Wheel(angle=90,power=-rEngine,name=RW){
				}
			}
		}

name=はチップに名前を付ける命令です。
この名前(今回ならRW)をチップ番号の代わりに使うことが出来ます。

Script
{
slip=_abs(_wy(RW))/_abs(_vz(0))
print 0,"SLIP=",slip
}

printは""で囲まれた文字列と、変数を画面上に表示する命令です。
変数slipにはホイールの回転速度を、車体速度で割ったものが入ります。
エンジンのパワーも一度2500に戻しておきます。

slip.jpg

左上のSLIP=に注目しながら車を走らせてみましょう。
安定した走行中はSLIP=が3.2〜3.4の辺りを指し、タイヤが滑り出すと一気に跳ね上がることが判ります。
wheel半径をR=0.3(デフォルト値)とすると、理論上はスリップが無い場合

_vz(RW-1) = R*_wy(RW)

が成り立ちます。チップ番号RW-1はwheelの軸(wheelは軸と車輪の2チップ構成であることに注意)になります。
ただし_vz(RW-1)とした場合、末端に近いチップであることからしなりの蓄積の影響を受けてノイズが増加する傾向があります。
これを嫌う場合は代わりにコアの_vz(0)を使うと良いでしょう。 ただしこの場合には測定位置の違いによる誤差が発生します。
閑話休題、スリップに話を戻しますと上式から次式が成り立ちます。

_abs(_wy(RW))/_abs(_vz(0)) = 1/R = 3.333...

つまりSLIPが3.333...に近くなるように出力を絞ってやれば、タイヤが滑るのを押さえられるはずです。これを踏まえるとトラクションコントロールのコードは以下になります。

Engine(default=0,min=-10000,max=10000,step=2500)
E2(default=0,min=-10000,max=10000,step=0)
TRC(default=0,min=0,max=90,step=0)
slip=_abs(_wy(RW))/_abs(_vz(0))
if slip >3.33 {TRC=TRC+3}
if slip <3.33 & TRC>9 {TRC=TRC-9}
if slip <3.33 & TRC<=9 {TRC=0}
E2=engine*(100-TRC)/100

どこにどう書けばいいのかはもう判りますよね?
トラクションコントロール後の出力がE2になるのに従って、powerもE2と-E2になるのに注意してください。

trc.jpg

これならなんとかコントロール出来そうです。

上手く動いたらTRCがカットする最大パワー、TRCの反応速度、TRCの作動開始位置等を調整してみてください。
右ホイールで検知しているので、若干右に曲がりやすい癖があります。
どうすれば直せるか考えてみてください。

コレを応用するとfileこんなことも可能です。
前後トルク比0:100〜70:30のトルクスプリット4WDを作ってみました。
何をやっているかはここでは説明しませんので、ソースを読み解いてみてください。


添付ファイル: filetrc2.rcd 170件 [詳細] filebasic.rcd 118件 [詳細] filetrc.jpg 31件 [詳細] fileslip.jpg 31件 [詳細] filemuri.jpg 31件 [詳細]