JSBSim Turboprops

Neu- und Weiterentwicklung von Flugzeugen.

JSBSim Turboprops

Beitragvon dg-505 » Sa Dez 03, 2016 1:19 pm

Tach auch ;)

kennt sich hier jemand mit Turboprops in JSBSim aus?

Schönes Wochenende
Joni
If flying was the language of men, soaring would be it's poetry
DHC-6 Twin Otter
Benutzeravatar
dg-505
 
Beiträge: 174
Registriert: Mo Mär 17, 2014 4:12 pm
Wohnort: Mittelhessen
Callsign:

Re: JSBSim Turboprops

Beitragvon HHS » Sa Dez 03, 2016 6:27 pm

dg-505,

Ja, was willste denn wissen?

HHS
HHS
 
Beiträge: 144
Registriert: Mo Jun 23, 2014 7:18 pm
Callsign: D-HHHS

Re: JSBSim Turboprops

Beitragvon dg-505 » Sa Dez 03, 2016 6:38 pm

N'abend Heiko

Code: Alles auswählen
<turboprop_engine name="PT6A-27">
    [...]
    <idlen1>                       60.0   </idlen1>
    <maxn1>                        96.0   </maxn1>
    [...]
</turboprop_engine>

Was genau ist n1?

In Yasim ist engines/engine/n1 nicht definiert, n2 ist die Triebwerksdrehzahl, und rpm ist die Propeller rpm.
In JSBSim scheint engines/engine/ n2 nicht definiert zu sein, genauso wie rpm. /thruster/rpm könnte die Propeller rpm sein. Liege ich da richtig dass engine/n1 die Triebwerksdrehzahl ist?




Ein Auszug aus b1900d/systems.nas:
Code: Alles auswählen
    var update_engine = func(eng){
        if(FDM=="jsb")return;
        N1[eng] = getprop("engines/engine["~eng~"]/n1");
        var rn=getprop("engines/engine["~eng~"]/running");
        var cnd =getprop("controls/engines/engine["~eng~"]/condition");
        var cutoff =getprop("controls/engines/engine["~eng~"]/cutoff");
        var tm=getprop("sim/time/delta-sec");
            if(rn){
                    setprop("instrumentation/eng-gauge/fuel-pph["~eng~"]",getprop("engines/engine["~eng~"]/fuel-flow-gph")* 6.72);
                    setprop("controls/engines/engine["~eng~"]/condition-input",cnd);
                    setprop("engines/engine["~eng~"]/n1",getprop("engines/engine["~eng~"]/n2"));
            }else{
                var ign= getprop("controls/engines/engine["~eng~"]/ignition");
                var strtr=getprop("controls/engines/engine["~eng~"]/starter");
                    setprop("controls/engines/engine["~eng~"]/condition-input",0);
                    if(strtr){
                    N1[eng] = N1[eng] + (tm * 3);
                    if(N1[eng]>15){
                        if(N1[eng]>30)N1[eng]=30;
                        if(ign==1){
                            if(cnd>0.01){
                                setprop("controls/engines/engine["~eng~"]/condition-input",cnd);
                            }
                        }
                    }
                }else{
                    N1[eng] = N1[eng] - (tm * 2);
                    if(N1[eng]<0)N1[eng]=0;
                }
                setprop("engines/engine["~eng~"]/n1",N1[eng]);
        }
    }

Was genau bewirkt if(FDM=="jsb")return;? Sorgt "return;" dafür, dass dieser Code nur dann ausgeführt wird, wenn das FDM JSBSim ist, oder wenn das FDM nicht JSBSim ist?

Jonathan
If flying was the language of men, soaring would be it's poetry
DHC-6 Twin Otter
Benutzeravatar
dg-505
 
Beiträge: 174
Registriert: Mo Mär 17, 2014 4:12 pm
Wohnort: Mittelhessen
Callsign:

Re: JSBSim Turboprops

Beitragvon HHS » Sa Dez 03, 2016 7:21 pm

dg-505,

Turboprops sind anders aufgebaut wie jet-engines.
N1 bezeichnet die Drehggeschwindigkeit der inneren Turbinenwelle. N2 ist die äußere Turbinenwelle und oftmals gleichzeitig dann auch die des Propellers.

