Servers by jDrones

EKF blowout cause?


(Chris Olson) #26

Jakob, here is the one that is highly praised by the scale guys but it is for a 550/600, not a 500, so it has a 10mm mainshaft. And it is in stock in the US Align store.

http://www.aligntrexstore.com/550E-Three-Blade-Rotor-Head-H55H004XX_p_4475.html


(David Ardis) #27

Does this also apply to the Align Blade on a 450 and could this also be part of the reason for the rubber bandy tail :grin:


(Chris Olson) #28

It could be part of it. On the flybar Trex’s, higher headspeed usually fixes that “rubber bandy” tail effect. Take a look in your logs and see what the elevator servo is doing when it pitch bobs. Graph the actual pitch attitude vs RC3 OUT. If the graph show the elevator servo is over-reacting and actually causing it due the inherent instability of the head, speeding up the head to make the head more inherently stable will magically “fix” it.

If the elevator servo is doing nothing, then you got a flybar setup problem, head out of balance, blades not tracking, etc. Setting up a flybar head still remains more of an art than science. Tracking a three, four or five blade FBL head is even more of an art. I’ve spent a whole day before helping one of the scale guys track a four blade head on a Bell scale model until it flew with absolute precision. We used a high frame rate video camera with chrome tape on the blades so we could see which one was causing the issue :grinning:


(Chris Olson) #29

Jakob, if try the method I outlined for tuning, please report back on that. That is the method Leonard recommended for tuning. It has worked on every FBL heli I’ve tried it on. No drama like the wiki method because you always have control of the helicopter. And cutting the D and P gains in half from the oscillation point has yielded a superbly stable heli in cruise flight where porpoising due to over-tuned P gain can quickly lead to loss of control.

Leonard actually recommended setting I gain equal to P gain. But that was not enough I gain in my experience for heli’s for high speed flight. So I set it equal the FF instead, which then gave excellent results.

I have not heard any reports from anybody else that has tried that tuning method, and not enough heli test pilots on the project. If it works for you like it did for me, I think somebody should consider updating the wiki on tuning of trad heli’s.

I even tried it on a APM with 3.2.1 with my 500 that I set up for pylon racing for the Memorial Day Weekend races at the RC club, and it “just worked”. With a lighter 2200 6S battery in it I later flew this heli at 70+ mph running wide open at 2,900 rpm practicing for the races. Banked over on her rotor tips in the turns at full collective pitch set to 15 degrees it didn’t do anything unexpected using that tuning method.


(OAPpilot) #30

Hi Chris
Sorry I have not been back, as the ESC packed in, then had problems with the swash set uo again.
Well I got it sorted out and did your setup this afternoon. It was a bit windy but I thorght I would give a go. All seemed good.When the wind drops I will do a log and send it.
One thing I noticed, When I pressed the button on the Pixhawk and the servo’s became active, The Swash was going the wrong way. Like left was going right, and forward was ging back. When I armed the Heli they corrected themselves.
I’ve attached the Param’s file for you to look at.

2017-08-23 16-24-03.log.param (13.5 KB)


(Jakob Schmidt) #31

That was the plan :). Although I must say that halving the values seems drastic? I’ll try it out anyways, hopefully tomorrow.

Thanks for the heads-up on that rotor head. Unfortunately the Protos has an 8mm shaft, so the 550 size wont work and they don’t appear to make a 500 sized any longer. I did find a couple of other 3rd party brands, but it appears that more reading on the scale forums is required.


(Chris Olson) #32

That’s the way Leonard said to do it. And it sure worked here :grinning:

You could do like I did with my 500 stretch. I made my own mainshaft that fits the 500 bearing blocks but steps up to 10mm for the swashplate and head so I could swing the 550 blades on it. If you want to use 500 blades use some spacers in the blade holders. It’s about a one hour project to make a mainshaft on a bench top lathe. I made mine from a piece of chromoly rod that I got from the local steel shop and it’s solid shaft, not hollow.


(Jakob Schmidt) #33

I do have a friend with a lathe :). In that case, I would probably go with this:

