Jump to content

[1.3.1] Ferram Aerospace Research: v0.15.9.1 "Liepmann" 4/2/18


ferram4

Recommended Posts

Any ideas why every rocket I launch seems to be more aerodynamic attempting to fly backwards? With this mod, everything starts backflipping the moment I deviate even slightly from straight vertical flight - and yes, I've checked I'm not top-heavy.

Link to comment
Share on other sites

Any ideas why every rocket I launch seems to be more aerodynamic attempting to fly backwards? With this mod, everything starts backflipping the moment I deviate even slightly from straight vertical flight - and yes, I've checked I'm not top-heavy.

That is a natural reaction of a rocket - try throwing something more or less streamlined with one end heavier then the other into the air light end-forward - you'll see it will turn upside down in flight. And the more "bottom-heavy" your rocket is the bigger the problem will be. Try adding control surfaces to the very bottom of the rocket - usually it fixes the problem.

Link to comment
Share on other sites

Any ideas why every rocket I launch seems to be more aerodynamic attempting to fly backwards? With this mod, everything starts backflipping the moment I deviate even slightly from straight vertical flight - and yes, I've checked I'm not top-heavy.

Its exactly because you're not top-heavy that you're flipping over. If you were top-heavy, it would be stable.

If your rocket flips over its because your CoL/CoD is in front of the CoM. In other words, you're bottom-heavy, with the drag/lift centre above it. So when you go off-center, the heavy part wants to go in front.

Welcome to rocket science :D

Make your payload more compact, use fairings, and if necessary add winglets (static ones) at the bottom to stabilize.

Link to comment
Share on other sites

@anaximander: Try to design your rocket to be something like an oversized, powered dart: lots of weight at the front, lots of fins at the back. Other suggestions include:

  • Keep your TWR lower than 2; this will help keep aerodynamic forces manageable.
  • Start your gravity turn early and gradually, somewhere around 200m - 2km depending on the acceleration each of your stages is capable of; going straight up until 10km and suddenly yanking it over 30 degrees will end badly.
  • Keep your orientation within 5 degrees of your surface prograde vector; too much deviation can cause a loss of control.
  • Build your rocket upwards, not outwards; longer rockets will be more stable than wider rockets as well as suffering less from aerodynamic drag.

@SalmonellaDingDong: Make sure that you cleaned out the Plugins folder in the KSP root directory; everything has moved to the GameData folder. You might be accidentally overwriting the new plugin file if you tried to bring FAR v0.9.3.1 over to KSP 0.20.

Link to comment
Share on other sites

Ferram: Have you seen my ModuleManager? I actually designed it with you in mind, so you could apply FAR modules to stock parts without having to override .cfg files.

Also, I'm working with Mu to get it incorporated into 0.20.1 so it'll be part of the basic functionality of the game.

Instead of editing Squad's part.cfg files, you just create one single file within GameData/FerramAerospaceResearch/ called FerramAerospace.cfg, that looks like this:


@PART[AdvancedCanard]
{
MODULE
{
name = FARControllableSurface
S = 1
AoAmax = 25
MAC = 0.5
AR = 8
e = 0.9
IsSmallCtrlSurf = 0
MidChordSweep = -15
maxdeflect = 15
b_2 = 2
TaperRatio = 0.1
}
}

@PART[StandardCtrlSrf]
{
MODULE
{
name = FARControllableSurface
MAC = 0.5
e = 0.9
nonSideAttach = 1
maxdeflect = 20
MidChordSweep = 0
b_2 = 2.8
TaperRatio = 1
}
}

@PART[airScoop]
{
MODULE
{
name = FARBasicDragModel
S = 1
upVectorName = forward
CdCurve
{
key = -1 0
key = 0 0.3
key = 1.0 0
}
ClCurve
{
key = -1 0
key = -0.5 -0.03
key = 0 0
key = 0.5 0.03
key = 1 0
}
CmCurve
{
key = -1 0
key = -0.5 -0.01
key = 0 0
key = 0.5 0.01
key = 1 0
}
}
}

@PART[CanardController]
{
MODULE
{
name = FARControllableSurface
S = 1.76
AoAmax = 30
MAC = 1.1
AR = 2.91
e = 0.8
IsSmallCtrlSurf = 0
MidChordSweep = 20
ctrlaxis = pitch
maxdeflect = 20
b_2 = 1.6
TaperRatio = 0.5
}
}

@PART[deltaWing]
{
MODULE
{
name = FARWingAerodynamicModel
S = 7
AoAmax = 25
MAC = 2
AR = 3.5
e = 0.75
IsSmallCtrlSurf = 0
MidChordSweep = 22
ctrlaxis = none
maxdeflect = 0
b_2 = 3.5
TaperRatio = 0.1
}
}

@PART[Mark1Cockpit]
{
MODULE
{
name = FARControlSys
}

MODULE
{
name = FARBasicDragModel
S = 4
CdCurve
{
key = -1 0.05
key = 0.2 0.3
key = 1.0 0.05
}
ClCurve
{
key = -1 0
key = -0.5 -0.03
key = 0 0
key = 0.5 0.03
key = 1 0
}
CmCurve
{
key = -1 -0.1 0 0
key = -0.5 -0.1 0 0
key = 0 -0.1 0 0
key = 0.8660 0 0 0
key = 1 0.1 0 0
}
}
}

@PART[Mark2Cockpit]
{
MODULE
{
name = FARControlSys
}

MODULE
{
name = FARBasicDragModel
S = 6
CdCurve
{
key = -1 0
key = 0 0.3
key = 1.0 0
}
ClCurve
{
key = -1 0
key = -0.5 -0.03
key = 0 0
key = 0.5 0.03
key = 1 0
}
CmCurve
{
key = -1 0
key = -0.5 -0.01
key = 0 0
key = 0.5 0.01
key = 1 0
}
}
}

@PART[Mark3Cockpit]
{
MODULE
{
name = FARControlSys
}

MODULE
{
name = FARBasicDragModel
S = 9
CdCurve
{
key = -1 0
key = 0.2 0.3
key = 1.0 0
}
ClCurve
{
key = -1 0
key = -0.5 -0.03
key = 0 0
key = 0.5 0.03
key = 1 0
}
CmCurve
{
key = -1 0
key = -0.5 -0.01
key = 0 0
key = 0.5 -0.01
key = 1 0
}
}
}

@PART[Mark1-2Pod]
{
MODULE
{
name = FARControlSys
}
MODULE
{
name = FARBasicDragModel
S = 16

CdCurve
{
key = -1 0.25 0 0
key = 0 0.1 0 0
key = 1 0 0 0
}
ClCurve
{
key = -1 0
key = -0.5 -0.03
key = 0 0
key = 0.5 0.03
key = 1 0
}
CmCurve
{
key = -1 -0.1 0 0
key = -0.5 -0.2 0 0
key = 0 -0.3 0 0
key = 0.5 -0.2 0 0
key = 1 -0.1 0 0
}
}
}

@PART[mk1pod]
{
MODULE
{
name = FARControlSys
}
MODULE
{
name = FARBasicDragModel
S = 4

CdCurve
{
key = -1 0.25 0 0
key = 0 0.1 0 0
key = 1 0 0 0
}
ClCurve
{
key = -1 0
key = -0.5 -0.03
key = 0 0
key = 0.5 0.03
key = 1 0
}
CmCurve
{
key = -1 -0.1 0 0
key = -0.5 -0.2 0 0
key = 0 -0.3 0 0
key = 0.5 -0.2 0 0
key = 1 -0.1 0 0
}
}
}

@PART[smallCtrlSurf]
{
MODULE
{
name = FARControllableSurface
S = 0.5
AoAmax = 30
MAC = .5
AR = 4
e = 0.9
maxdeflect = 20
nonSideAttach = 1
b_2 = 1
TaperRatio = 1
}
}

@PART[structuralWing]
{
MODULE
{
name = FARWingAerodynamicModel
S = 3.06
AoAmax = 30
MAC = 1.7
AR = 2.12
e = 0.7
MidChordSweep = 45
IsSmallCtrlSurf = 0
maxdeflect = 0
b_2 = 1.8
TaperRatio = 0
}
}

@PART[sweptWing]
{
MODULE
{
name = FARWingAerodynamicModel
S = 8.33
MAC = 1.7
e = 0.9
IsSmallCtrlSurf = 0
MidChordSweep = 10
ctrlaxis = none
b_2 = 4.9
TaperRatio = 0.78
}
}