Es gibt zwei Orte in den Properties, wo diese Werte auftauchen.
Einer ist eben engines/engine[n]/ bzw. engines/engine[n]/ thruster.

Der andere Ort ist /fdm/jsbsim/propulsion/engines/engine[n]. Dieser ist weitaus vollständiger!
Dort findest Du alle wichtigen, und noch viel wichtigere Triebwerksparameter.

Was genau bewirkt if(FDM=="jsb")return;? Sorgt "return;" dafür, dass dieser Code nur dann ausgeführt wird, wenn das FDM JSBSim ist, oder wenn das FDM nicht JSBSim ist?

Ja, wenn fdm jsbsim ist.
HHS
 
Beiträge: 144
Registriert: Mo Jun 23, 2014 7:18 pm
Callsign: D-HHHS

Re: JSBSim Turboprops

Beitragvon chris_blues » Sa Dez 03, 2016 7:48 pm

HHS hat geschrieben:
Was genau bewirkt if(FDM=="jsb")return;? Sorgt "return;" dafür, dass dieser Code nur dann ausgeführt wird, wenn das FDM JSBSim ist, oder wenn das FDM nicht JSBSim ist?

Ja, wenn fdm jsbsim ist.

Ich würde eher denken: wenn FDM == jsb dann mache nicht weiter mit dieser Funktion. Return = Abbruch.

Gut möglich, daß ich mich irre! :)
Nur nicht zögern, mir zu sagen daß ich im Unrecht bin, oder einfach nur nerve! Aber bitte nett bleiben! :)
2x2.6GHz AMD CPU - 8GB DDR2 RAM - NVidia GeForce GTS450 1GB DDR5 - Debian Testing 64bit - FG git
Benutzeravatar
chris_blues
 
Beiträge: 299
Registriert: Di Jul 30, 2013 12:52 am
Wohnort: /home/chris
Callsign: chris_blues

Re: JSBSim Turboprops

Beitragvon Sanni » Sa Dez 03, 2016 8:06 pm

@HHS:
Ist der Befehl 'return' nicht der Ausstiegsbefehl aus einer Funktion dem eventuell auch ein Rückgabewert mitgegeben werden kann?
Dann müsste aber
Code: Alles auswählen
If( fdm==jsb) return;

bedeuten, dass der nachfolgende Code dieser Funktion nicht mehr ausgeführt wird...
I failed the Turing test
Benutzeravatar
Sanni
 
Beiträge: 405
Registriert: Do Sep 26, 2013 9:05 am
Wohnort: Niedersachsen
Callsign: D-Sanni

Re: JSBSim Turboprops

Beitragvon HHS » Sa Dez 03, 2016 9:39 pm

Ich habe nur auf die nachfolgenden Zeilen geachtet, was mir eher nach JSBSim aussieht.
HHS
 
Beiträge: 144
Registriert: Mo Jun 23, 2014 7:18 pm
Callsign: D-HHHS

Re: JSBSim Turboprops

Beitragvon dg-505 » Sa Dez 03, 2016 10:28 pm

Danke für Eure Antworten :)

HHS hat geschrieben:was mir eher nach JSBSim aussieht


Ich bin bir halt absolut nicht sicher, aber in dhc6/Electrical.nas gibt es in Zeile 315 - 443 einen Code der meiner Meinung nach das gleiche macht wie der obige (nämlich das spool-up beim Starten der Triebwerke), der aber definitiv für Yasim ist...

chris_blues hat geschrieben:Ich würde eher denken: wenn FDM == jsb dann mache nicht weiter mit dieser Funktion. Return = Abbruch

Ich habe eigentlich auch gedacht das "return" bedeutet, dass bei nicht erfüllter Bedingung die Funktion nicht ausgeführt/abgebrochen wird. Aber wenn dieser Code nur für Yasim gedacht ist, wie regelt dann JSBSim das spooling up?

Ich schau mir mal Deine Do 328 an, vielleicht hilft mir das etwas weiter...
If flying was the language of men, soaring would be it's poetry
DHC-6 Twin Otter
Benutzeravatar
dg-505
 
Beiträge: 174
Registriert: Mo Mär 17, 2014 4:12 pm
Wohnort: Mittelhessen
Callsign:

Re: JSBSim Turboprops

