Troubleshooting MFC Strafe Issues - My Journey Through Hell

Joined
Oct 29, 2021
Messages
6
#1
Special thanks to Kenetor and all the frequent names in the ship-design channel on Discord who floated ideas and theories that allowed me to reach my now final theory.

To start off - I wanted to build something extremely flat and long with the intention of making this the ultimate asteroid dodging machine. Below is what my ship looks like. It has 504 crates and is only ~3 crates in height. As a result of trying to reach ultra-book laptop and modern mobile phone kind of profile, I had to make the ship nearly max voxel length to accommodate everything I wanted in the ship and it's also wider than all my previous builds.
1635486364223.png

When I first started testing the ship in SSC, I encountered this very weird strafe problem - the ship would pitch or yaw to one side while strafing up and down, and strangely, strafing left and right worked just fine (this is important because it'll align to my theory at the end).

And NO, this is not due to a thruster blocked or disconnected. I've sent my BP to Kenetor who's checked it with a second pair of eyes, no issues like that :)

Notable troubleshooting steps attempted:
- Disable all angled thrusters, this fixes it but loses the majority of my forward thrust.
- Running all angled thrusters with yolol, this fixes it, but since the majority of the forward thrust isn't managed by MFC, ship will not fly straight as soon as more than 3 crates of imbalance is introduced.
- Running all angled thrusters on a separate MFC/FCU pair that only controls FcuForward - this made the symptoms better, but did not fix it completely.
- A very strange observation - When I really try to upset the ship's balance ie, loading one side with max weight cargo, the other side completely empty, THE PROBLEM GOES AWAY! (This is important and aligns with my theory at the end)

What actually fixed it:
- I first noticed a tiny beam misalignment at the back of my ship - this is where all of my angled thrusters are connected to:
1635489374341.png

But where is this misalignment from? Hand on heart I snapped the ENTIRE ship with manual snapping tool because I know for a fact that autosnap will leave tiny misalignment issues all over the place. But it seems that even manual snapping is not completely accurate (later I realised that it could be the ROTATION THAT IS OFF! see screenshot below), someone pointed out this might be floating point inaccuracies, but only a dev would be able to confirm. 1 misalignment lead to another, and then copied multiple times and in the end when there's enough of them and they line up in a particular way, it causes issues like the picture above.

1635489521326.png


I then went on a beam scrubbing marathon and re-snapped every major section of the ship (since my ship was built in sections and put together at the end) and completely re-did all my angled thrusters. I then scrubbed tens of thousands of beam connection piece by piece. The issue keeps cropping up and it seems that there's just no way to make everything completely accurate.

In the end I reached a configuration that had only very minimal misalignments - still not great, but an improvement to what I had before.

1635489859289.png

Tried flying again, THAT FIXED IT! Strafe now works without ANY issues at all!
I also tried loading one side of my ship to cause imbalance - still strafe just fine, MFC is able to compensate for uneven load and I was confident that I had the winning formula.

But this is not the end of my nightmare!
I went on and started testing the ship on PTU - and I carried a few stacks of backup ore for emergency field repairs like I always do (2 stacks of Vokarium, 2 stacks of Bastium, 2 stacks of Charodium and 2 stacks of Ajatite).

Bam! the strafe problem is back after I printed my ship on PTU with these backup ore loaded. But how could it be?! I'm really lost here because the ship totally strafes just fine with even the most extreme uneven loading.

Back to the drawing board - new theory: What if I don't have enough manoeuvring thrust? I added 2 additional triangle thrusters at each corner pointing up and down which brings the total number to 10 at each corner:
1635493169571.png


Not only did this not fix the issue, it made the issue worse!

That's when it dawned on me -
What if the MFC will only try to balance the ship if the disturbance is large enough and ignore minor imbalances?
Could it be that I have TOO MUCH manoeuvring thrust?

Then I tried removing manoeuvring thrusters, remove 2 at each corner, remove 4, remove 6 and only 2 left.
Yup - this confirms my theory (somewhat). The less manoeuvring thrust I have at each corner for up and down, the more stable the ship becomes!

With only 2 triangle thrusters at each corner pointing up and down, I can never get my ship to strafe badly no matter what I do to it!
1635494086158.png

Final Theory:
  1. MFC will only try to balance your ship if the disturbance is large enough


  2. If you have too much maneuver thrust and it becomes too easy to keep the ship flying level, MFC won't bother


  3. Normally you don't see this problem, but if a ship is built like mine, where strafe up/down is at the far end of each corner, making the ship theoretically very very easy to balance when strafing up and down, MFC won't even try when CoM is only off by a tiny bit, it'll only start trying to keep the ship level if the CoM is off by a large enough margin

  4. Once you either a) introduce more imbalance or b) remove maneuver thrusters such that the ship will actually have to try hard to keep you level, problems go away

  5. The reason why I could fix this initially by re-aligning major sections of my ship is that, in doing so, it made the ship so balanced that the physics engine was then ignoring the trace amount of imbalance, but as soon as trace amounts of imbalance is reintroduced (ie, a few stacks of common ore), physics engine sees the imbalance, but MFC ignores it

  6. The reason why strafing left and right never had the problem is because since the ship is very flat, it's actually difficult to keep the ship level when going in left/right directions and MFC always tries to keep the ship level

    Of course these are still just theories and could be wrong until we hear from a dev. All my BPs are available for devs if required.
UPDATE:

Interesting stuff. Since you're using adjacent triangles for maneuver thrusters, I wonder if the minimal thrust they could produce is too much for a small correction, and that's why the MFC "doesn't try"?
Yup, this is it. The root cause is definitely that these triangle thrusters just don't have the fine control requested by MFC when the imbalance is small enough.

What I did:
I tried splitting the 8 triangle thrusters at each corner into more groups by physically separating them like below, ship strafes like a champion no matter how small or large the imbalance is. No yolol involvement, no secondary MFC/FCU, no tricks, it just works.

1635513710860.png
 
Last edited:

Haladin

Active endo
Joined
Sep 16, 2021
Messages
39
#2
Interesting stuff. Since you're using adjacent triangles for maneuver thrusters, I wonder if the minimal thrust they could produce is too much for a small correction, and that's why the MFC "doesn't try"?
 
Joined
Oct 29, 2021
Messages
6
#3
Interesting stuff. Since you're using adjacent triangles for maneuver thrusters, I wonder if the minimal thrust they could produce is too much for a small correction, and that's why the MFC "doesn't try"?
That's a very interesting idea - perhaps I could try splitting those triangle blocks into more groups (it'll be a bit painful though since I'll have to keep them physically separate).
 
Joined
Oct 29, 2021
Messages
6
#4
Interesting stuff. Since you're using adjacent triangles for maneuver thrusters, I wonder if the minimal thrust they could produce is too much for a small correction, and that's why the MFC "doesn't try"?
After testing, you are exactly right, I split the 8 triangle thrusters into 2 groups of 4, it's as stable as if I just had 4 at each corner!
 

Greebo

Well-known endo
Joined
Aug 23, 2021
Messages
65
#5
On the subject of the misalignment, I noticed this happening with station easy build as well.

I made an entire post on it, but basically chaining together a long string of station blocks adds tiny amounts of rotational error with each block and eventually they no longer align.
 
Top