c172p-team / c172p

A high detailed version of the Cessna 172P aircraft for FlightGear
GNU General Public License v2.0
77 stars 43 forks source link

160 HP engine is under-powered for pontoons and amphibious #273

Closed dany93 closed 9 years ago

dany93 commented 9 years ago

As several people noticed, the 160 hp-powered c172p is under-powered, which makes it "lazy" at full load. Floats and amphibious worsen everything (added drag). I tried to fiddle the propeller pitch angle, at no avail. The original one is not far from the best.

I have a test version with a 180 hp engine. On my c172-180hp branch https://github.com/dany93/c172p-detailed/tree/c172-180hp

Easy for the engine.

The propeller is much more questionable. It is the result of compromise between climbing rate, short field takeoff, and cruise or max velocity. For the propeller, I use the NACA 640 data http://naca.central.cranfield.ac.uk/reports/1938/naca-report-640.pdf. They worked rather well for DR400, DC3, Cap10B. But everything is never certain... And I refuse to cheat the values. I check their consistency, I (re-)calculate the efficiency when I extract them from the curves.

Positive:

No so positive:

My reasoning is that, even if this propeller is still questionable, the result is better than with the 160 hp engine. More pleasant.

tigert commented 9 years ago

You've seen the c172s POH? It has 180hp and while the prop etc might vary, it has perf tables for climb and takeoff etc.

http://www.engineersflyingclub.org/planes/552SPPOH.pdf

tigert commented 9 years ago

The new planes are just heavier with all the leather seats and sound insulation so useful load is less.

tigert commented 9 years ago

I will try to test this - the extra 30 horsepower are really needed on the float version, it is really really easy to get to the "too slow" flight regime and just sink into the trees if you really are not careful - 160HP is quite dangerously underpowered for the floats.

The propeller on OH-CTL's STC says either Hartzell HC-C2YX-1A/7666A-O which is a constant-speed propeller, or a McCauley 1A200-DFA, the fixed pitch propeller that OH-CTL has.

Google says this: "Has anyone put a McCauley 1A200/DFA prop (82" diameter by 42" pitch) on a Lycoming O-360 A1A engine. I realize that Penn Yan has an STC for this prop in their 180 HP conversion for Cessna 172's, but the problem for me is it doesn't cover my model Cessna (E, 1964) or my engine (the A1A variety)."

This is the Penn Yann "Superhawk" conversion that CTL has, so there might be your pitch and diameter? Is 82" and 42" pitch acting weird? Sorry that I don't know enough of the fdm stuff to be able to test effectively myself :-/

dany93 commented 9 years ago

Thank you tigert, for your POH for 180hp and your following.

I have tested a bit more with the propeller which is currently in my branch. By default in my file, the propeller is a 76" diameter, 20° pitch (which should do 62.5" pitch at 75% diameter if no mistake). That is, same diameter as your 552SP POH above.

My results: Default gear, 2550 lbs, basic weather (about 20°C SL)

Finally. compared with your POH, it is not as far as I thought at first view.

If you feel interested at doing tests, I can make a prop file with kind of a variable pitch propeller (manually variable by entering values in the Properties, "set"). No need to know the FDM technique. Moreover, by opening the prop file, you could also enter other diameters (one value to change in a line).

I am sceptical about higher diameters. They imply lower pitch, which limits the cruise velocity. This (FG) aircraft is kind of "swiss knife" (cannot be realistic everywhere), not only for floats. My opinion is "default-gear" performance priority. 78" diameter with 18 or 19° pitch, maybe...

wlbragg commented 9 years ago

Do you know if we if there is a mechanism for switching the FDM properties such as HP on the fly, can we do it on the changeover to floats? I really hope there is a way, as this along with the "water" FDM changes would give some meat to the float plane.

tigert commented 9 years ago

I think the float verdion should be a separate -set.xml, it takes work to switch the gear to floats. Handy to switch for testing, but less realistic. Then the HP could be different?

onox commented 9 years ago

I don't think there should a separate -set.xml file. I find it annoying if you have to go back to the launcher, shutdown and restart FG just to get floats.

