|
|
Signori,
per quelli che ancora usano FS9, segnalo la presenza di un gravissimo baco che apparentemente nessuno ha notato (in fsdeveloper, avsim, flightsim etc....). Il baco sta nel calcolo della pressione atmosferica. FS9 implementa abbastanza bene il modello ISA atmosferico, per cui la pressione cala con la quota con una certa legge fortemente non lineare. Sia FS9 che i seguenti fanno un buon lavoro in questo. La pressione atmosferica è fondamentale per calcolare le dinamiche di volo, visto che entra nella maggior parte delle equazioni del volo e in quelle della spinta dei motori. Purtroppo, nel caso in cui la pressione QNH sia fuori dall'isa (ossia diversa da 1013.2 hPa), FS9 applica una specie di correzione alla pressione stessa usando una formula completamente errata. Completamente. Non ho ben capito cosa faccia, ma fa qualcosa di molto simile ad una sottrazione della differenza di pressione al suolo rispetto all'ISA. Esempio: se la QNH è di 1000 hPa, il simulatore calcola la pressione come nel modello ISA e ci sottrae 13.2 hPa. In realtà fa qualcosa di più di così... la sottrazione non è esattamente quella... diciamo che in prima approssimazione fa questa compensazione. Ebbene questo procedimento è SBAGLIATO e crea un piccolo errore alle basse quote, ma un errore enorme alle alte quote. Tipo sopra i 20mila piedi già l'errore è percepibile. Sopra i 35mila piedi l'errore è importante e sopra i 45mila piedi è enorme. Questo perché alle alte quote la pressione di suo scende a poche decine di hPa... se ci sottrai ad esempio 40 hPa (perché il QNG è di 973.2 hPa), la pressione si avvicina molto allo 0! In una giornata di bassa pressione a 45000 piedi le dinamiche vengono calcolate come se stessi volando a 60 mila piedi! Peggio: in casi estremi, la pressione può diventare addirittura negativa! Questo sembra essere previsto dal codice, per cui c'è una routine di correzione: in caso di pressione negativa, lui la risetta a 1013.2 hPa (come a livello del mare). Fantastico! Sei a 55 mila piedi con il Concorde, entri in una depressione e improvvisamente l'atmosfera attorno a te diventa quella del livello del mare! Tra l'altro, ho notato il problema proprio mentre cercavo di capire come mai col concorde la mia IAS saltava da 490 a 410 nodi tra una stazione meteo all'altra... credevo fosse per via della temperatura... quando ho visto che era per via della pressione, si è acceso un serio campanello di allarme. Questo problema sembra essere corretto in FSX e seguenti, per quanto ho notato. Esiste una correzione in FS9? No! L'unica sarebbe quella modificare una libreria del simulatore... quale difficile dirlo. Come ancora più difficile.
Però, per fortuna che è arrivato il sottoscritto, che, con una enorme dose di fortuna (ci ho speso solo 10 ore in questo progetto, avrebbe potuto impiegarne centinaia senza approdare da nessuna parte) sono riuscito a trovare la libreria incriminata (weather.dll), il punto preciso nei 224 kB in cui l'errore si genera. Quindi ho sviluppato una semplice patch contro l'errore. Non è una patch risolutiva (ossia che implementa il calcolo corretto), ma almeno una soluzione che evita troppe discrepanze; ossia ho trovato il modo di forzare il calcolo della pressione come se si fosse sempre in ISA indipendentemente dal QNH locale. Questo può comportare un piccolo errore nelle dinamiche, ma decisamente trascurabile rispetto al precedente errore. Come dire: al posto di volare con la pressione che hai a 45 mila piedi, voli con quella avresti a 46 mila... ma almeno non quella 61 mila piedi. Sto ancora cercando di esaminare il codice assembly della weather.dll, per vedere se è possibile implementare una correzione più precisa. Se trovo un sistema ve lo faccio sapere. Ma l'assembly generato dalla compilazione del c++ è alquanto illeggibile, per cui ho poche speranze. Se siete interessati alla correzione (visto che non posso distribuire la weather.dll) o mi contattate via mail, oppure vi scrivo sotto le istruzioni per correggere l'errore (non è difficile).
|
|