One more question regarding tuning; Do you start with all values at 0 (PID + VFF)…or do you have a small value in all fields?


(Chris Olson) #34

That might already have a 8mm shaft being for a 500? And those SAB blades have gotten good reviews too.

I set them all to zero. I started with the VFF at .15 on both, and tuned the tail first. The heli flies fine on VFF .15. Then pull the microSD out and look at the Rate to see how it tracks. You have to make some stick movements get enough info to get a good idea of how the rate is tracking. That will be totally dependent on your mechanical rate too, because rate control is rate control, regardless of whether it is mechanical or electronic. It’s whatever it takes to get the right rate so actual tracks desired.

The heli may get way more responsive than you want. That’s where you use the Accel values to slow it down but 110000 is usually pretty close for a 500.

Then do D gain first, P gain next, and I gain same as VFF. Leonard did not recommend doing it the way I did where I set pitch to very slightly less than roll. That was my own invention. He recommended doing one axis at a time. I tried it on pitch and got to ridiculous values without ever getting the shakes. Since I like a little less damping on the pitch I set it a notch lower than roll. Normally that would be a notch higher than roll. But that’s personal preference because I like 'em to lean in smooth and flare smooth, and just don’t like too much damping on the pitch.

Leonard’s tuning method, tuning the D gain first, seems to allow use of D gain. Most people leave it at zero because the current instructions say to over-tune the P by not turning it down far enough from the oscillation point, so adding D gain puts it into instant shake. The heli actually flies better with some D gain.


(Jakob Schmidt) #35

Unfortunately, the Goblin 500 also uses 10mm main shaft. I was looking at it earlier.


(Chris Olson) #36

Hmmm… then the blade holders might also be for 550/600 blade roots. But it’s no big deal to punch the bushings out of 500 blades and put 550/600 bushings in, and use shim spacers to take up the gap on top and bottom of the blade root to swing 500 blades.


(Jakob Schmidt) #37

Well, it comes with matching blades, but I do think that they’re standard ‘500’ blades.


(Chris Olson) #38

Yeah, 500’s usually have like 425-450’s so they have ~970-1,000mm main rotor diameter. 550’s use 500-550 blades. The Goblin 500 has 500’s with 1,136mm main rotor. So it’s actually a 550 class and that’s why it has the big mainshaft. If you don’t have enough tail rotor clearance to swing 516’s it’s unlikely you’d be able to swing 500’s either. So you’d likely be looking at a mod to put shorter blades on it.


(Jakob Schmidt) #39

Right, but this kit comes with 465mm blades :).

Anyways.
Prepped for tomorrows (pending on how quickly I can get out from works) tuning session.
Zeroed PIDs and then played with the VFF.
I previously had a VFF of 0.03 on both.
I ended up with 0.03 on pitch and 0.15 on roll?!?.
I assume I’m looking for movement rates that more or less matches the stick movement?


(Chris Olson) #40

On the bench with just VFF turned on it should have normal swash response and travel in Stabilize mode so the heli will be flyable…15 on roll sounds right, .03 on pitch doesn’t. The swashplate should barely move in the pitch axis with VFF that low. I doubt it would be controllable at that setting with the PID’s zero’d.

Then take it out and hover it. It’s best to provide some fairly aggressive stick inputs in pitch and roll during the hover test. Then pull the logs and look at the RATE signals. Increase VFF until desired rate (RATE.XDes) from the attitude controller matches actual (RATE.X). The control inputs will be undamped with the PID’s zero’d. But we’re not looking for flight handling quality here, we’re looking to properly set the rate in the software just like you would do with a non-pixhawk heli setting the rate (and usually expo as well) in your transmitter. With the ArduPilot system that is done in the software and no rate settings are made in the transmitter.

VFF is direct stick to swash with no rate damping. On every one I’ve done, the heli gets VERY snappy and responsive if you set the fastforward so the rate actual vs desired actually match. Again drop the angular Accel values a bit if it gets too snappy and quick. At no time will the heli become uncontrollable or break into oscillation with no damping from the PID loop. It will simply do exactly as you tell it to do with the sticks. The VFF just determines how fast it does it.

Edit to add a note:
This is done in Stabilize flight mode. You still have self-leveling and attitude control with no stick inputs with the PID’s zero’d. So when you look at your logs you can see how well the heli is responding to the requests from the autopilot as well as your more aggressive stick inputs. The autopilot uses the VFF too, and actually depends on it for the proper rate.

Ex: if you or the autopilot wants 10 degrees roll left, but it takes 1.5 seconds for it to get there, the rate is too low. And by that time it’s probably requested a new attitude. So when you look at the attitude desired vs actual, it’s not going to track properly because the heli is not responding fast enough and is flying over-damped on just rate PID’s.

I gained a better understanding of how the attitude controller works after Leonard took the time to explain this.
/End Edit

Then you can set your PID loop to damp it so it’s smooth.

I didn’t catch the fact that SAB head kit came with 465’s. That should work good. Three blade rotors eat more power than two-blade at the same speed. But you should be able to slow down a three-blader and have a smoother running heli.


(Jakob Schmidt) #41

So, I finally got out tuning this and it’s promising.
Before that, I found that I hadn’t managed to zero out the P on pitch, hence the weird VFF. Once P was zero, then VFF=0.15 looked like a good rate.

First flight, with zeroed PIDs and VFF on 0.15 was actually easier than I thought. Wind was fairly swirly and while the heli was moving around a lot, it was still fairly predictable.
I then tried to download the log via the telemetry (I didn’t bring USB cable with me), but it kept timing out, so I skipped checking the rates. It felt ‘reasonable’ at 0.15.
However, this attempt also seemingly corrupted the log file and it didn’t record any of my subsequent tuning.

Started out with RLL_D. Started at 0.001, got oscillations at 0.006, so ended up with 0.003.
PIT_D was a lot more stable and I got oscillations at 0.012 and ended up with 0.006. Note,those oscillations were not very strong and fairly low frequency.

Repeated the process for RLL_P and PIT_P and got 0.045 on Roll, and 0.09 on Pitch.
Set I to my VFF at 0.15, did final AHRS trimming (as it was now very stable!) and it was hands off hovering.

Vibes are still higher in in Y with the VTX blades, but lower than before.
Loiter looked at little nervous, I saw some high frequency oscillations on the first one (not logged :/) and still looks like it on the second flight. Compass complained again and I re-calibrated and it seemed better.

I also need to re-tune the tail, but overall, this looks very promising and is an easy method to follow. Not sure if I’ll have time to fly again tomorrow.

I still need alot of compensation from the tail rotor.
10 degrees in the hover roll and 0.13 (~8 degrees) in the AHRS trim.
Seems a bit extreme?

Logs:


This the first flight with PID 0, VFF 0.15.


Last flight, where I test loiter. Hovers hands off in stabilize.

Final Params:

All in all, it took me about 45 mins, progressing very safely. D was done in steps of 0.001, P was in in steps of 0.02.


(Chris Olson) #42

Sounds good that this tuning method seems promising for you as well. What I like about it is that you tune the rate first to insure that you have proper rate control. So when you tune the PID’s you’re not tuning a heli that has minimal control range - which can tend to get quite hairy and dangerous with a large heli.

The way I set the AHRS trims is to place the heli on a bench and using your digital pitch gauge place it on the top main bearing block, or frame (if it’s perpendicular to the mainshaft). Note the pitch and roll angle on the bench measured by the gauge. Now go into the settings and adjust the AHRS trims until the values shown in the ground station software agree with the actual angle measured with the gauge.

Then ensure that the swashplate is indeed level using a leveling tool that pilots on the mainshaft, or use a dial indicator or caliper to actually measure it. A swash being improperly leveled will cause need for excessive amounts of hover trim.