Although we could decide to disable the radio buttons in the aircraft dialog while the aircraft is in the air.

wlbragg commented 9 years ago

I agree with onox, we have managed to make "everything" contained to one and switchable "by design". I would really hate to loose that. I don't even see the necessity to limit when you switch. If I am flying for hours on wheels and see a lake I want to land on (real or not) I want to be able switch.

"Then the HP could be different?' So you saying, you don't think it can be implemented "on the fly"?

dany93 commented 9 years ago

Do you know if we if there is a mechanism for switching the FDM properties such as HP on the fly, can we do it on the changeover to floats?

No. I asked the question for changing engine and propeller by the properties, in order to have two motorisations with one FDM, selected by two -set.xml files. AndersG answered that it was impossible for one and very difficult for the other. I do not not remember his exact words, and I can't retrieve his message.

onox commented 9 years ago

@dany93 How about defining two engines in c172p.xml? That would be like having a twin prop, except we only run one of the engines.

dany93 commented 9 years ago

Two engines and two propellers. No problem to have two sets in the FDM. Currently, I have this in the file that you can test, I have not deleted the lines which give the original engine and prop files. But I know no mean to switch from Nr1 to Nr2, other than comment / uncomment the lines. AndersG is the best for this.

EDIT: I realize that I had not well understood your suggestion. To be thought of. You will need the controls for changing and controlling the engines. I do not know if we can have two different propeller files.

onox commented 9 years ago

What about /fdm/jsbsim/propulsion/active_engine?

And perhaps properties like /fdm/jsbsim/propulsion/engine[i]/set-running or /fdm/jsbsim/propulsion/engine[i]/friction-hp?

wlbragg commented 9 years ago

Yes, there has to be a way, if we can simulate twin engines and isolate their individual properties, then we should be able to cheat by positioning them at the same coords and zeroing out the one we are not using. There may be some trickery on weight adjustments necessary.

dany93 commented 9 years ago

The first thing would be to look at an aircraft like the Piper SenecaII. It has two engines, which can be started and controled separately. Propellers too. The FDM has the two engines and two propellers, but with only one engine file and one propeller file (common file for each). The two engines can be at the same place, they do not add weight (although we would have to take into account the extra weight from the 180 hp, like with the floats). I do not know what it does if we put two different file names for the two engines and propellers. The most difficult by far is probably to replace and condition the controls for each motorization by something like "wheels"=1 or "float"=1, and make this "transparent" for the pilot (same levers, buttons,....). If you wish, I can do a FDM file with these two sets. The difficulty is later. If it worked, it would be a very elegant solution. But the risk (even if you succeed) is to make this aircraft more and more complicated by dint of trying to have it doing so many functions. And discouraging for future maintainers. This said, I am admiring that you succeeded at sticking to this principle up to now.

Otherwise, having two c172-set and two FDMs would much more simple, but at the price of maintaining two FDMs (and loosing wlbragg's pleasure to decide a landing on an unexpected lake). Possible for rare and small changes, quickly hard for important changes. With the risk of priority on one FDM at length for the improvements. Advantage: much more flexibility.

Also, why not a single 180 hp motorization? Even if optimized for the default wheels, it would not be so bad with floats.

onox commented 9 years ago

Could we just do that trick with the mixer lever again? Create functions for the throttle, mixture, etc. for each engine. And use a property to toggle between the two engines.

onox commented 9 years ago

Hmm.. I see properties like fcs/mixture-primer, but I don't understand how a difference is made between the two engines in the FDM. I'm too tired now :sleepy:

tigert commented 9 years ago

@onox, fair points for keeping it in one, too. Kind of "one aircraft, many roles", which is true.

The bush tires are a bit of a fantasy I think, but they sure are fun too. :-)

tigert commented 9 years ago

on the other hand, this doed look absolutely beautiful :-)

http://farm2.staticflickr.com/1136/4729783882_525e9e6502_z.jpg

"Texas Taildragger" conversion of a C172. For 3.8? ;)

wlbragg commented 9 years ago