Beitragvon chris_blues » Sa Dez 03, 2016 11:24 pm

HHS hat geschrieben:Es gibt zwei Orte in den Properties, wo diese Werte auftauchen.
Einer ist eben engines/engine[n]/ bzw. engines/engine[n]/ thruster.

Der andere Ort ist /fdm/jsbsim/propulsion/engines/engine[n]. Dieser ist weitaus vollständiger!
Dort findest Du alle wichtigen, und noch viel wichtigere Triebwerksparameter.


Das erinnert mich an eine Diskussion auf der Devel-list, die vor ein paar Tagen lief. Da gings drum, daß YaSim seine Properties an ziemlich bescheuerten Orten ablegt, während JSBsim das ganz wunderbar alles unter /fdm/jsbsim/ ablegt. Das würde für meine Annahme sprechen, daß der Code für YaSim ist und im Falle von JSBsim nicht abgearbeitet wird. All die Properties in dem Beispiel-Code scheinen nicht von JSBsim generiert zu werden, wie's aussieht.

JSBsim bringt überhaupt jede Menge gute Zahlen von sich aus hervor, während man meistens mit YaSim alles mühevoll errechnen muß (also über Nasal-Routinen oder xml-Filter).

dg-505 hat geschrieben:Aber wenn dieser Code nur für Yasim gedacht ist, wie regelt dann JSBSim das spooling up?


Das weiß ich leider auch nicht... :roll:
Nur nicht zögern, mir zu sagen daß ich im Unrecht bin, oder einfach nur nerve! Aber bitte nett bleiben! :)
2x2.6GHz AMD CPU - 8GB DDR2 RAM - NVidia GeForce GTS450 1GB DDR5 - Debian Testing 64bit - FG git
Benutzeravatar
chris_blues
 
Beiträge: 299
Registriert: Di Jul 30, 2013 12:52 am
Wohnort: /home/chris
Callsign: chris_blues

Re: JSBSim Turboprops

Beitragvon dg-505 » Sa Dez 03, 2016 11:46 pm

Vielleicht kurz was zum Hintergrund: Ich versuche, für die Twin Otter ein JSBSim FDM hinzubasteln und hab mir dafür die B1900 zum Vorbild genommen weil beide ähnliche Triebwerke haben (PT6A-27 bzw. -67). Dabei geht's mir im Moment um das Verhalten beim Engine Start.
Im Code der B1900 hab ich keinen Hinweis darauf gefunden, wie das spool-up bei JSBSim gehandhabt wird (vorausgesetzt, die Annahme mit dem "return;" stimmt). Trotzdem fährt n1 beim Triebwerksstart langsam hoch; wenn es also keinen spezifischen Code dafür gibt, müsste das eigentlich von JSBSim irgendwie intern gehandhabt werden (korrigiert mich ,wenn ich irgendwo falsch liege).
Leider funktioniert das bei der Twin Otter nicht so ohne weiteres. Wenn ich den Starter betätige, wird "engines/engine/starter" zwar auf "true" gesetzt, aber bei der B1900 auch gleichzeitig "engines/engine/starting" (vorausgesetzt, die Stromzufuhr ist akiviert). Wenn /starting "true" ist, fährt die Turbine langsam hoch. Wenn ich den bei der Twin Otter den Starter betätige, "fdm/jsbsim/propulsion/engine/n1" manuell auf, sagen wir, 20 setze (z.B. im Property Browser) und dann "/engine/cutoff" auf "false" setze, dann fährt das Triebwerk von alleine weiter hoch. Leider bleibt "engines/engine/starting" dabei "false".

Jetzt stellt sich mir die Frage, welche Voraussetzungen erfüllt sein müssen (oder wo diese definiert werden), um "engine/starting" zu aktivieren?

Diese Diskussion hab ich am Rande mitbekommen, auch wenn ich die nicht weiter verfolgt habe. In Zukunft soll das wohl irgendwie einigermaßen vereinheitlicht werden
If flying was the language of men, soaring would be it's poetry
DHC-6 Twin Otter
Benutzeravatar
dg-505
 
Beiträge: 174
Registriert: Mo Mär 17, 2014 4:12 pm
Wohnort: Mittelhessen
Callsign:

Nächste

Zurück zu Flugzeuge

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron