Programmazione differenziale per un veicolo


8

Sono a un certo punto del mio veicolo in cui, quando vado veloce e giro, il veicolo si comporta in modo strano perché le gomme interne si muovono più velocemente di quelle esterne. Quindi ho bisogno di capire come programmare in un differenziale ma non riesco a farlo funzionare correttamente, quindi sono qui per vedere se qualcuno ha esperienza con questo.

Ho controllato online per la fisica, ma sembra che tenga conto di più informazioni di quelle che posso fornire nel mio gioco (come l'influenza della gravità reale sul veicolo). Attualmente utilizzo la seguente logica per determinare le velocità delle ruote differenziali. Cercherò di spiegare nel modo più chiaro e semplice possibile, quindi mi scuso se è confuso o troppo semplificato, mi confonde!

Ecco cosa faccio: divido il mio grado di svolta attuale per l'importo della svolta massima per ottenere una percentuale, quindi prendo quella percentuale e la applico a una percentuale di modifica (solo una percentuale che ho inventato e ho modificato per ridurre il numero passato al differenziale, non sono sicuro di cosa dovrebbe essere davvero. Velocità del motore? Velocità?). Quindi, nel mio differenziale, controllo se il veicolo gira a sinistra o a destra e riduce la velocità su un lato del x% e aumenta la velocità sull'altro lato dello stesso x%

Sono certo che il mio problema più grande è il numero che sto inventando per ridurre la percentuale di virata ma non posso dire cosa mettere lì. So che passare direttamente la curva% al differenziale (diciamo 40%) ridurrebbe una parte di 40 e aumenterebbe l'altra di 40 e questo chiaramente non è giusto.

Ho accesso alla velocità del motore, alla trasmissione, alla velocità dell'asse di ciascuna ruota, alla coppia, alla velocità del veicolo, ecc., Ma non sono sicuro di quale di questi dovrei prendere in considerazione quando faccio questa formula.

Forse sto complicando troppo o forse sto semplificando troppo. Qualsiasi aiuto per capire questo sarebbe fantastico!


Quali problemi hai avuto davvero con la vera fisica coinvolta? Perché la gravità si ottiene facilmente (è una costante che dovresti modificare, lo stesso vale per la massa del veicolo ecc.)
Roy T.

Bene, non ci sono davvero grossi problemi con la fisica reale, ma poiché non so molto sui differenziali e sulla meccanica (della vita reale), la fisica mi è passata per la testa.
Mungoid

Risposte:


9

Penso davvero che non dovresti farlo in questo modo e che dovresti guardare di più nella fisica reale (vedi il mio commento). Tuttavia, posso dirti perché il tuo approccio attuale non funziona. (Troppo a lungo per i commenti, quindi posterò questo come risposta)

Esploriamo prima cosa succede (probabilmente lo hai già fatto tu stesso).

Punto di svolta

La posizione è sostanzialmente come nella foto sopra, ma semplifichiamo un po 'i numeri:

Supponiamo che l'auto C sia larga 2 metri e abbia un raggio di sterzata minimo di 5 metri. Ora sterzo a sinistra. La ruota anteriore sinistra segue ora un cerchio con un diametro di 5 metri. La ruota anteriore destra ora segue un cerchio del diametro di 7 metri. Completando un cerchio completo, la ruota sinistra percorrerà 10 * pi metri. La ruota destra percorre 14 * pi metri. Ora dite che le ruote di C hanno tutte le stesse dimensioni e che la circonferenza delle ruote è di 0,5 * pi metri (sì, quelle sono grandi ruote, ma nessuno ha detto che non potevamo modellare un monster truck!) Il differenziale lo farà assicurarsi che per ogni 20 rotazioni della ruota sinistra la ruota destra ruoti 28 volte in modo che nessuna delle ruote scivoli.

Quindi ora potresti dire che il diff-% dovrebbe essere modificato, diciamo che a sinistra piena dovrebbe differenziare + 40%, e passiamo semplicemente a questo -40% a destra e poi siamo d'oro?

Sfortunatamente, come hai visto, questo non funziona. Troviamo una formula generale per il differenziale in questa macchina. Qui x è il cerchio di svolta desiderato.

left wheel distance: x*pi meters
right wheel distance: (x+2)*pi meters:
left wheel rotations: x*4
right wheel rotations: (x+2)*4  

Direi che il diff dovrebbe funzionare alla frazione ((x + 2) * 4 / (x * 4)) [*]. (Times 100% se lo si desidera in percentuale) Tracciamo che:

trama diff

Come puoi vedere chiaramente questa funzione non è lineare. Quindi, solo avere il differenziale dipende linearmente da quanto il tuo sterzo a sinistra oa destra non funzionerà mai.

Ora vedo che è allettante usare solo la formula sopra ma penso che probabilmente è meglio se non lo fai per i motivi sopra descritti :). Inoltre dovrai implementare 2 differenziali a meno che se lo sterzo coinvolge tutte e quattro le ruote, il che rende ancora più difficile l'implementazione, vedi di nuovo la prima immagine.

[*]: che possiamo semplificare: (x + 2) * 4 / (x * 4) => (x + 2) / x


Non sono al computer di lavoro per provarlo, ma ho la netta sensazione che tu abbia ragione su tutti i punti! E non sei troppo lontano per la cosa del monster truck. È un pezzo di macchinari pesanti per un simulatore, quindi le ruote hanno un diametro di circa 2 metri. Inizialmente pensavo di essere in grado di "imbrogliare" poiché ho solo bisogno di tenere le ruote a terra, ma penso che questo lo renderà molto più preciso. Eseguirò i numeri domani e ti farò sapere. Grazie!
Mungoid

Sì, il tuo post mi ha indicato la giusta direzione. Avevo provato la mia versione della matematica che mi hai dato, ma a quanto pare lo stavo facendo un po 'male. Grazie per la guida!
Mungoid
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.