Edit to add info:
I want to edit this to add a bit of info, because I “cheat” on trimming a heli

  1. It is almost impossible to calibrate the IMU’s on the bench, install the Pixhawk in the heli and have it be accurate. The IMU’s are calibrated using that method but it needs to be adjusted to reflect the actual mount angle on the heli.

  2. I measure the actual frame angle as I outlined above and adjust the AHRS trims to get it to match the actual installation. I do no further adjustment of the AHRS trims.

  3. Set the ATC_HOVR_ROL_TRM to zero

  4. Take the heli out and hover it. If it drifts left adjust the H_SV1_TRIM up and/or the H_SV2_TRIM down (after leveling the swashplate on the bench with a tool). If it drifts ahead adjust the H_SV3_TRIM down. And etc, etc. etc… Making small adjustments to those servo trims, just like setting up a heli without a Pixhawk, finally gives you a heli that hovers hands off.

  5. Now, note the ACTUAL amount of roll required to compensate for the tail rotor side-blow in no wind. This is either in the logs, or you can play back the telemetry log and see it in the AI indicator.

  6. Adjust the ATC_HOVR_ROL_TRM to that value. If it was an average of 3.5 degrees roll, then set it to 350.

  7. Now go back and adjust those servo trims again to get it to hover hands off with the ATC_HOVR_ROL_TRM set properly.

I went to this method on the last three FBL heli’s I set up. And it works. If you adjust the AHRS trims only to get it to hover, then the actual vs desired attitude tracking is off in the logs by the amount that you adjusted the AHRS trim from actual. That setting should only be used to adjust for the Pixhawk mount in the frame and not further adjusted from that.

On all three I have used this method on, rechecking the swash level after trimming, I have found the swash is so close to level with the tool that it really doesn’t matter. Doing it dynamically in hover flight compensates for flexing of the heli’s frame under loading and yields a more accurate adjustment of actual swash level in dynamic flight vs on the bench.


(Chris Olson) #43

I reviewed your logs better. The first one shows the pitch rate to be about right on. The roll rate is just a tiny bit too fast. Probably drop the RAT_RLL_FF to .14.

The fastforward setting is what determines how well the heli tracks attitude. It is all a flybar heli uses, and you have now seen it makes the heli completely flyable with no damping. With FBL all that PID loop does is replace the flybar with electronics, which does the damping and prevents over-shoot, and makes it smooth.

The fastforward is the single most important rate setting for helicopters. It is the reason heli’s have that setting and multi’s don’t. Multi’s can’t be flown without electronic stabilization. Helicopters can. It is a shame the current wiki has people attempting to tune heli’s like multi’s when the one and only similarity between the two is that they both have fans on 'em going around. The result is that people are flying heli’s that are overdamped like flying a flybar with big lead weights on the paddles. And just like a flybar the thing doesn’t respond properly with big weights on it. So like flying pure flybar that’s over-damped, you turn up the rate in the radio, which is nothing more than a stick rate multiplier (FF or VFF with FBL), to get it to respond. That is wrong, wrong, wrong.

Tuning using @Leonardthall 's method results in a heli that has the proper rate response and gives you enough room to adjust the damping for a FBL, just like a flybar. If it tends to overshoot the attitude target it is under-damped, it needs a notch more weight on the flybar (tiny bit more rate P gain). If it tends to undershoot the attitude target it is over-damped and reduce the weight on the flybar (tiny bit less rate P gain). If the thing is overall sloppy and sort of tracks attitude target, but not quite, increase the headspeed (flybar) or I-gain (FBL).

A bunch of us trad heli pilots need to get a community effort going and fix that wiki on tuning helicopters.


(Jakob Schmidt) #44

I’ve added to the docs before and can start a write-up. The ‘new’ method is simple enough.
I’ll start a new thread here when I get it started.

I also found the culprit with my AHRS trim. (After I had dismantled the whole drive train). My swash plate trims also got whacked when I upgraded to 3.5.
I still have a minor issue with the left servo not giving me same range of motion as the right & front, but I can certainly get it leveled out enough.


(Chris Olson) #45

What caused that? There should’ve been no scaling changes 3.4 -> 3.5 (I didn’t think). There was extra stuff thrown in for tandems, but that should not affect it. I’m flying my own custom code so I haven’t been trying to keep up with the rapid mainstream releases.