Taxiway

Grave baco in FS9... possibile che nessuno se ne sia accordo.... in parte l'ho risolto

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    Member

    Group
    Member
    Posts
    583

    Status
    Offline
    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).
     
    Top
    .
  2.  
    .
    Avatar

    Member

    Group
    Member
    Posts
    939
    Location
    Morgano

    Status
    Offline
    Una prima lettura dell'articolo permette di iniziare a intravedere i misteri del comportamento degli aerei a quote alte.
    Non sono un conoscitore della meteorologia e nemmeno dell'aerodinamica e vorrei intanto capire il significato di sigle come ISA, QNH, QNG. :wacko:

    Edited by antonio c - 3/5/2023, 21:22
     
    Top
    .
  3.  
    .
    Avatar

    Member

    Group
    Member
    Posts
    583

    Status
    Offline
    ISA= International Standard Atmosphere. Si tratta di un modello atmosferico che dovrebbe rappresentare una condizione "media" del nostro pianeta. Prevede tra le varie cose, pressione al suolo di 1013.2 hPa, temperatura di 15 gradi, un gradiente di temperatura di circa -2 gradi ogni 1000 piedi di quota fino a 36mila piedi, dopo di che sei in tropopausa, e resti a -56 gradi fino a tipo 65000 piedi. Dalla temperatura puoi poi ricavare la pressione alle varie quote, nonché la densità dell'aria alle medesime. Se scegli "clear all weather" in FS9, lui ti imposta le condizioni ISA.
    QNH= Pressione al livello del mare. Per capirci è quella che ti da l'ATIS. Se la metti nella finestrella dell'altimetro hai l'altitude in relazione al livello del mare attuale.
    QNG= Errore di battitura, volevo scrivere QNH ;)
    QNE= Pressione al livello del mare di 1013.2. Ossia sei in ISA. Se metti l'altimetro in QNE (1013.2 nella finestrella), leggi la cosiddetta altitudine di pressione, ossia l'altitudine alla quale ti troveresti se ti trovassi nelle condizioni ISA. L'altimetro cambia da QNH a QNE alla altitudine di transizione.
    QFE= Pressione al livello della stazione di emissione. Per esempio se a torino caselle chiedi la QFE e la setti nell'altimetro, allora questo segnerà 0 piedi quando sei all'altezza dell'aeroporto

    Note: questi sono alcuni dei "codici Q". Non sono delle abbreviazioni. Si usano in radiotelegrafia al posto di una parola o un concetto. Tipo "pressione a livello del mare" è lungo e si abbrevia in QNH. Altro esempio: QDR = radale "uscente" da un VOR. Se l'ATC ti dice Intercetti QDR 120 da CHI, significa che devi intercettare la radiale 120 uscente (in outbound) dal vor CHI (Chioggia)
     
    Top
    .
  4.  
    .
    Avatar

    Member

    Group
    Member
    Posts
    939
    Location
    Morgano

    Status
    Offline
    Grazie Max! :)
     
    Top
    .
  5.  
    .
    Avatar

    Member

    Group
    Member
    Posts
    610

    Status
    Offline
    Massimo Potenza...difficile interagire con un "simmer" con una preparazione come la tua,considera che in questo Forum ci saranno al massimo un due-tre di persone molto esperte (che io sappia).La restante parte di noi è a quel normale livello che caratterizza più o meno, un dilettante. Se fossimo tutti come te,avremmo già fondato una software-house simul-aviatoria. Ma all'interno del "nostro" Taxiway,fa sicuramente piacere la presenza di un teorico della tua levatura.Tra l'altro se hai deciso di frequentarlo credo che abbia destato il tuo interesse,il che farà piacere a tutti gli iscritti.
    Ciao
     
    Top
    .
4 replies since 1/5/2023, 21:24   165 views
  Share  
.