"The bush tires are a bit of a fantasy I think" How do you figure? https://www.google.com/search?q=c172+bush+tires&tbm=isch&tbo=u&source=univ&sa=X&ved=0CCkQ7AlqFQoTCMCvx6q0icYCFQQ3rAodaCsAQQ&biw=1416&bih=886#imgrc=JI3iOPLwOQEMRM%253A%3BMZ-m1-Xzm4XoPM%3Bhttp%253A%252F%252Fhitchcockaviation.com%252Fimages%252FFreemans182AZ.jpg%3Bhttp%253A%252F%252Fhitchcockaviation.com%252Fdetail.php%253Fitem%253D6%2526cat%253DAirglas%252520Nose%252520Forks%3B500%3B374

Definitely, taildragger, consider it done for 3.8 :)

dany93 commented 9 years ago

Could we just do that trick with the mixer lever again? Create functions for the throttle, mixture, etc. for each engine. And use a property to toggle between the two engines.

Good idea. These controls (like magnetos and throttle) can be made to act separately on each engine Close to this, we might use magnetos to deactivate one engine. But mixture and magnetos commands interfere with the animations already done. Because upstream, the magnetos, throttle and mixture commands act simultaneously on both engines, their use would necessitate to have the corresponding animation conditional.

I would prefer using a second float chamber (tank[3]. No interference neither with current animations, nor with usual controls. An engine with propulsion/tank[3]/priority = 0 would merely get the commands but do nothing. Only instruments animations like RPM, oil pressure, Temperature, (... ?) would have to be made conditional.

Let me some time, I will see if it can work, at least for the feasibility (I wonder for the propeller).

tigert commented 9 years ago

Would a windmilling propeller create drag in the case of two virtual engines?

dany93 commented 9 years ago

I hope that it would not be windmilling, that the engine would remain stopped. It was like this at my test with the usual config (single engine) up to ~ 160 KIAS..

onox commented 9 years ago

Isn't it easier to just add two tubes from the chamber tank to the two engines? And open/close the tubes. I don't know if JSBSim supports tubes and valves though :stuck_out_tongue_winking_eye:

dany93 commented 9 years ago

It was not my preference but I just finished to do this system because I had difficulties to manage the logic for this double float chamber. Easier because I keep the same float chamber, which feeds both engines. To select the active engine, the magnetos ( = 0 or > 1) work as well as a double chamber tank. A drawback is that both magnetos are simultaneously controlled by the keys "{" and "}" (unless set differently, which is not the case currently). Thus, if someone activates by "{", the other engine may start (in fact not so easily, the starter can also be declared as selective). About "opening/closing the tubes" (valves) I do not know how to do it, even whether it is possible or not. For me that will not be easier than having the second float chamber working (I guess). I think that is contradictory with the fact that you need a tank to be assigned to directly feed an engine in the FDM. If you cut the feeding, it is upstream or by declaring "this tank does not feel the engine" (priority=0). I have implemented this "selectivity by magnetos" rather to be able to quickly test the possibility of two separate engines and propellers. The good news is that it is possible, I have the power and the prop for each configuration, and I select the set engine + propeller. If you want, I can push this into a branch. It is enough for you to start solving the animations and controls for the second engine (see below). Not very pleasant: the "s" starts only the original engine, I have to manually set the engine[1]/starter properties to start the other one. I cannot find why, the magnetos, throttle and mixture properties are controlled by the keyboard simultaneously (not selectively) for both engines. But I guess you are able to solve that. Differently from I hoped, the second engine is not controlled by the levers (throttle, mixture) and magneto key on the dashboard. Extra bindings will have to be done for these objects. The engine instruments do not work with the second engine, but that was expected.

Unless you feel that is enough, I am working on having a second float chamber, at least because of this magneto control (too easy access). But it can be avoided if you make the starter selective for the active engine and feel the selection by magnetos is enough. Anyway if I succeed, you will have both systems available for selecting an engine + propeller.

onox commented 9 years ago

@dany93 Where do you set engine[1]/starter? I see engine[0]/starter is set in Nasal/electrical.nas.

onox commented 9 years ago

I also see there is a second property systems/electrical/outputs/starter[0].

I think it's best to remove the setprop() calls for engine[0]/starter in Nasal/electrical.nas and instead check the voltage in an .xml file and then start the current engine. Look at Systems/als-lights.xml to see what I mean.

onox commented 9 years ago

Or do the voltage checking + starting the current engine in JSBSim if you think that's better.

onox commented 9 years ago

@dany93 Look in Nasal/controls.nas in fgdata. It defines adjMixture and adjThrottle, which both use adjEngControl, which shows you need to toggle /sim/input/selected/engine[0] and /sim/input/selected/engine[1].

dany93 commented 9 years ago

Where do you set engine[1]/starter?

Internal Properties, /controls/engines/engine[1]/starter = false or true (bool) Ctrl-click for ON, second Ctrl-click for OFF, or "set" 0 or 1. It toggles only for an engine which is not already controlled by the starter key (e.g. engine[1]).

dany93 commented 9 years ago

Look in Nasal/controls.nas in fgdata. It defines adjMixture and adjThrottle, which both use adjEngControl, which shows you need to toggle /sim/input/selected/engine[0] and /sim/input/selected/engine[1].

Thanks, it helps. I had seen this controls.nas, but I hardly understand all his nasal language. I had not found the /sim/input/selected/engine[0] and /sim/input/selected/engine[1]. I had looked for it, but buried in the /sim/ is not the best place... Which was clear for me: Help > Common Aircraft Keys / ! / @ / # / $ / ~ / select one or every engine. But every engine is selected at start. The magnetos, throttle, mixture are controlled selectively as expected from the selected engine(s), but "s" triggers only the engine[0] starter, whatever the engine which is selected.

I think it's best to remove the setprop() calls for engine[0]/starter in Nasal/electrical.nas

You are right, it should come from here.

dany93 commented 9 years ago

I have implemented the bases for a two-engine-with-propeller version (160 hp or 180hp at choice from the simulator). On a dany93 branch: https://github.com/dany93/c172p-detailed/tree/c172-eng160-180hp

Redone the float chamber (fuel.xml) for this.

At choice:

In this current version (testing), the engine selection for 180 hp (engine[1]) is completely manual, done from the Internal Properties.

Do not wonder, the tachometer does not work, neither the propeller animation, nor the sound. Look at the properties engines/engine[1]/rpm = ... to check the engine starting.

Not convenient, but my aim was to give the necessary files for a two-engine version. The bindings, animations, conditions, option menu,... remain to be done. I leave you for this. I will have a look at the files if I can, but more to see and trying to understand how it is done. I am rather not familiar or ignorant in this management.

Files and folders involved:

In the future, the engine activation can be done by one or the other of the properties:

wlbragg commented 9 years ago

@dany93, I just finished reading this and it sounds really promising. I just pulled it and will see what I can do to help this along. I think it is an absolute necessity to get this working in master.

wlbragg commented 9 years ago

@dany93, I have a couple of questions.

If I start with engine[0]/mags = 0 then use engine[1]/starter to 1 and back to 0, I am effectively using the 180 HP engine, correct? Then if I press s at that point and crank the engine to get the prop to spin and the sound , am I still running engine 1 =180 HP or is that now both engine or is it back to the 160HP, because the engine[0]/mags are still set to 0.

Much better performance with the 180 HP, I think "WHEN" we implement this we should add a menu choice for either 160 or 180 HP and leave it up to the user which one to use, even for the float plane. If the user wants a challenge using the 160HP with floats, so be it. :smile: If the user wants a 180HP with wheels or bush, so be it This is exciting and I think we all need to push to get this finished.

onox commented 9 years ago

do not use "s" (it would trigger the engine[0] starter, 160 hp. Which will not start if its magnetos = 0),

If you toggle /sim/input/selected/engine[0] and /sim/input/selected/engine[1] then starter, throttle, and mixture should control the correct engine.

onox commented 9 years ago

@dany93 You have 1 commit in your branch. When you do your git pull (with the usual extra parameters you need), you could add --rebase. git will then put your commit ("engine and propeller for 160 or 180 hp, test version") on top of everything else again. It will avoid adding a merge commit.

onox commented 9 years ago

@wlbragg Wouldn't it be better to automatically select the 180hp engine for pontoons and amphibious, and 160hp for default/26"/36"?

wlbragg commented 9 years ago

I would rather have the option, or do they not upgrade the c172p to 180 for anything other than floats?

onox commented 9 years ago

do they not upgrade the c172p to 180 for anything other than floats?

Isn't that what I'm saying? :open_mouth:

wlbragg commented 9 years ago

Isn't that what I'm saying?

I don't know, is that a fact, is that the only reason they upgrade to a 180 HP engine?

Having an option gives you a more powerful wheeled aircraft if you want it. But if the only reason in RL that you see a 180 HP c172p is for a float plane, then I guess I am OK with that. But there is no down side to giving the user an option.

dany93 commented 9 years ago

@onox wrote:

If you toggle /sim/input/selected/engine[0] and /sim/input/selected/engine[1] then starter, throttle, and mixture should control the correct engine.

No, it would have been more simple but it does not work. engine[0] starts (not [1]) but throttle does nothing on [0]. Every engine is selected by default at start, only engine[0] is started and controlled.

@wlbragg

If I start with engine[0]/mags = 0 then use engine[1]/starter to 1 and back to 0, I am effectively using the 180 HP engine, correct?

No. Please follow the procedure I've written. https://github.com/Juanvvc/c172p-detailed/issues/273#issuecomment-111828903 (unless you find a more simple one). Check (at least) the properties, for each engine:

(start the right engine ([1] for 180 hp) by the procedure above).

Check: Stopped with the parking brake, full throttle

onox commented 9 years ago

If you give people the ability to fly default tires with 180 HP engine, then everybody will use the 180 HP engine :laughing:

dany93 commented 9 years ago

Sure. I've seen that with the DR400 (120 or 180 hp) !!! Let's take advantage of it, currently fuel is not expensive.

wlbragg commented 9 years ago

I don't have a problem with users having that choice. Who are we to limit it? I have never been one to put arbitrary limits on something. But if you really feel it will take away something, I guess I am OK with it. I think it might still be used by users that want a challenge or merely realistic sim. But then again, I probably would use the 180 most of the time.

@dany93, I did follow those procedures, what I failed to type was the /controls/engines/engine[1]/magnetos = 3 for [1], 0 for [0] step, which I did do.

I really was wondering what was happening after I did that and was running on the 180HP when I then hit the starter. I guess your saying it started the 160HP but doesn't actually do anything at that point because I am already on the 180hp? It didn't seem to change any power but it did give me prop animation and sound, that is why I asked.

onox commented 9 years ago

If you have switched to the 180HP engine, then using the starter would mean trying to start the 180HP engine. That would be useless of course if your 180HP engine is already running.

Have you seen https://github.com/Juanvvc/c172p-detailed/issues/273#issuecomment-113718221?

dany93 commented 9 years ago

@wlbragg Currently, if you have prop animation and tachometer working, you are on 160 hp.

onox commented 9 years ago

@dany93 Assuming you would normally do git pull upstream master, could you do git pull --rebase upstream master in your https://github.com/dany93/c172p-detailed/commits/c172-eng160-180hp branch?

dany93 commented 9 years ago

Have you seen https://github.com/Juanvvc/c172p-detailed/issues/273#issuecomment-113718221?

Have you seen my response? https://github.com/Juanvvc/c172p-detailed/issues/273#issuecomment-113734466

onox commented 9 years ago

Yes.

wlbragg commented 9 years ago

Yes I saw the comment, but I was in the air, in the 180 config and I hit the starter and it started and gave me prop animation and sound, so I was just wondering what it actually was doing. engine[0]/mags were still at 0 and I didn't notice any drop in performance, so I assumed it just gave me the animation and sound for the 180. No big deal, I got to feel the power of the 180 and I really like it. It makes the float config work for sure.

Well my day (and night) is over :cry: See ya' all later!

dany93 commented 9 years ago

Assuming you would normally do git pull upstream master, could you do git pull --rebase upstream master?

From my branch: "master?