Servers by jDrones

Linearizing servo mechanical output


(Bill Geyer) #1

It has become evident that servo displacement between the three swashplate servos has to be consistent throughout the full range of servo movement to keep from introducing coupling between pitch, roll, and collective. If the servo arm movement stays within +/- 30-40 deg of rotation from trim (which assumes the arm is perpendicular to the linkage at trim), then error between a linear throw and the actual throw is +/-4%. For servo arm throw up to 60deg then the error increases to a max of 14%. Since the swashplate orientation relies on all three servos, even errors of 4% can introduce coupling.
Unlike other servos, the swashplate servo min and max is fixed to 1000 and 2000 and is not able to be changed by the user. Well they can change it but it will be set back to 1000 and 2000. Since the min and max is fixed, I can make an assumption that 1000 and 2000 pwm is an arm angle of +/- 60 deg. Thus assuming a 1 inch arm radius, the max linear displacement of the arm is sin(60 deg) = 0.866. So I equate the full linear displacement to 0.866. So a request of 0.1 from the code would equate to 0.0866 actual arm throw linear displacement, if the arm was 1 inch long. Now the arm angle is back calculated to give that displacement. In this case it would be arcsin(0.0866)=4.97 deg.
I will put some graphs in illustrating the difference in the servo movement. I just wanted to socialize this idea as I move forward. It would definitely be a user selectable feature because there is certain criteria in the setup to get this to work properly.


(Chris Olson) #2

I think your method will probably work and prevent servo binding for four-servo swashplates (when eventually supported).

For 135/140 swashplates (not currently supported in Copter) that have a 1:1 ratio for servo movement for any control input in any direction, this issue is non-existent if the mechanical part of the system is set up correctly. It is why these heads were designed for 3D.

For 120 swashplates where the servos move in a 2:1 ratio for elevator input, it becomes an issue at full collective travel. Even at zero collective with a 120 swashplate, with everything set up perfectly, I can measure .008" movement in collective with a dial indicator on a combination elevator/aileron input. Which only makes the helicopter fly sloppy compared to commercial FBL units that are able to tune this interaction out.


(Pitt) #3

There’s also servo placement relative to swash.
There’s horizontal displacement at servo ball causing slight tilt on the link. This is probably negligible but gets worse with shorter links.
Symmetrical placement eg.SAB Goblin eliminates this inequality
images%20(4)
unnamed%20(6)
Credit: Avantrc, Raptortechnique.com


(Chris Olson) #4

Various manufacturers have done different things to mitigate the geometry issues. On the Thunder Tiger heli they use these rate multiplying linkages to place the linkage to the swash at ideal geometry. And adjust the geometry of the swashplate to make it 1:1 ratio for the servos. And it actually works. There is zero interaction on any control input in any direction. And it is very noticeable in how the heli flies - supremely accurate on control inputs.

swash_135

100_0067

By contrast, this is the layout for a typical 120 degree swashplate. Not quite perfect and requires some compensation mixes to get “pure” inputs.

swash_120_1


(Bill Geyer) #5

Chris,
I can see how the H3-140 helps with keeping the servo rates equivalent but I fail to see how coupling due to the servo arm circular motion is eliminated with the H3-140. Now that I see the thunder tiger implementation, I agree that would reduce or nearly eliminate the coupling. However a H3-140 swashplate alone would still suffer from coupling due to circular arm motion. Certainly a similar set up for an H3-120 as the TT would help reduce but like you point out, there would still be some coupling due to servo rates.

Looking at the TT set up, that brings up a good point about my planned implementation. My current implementation assumes the servo arm is directly connected to the swashplate linkage or the arm length for the bell crank and servo are the same. This technique would have to be adjustable and is dependent on the bellcrank or servo arm connected to the swashplate linkage.


(Chris Olson) #6

It is kind of a unique setup for the TT. There is 3mm lock rods that goes thru the arms and holes in the frame to center everything and level the swash. Then the servos are started up and centered at 1500, H_COL_MID is set at 1500 and you lock the servo horns to the shaft cores.

Instead of the swash moving up to increase pitch to hover, it goes down to increase pitch. This seems to keep the linkages at more of an ideal angle to the arms. And any control input deflects one arm one way, and the other the other way, the same amount. So it is sort of self-compensating for the arm arc travel.

If it does have any interaction, I can’t measure it with a dial indicator over the full collective range I have set of -2.5 to +10.8 degrees. Measuring the collective change on either roll or pitch input the needle on the indicator, with the plunger on the swash ball, stays at whatever it is measuring for collective travel, and does not vary even with the width of the needle, which is <.0005" (five ten thousandths of an inch).

My H_COL_MID is at 1500, H_COL_MAX at 1660 to get 10.8 degrees. So it’s fairly quick on the mechanical rate.