@PART[tailfin]
{
MODULE
{
name = FARWingAerodynamicModel
S = 1.82
AoAmax = 25
MAC = 1.4
AR = 1.86
e = 0.75
IsSmallCtrlSurf = 0
MidChordSweep = 22
b_2 = 1.3
TaperRatio = 0.4
}
}

@PART[wingConnector]
{
MODULE
{
name = FARWingAerodynamicModel
S = 5.61
AoAmax = 35
MAC = 3.3
AR = 1.03
e = 0.7
IsSmallCtrlSurf = 0
MidChordSweep = 0
maxdeflect = 0
b_2 = 1.7
TaperRatio = 1
}
}

@PART[winglet]
{
MODULE
{
name = FARWingAerodynamicModel
S = 1.65
AoAmax = 35
MAC = 1.1
AR = 3.3
e = 0.7
IsSmallCtrlSurf = 0
MidChordSweep = 25
maxdeflect = 0
b_2 = 1.5
TaperRatio = 0.2
}
}

@PART[R8winglet]
{
MODULE
{
name = FARControllableSurface
S = 1.95
MAC = 1.3
e = 0.7
IsSmallCtrlSurf = 0
MidChordSweep = 10
maxdeflect = 15
b_2 = 1.5
TaperRatio = 0.6
}
}

@PART[winglet3]
{
MODULE
{
name = FARControllableSurface
S = 2.1
MAC = 1.4
e = 0.6
IsSmallCtrlSurf = 0
MidChordSweep = 15
maxdeflect = 15
b_2 = 1.5
TaperRatio = 0.6
}
}

It basically lets you apply a "patch" to part configNodes, replacing any value or node specified by a @NODE[name] {...}, deleting any value or node specified by !NODE[name] {}, and adding any value or node specified the normal way by NODE {name=...}

Edited by ialdabaoth
Link to comment
Share on other sites

Ferram - Regarding the windows: could I convince you to do something like I did with one of my mods, and have the control surface configuration window ONLY appear in the ActionGroup editor menu?

Here's how I did it:


//
public void OnGUI()
{
EditorLogic editor = EditorLogic.fetch;
if (!HighLogic.LoadedSceneIsEditor || !editor || editor.editorScreen != EditorLogic.EditorScreen.Actions)
return;


if (EditorActionGroups.Instance.GetSelectedParts ().Contains (part)) {
Rect screenRect = new Rect(0, 365, 430, (Screen.height - 365));
GUILayout.Window (part.name.GetHashCode (), screenRect, engineManagerGUI, "Configure " + part.partInfo.title);
}
}

Using "Rect(0, 365, 430, (Screen.height - 365))" means that the window precisely fills the empty bottom half of the ActionGroups window.

Checking "if (!HighLogic.LoadedSceneIsEditor || !editor || editor.editorScreen != EditorLogic.EditorScreen.Actions) return;" means that if the user isn't in the Action Group editor menu, your window doesn't show.

Checking "if (EditorActionGroups.Instance.GetSelectedParts ().Contains (part)) {" means that it ONLY shows your window if they've selected your part.

This conforms to the UI paradigm that people are already used to: go to the Action Group menu, click on a part, start tweaking it. It means that your control surfaces will "feel like" part of the official game, rather than something tacked on.

Link to comment
Share on other sites

@ialdabaoth: I didn't know about the ModuleManager; I was figuring I was going to have to wait until 0.20.1.

Switching the control surface section of the GUI over to what you suggest could be interesting, except I don't know how it would work with regards to the size of the window and how it would work with the stock UI paradigm. I can look into it though. :)

Link to comment
Share on other sites

First of all, thanks for the awesome job you did on this plug-in! I've learned a lot from it and I can't go back to the stock model, getting a SSTO to orbit is a lot more fulfilling than before.

Second, I think I found a bug:

When using KW or other fairings everything seems fine, but when using cargo bays it seems broken. If I put anything inside a cargo bay the Cd increases the same amount as if i put the part outside it as in the picture, it happened with B9 cargo, LSI cargo bay and with the TT MK3, happens with any type of part put inside too. When right clicking on the part it says the correct amount of parts shielded as with fairings, but the extra drag is still applied.

I've tried it with a simple plane and a few more complex ones with the same result also, tried it with the last version on 0.20 with the same results.

When empty, the Cd on this plane is around 0.05 flying at mach 0.5 and more than 0.22 with things in the cargo.

screenshot177j.th.jpg

screenshot176o.th.jpg

Edited by Huelander
Link to comment
Share on other sites

Is there a way to use the new directory structure to avoid overwriting the parts files?

Just curious.

If not I would encourage you filing a feature request to be able to add changes to existing parts using the new plugin structure.

Link to comment
Share on other sites

@Huelander: I assume you're using the CoL to check fairings, but the FAR Editor GUI to check cargo bays, correct? If so, then I have confirmed and fixed the bug you're talking about. If not, then that means there is another bug for me to hunt down and fix, so please get back to me ASAP.

@Ruedii: On the previous page ialdabaoth mentioned his fix for the currently broken feature; I will look into seeing if it can be implemented in the next / a later version of FAR.

Link to comment
Share on other sites

Two requests for ferram4:

1. Could you please rebalance the jet engines and curves? I feel that the larger one produces a little bit too much power, and the small one produces waaaay too much power. A single small engine is overkill for almost any situation aside from SSTO work, and I can frequently break the sound barrier with just one of them at sea level.

2. Are you planning on decreasing the strength values for all parts, to cause more realistic failures? I want to see my aircraft break apart again. :-P

Link to comment
Share on other sites

2. Are you planning on decreasing the strength values for all parts, to cause more realistic failures? I want to see my aircraft break apart again. :-P

The problem with that, apart from needing to redo the connection values for every single part ever, is that the flexibility of a connection is related to its breaking ratings.

So if you give them realistic braking forces, you craft will also bend like slinkies at the slightest provocation, which believe me is not particularly realistic.

As an example, if you decrease the strength of a wing's connection so that it fails at say, 6gs, it will bend roughly 20 degrees up once you take off.

Link to comment
Share on other sites

ferram4: what's the status of FAR vs pWing? I really want to use pWing, but from what I've read there is still trouble with FAR picking up the updates.

In the meantime, I'm making do with the wings from TV aerospace which are better than stock wings, but still difficult to work with (though when I get a workable design, my plane does fly well).

Link to comment
Share on other sites

So, like, how does one install this? Does this do the whole FAR on its own?

Yes, I just grabbed the FAR plugin, created a .cfg file, added my ModuleManager, and zipped it up. Install all that straight into GameData, so you have:

/GameData/ModuleManager.dll

/GameData/gameData.cfg

/GameData/FerramAerospaceResearch/FerramAerospace.cfg

/GameData/FerramAerospaceResearch/Plugins/FerramAerospaceResearch.dll

/GameData/FerramAerospaceResearch/Plugins/FerramGraph.dll

/GameData/FerramAerospaceResearch/Plugins/PluginData/FerramAerospaceResearch/FAR.cfg

Link to comment
Share on other sites

Either I somehow installed that ModuleManager thing wrong (twice), or it doesn't work properly - the CoL in the hangar is all wrong, the craft handles differently, and forces in stable level flight don't add up:

http://i.imgur.com/VhQf1Xl.png.

This is completely fixed if I remove it all and replace with the original cfg-overwriting version by ferram.

Also, in both versions, I have also noticed a very weird effect that I haven't seen before: at around 120% intake power (a number agreed with by MechJeb) an engine would intermittently flame out, switching between active and flamed out every physical frame (seen if DynamicWarp slowdown is used). If you check symmetrical intakes, one would be at zero, and another would actually have air available; this looks like some new bug causing assymmetry in how resources are drawn. I wonder if the same happens in pure stock.

http://i.imgur.com/yWFADPz.png

Link to comment
Share on other sites

oops... I copied a config file wrong. Teach me to work at 4 AM with no sleep...

I'll go over everything and make painfully sure that it matches ferram's now.

EDIT: AHA! I forgot these lines on each part:


@dragModelType = override
@maximum_drag = 0
@minimum_drag = 0
@angularDrag = 0

So basically, the one I posted last night applied the default KSP drag PLUS FAR's drag model, which is clearly terribly wrong. I'll test this now side-by-side with FAR's and repost in an hour or so if they're identical.

Edited by ialdabaoth
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...