Jan 04, 2013, 07:53 AM Life begins at transition Australia, WA, Perth Joined May 2007 3,509 Posts The ones I've seen use a closed-loop method. What's you've described is open-loop, not too far away from pitch curves. If you don't want to use any more hardware, you'll need to monitor one phase of the ESC. Bruce Abbott has a quick and easy method here: http://www.rcgroups.com/forums/showthread.php?t=1006124 It will give a pulse each time a phase is fired. From there it's pretty easy to implement a speed control loop.
Jan 04, 2013, 08:53 AM
Hamburger
Joined Jan 2010
788 Posts
thank you for your input.
Quote:
 Originally Posted by Odysis The ones I've seen use a closed-loop method. What's you've described is open-loop, not too far away from pitch curves.
I am not sure to understand what you mean by closed-loop vs. open-loop in this context. Actually I monitor for changes in pitch curve and compute some temporary throttle addon term from that.
See attached snapshot below. throttle curve is 0-50-70-70-70, pitch curve is 30-40-50-60-70. From left to right: I move throttle stick slowly all the way up (increase throttle and collective pitch signal), then back off some to about 70% stick range, then do quick pitch pumps.
brown = incoming collective pitch signal
green = computed governor throttle addon
magenta = incoming throttle signal
black = resulting throttle (2+3) output signal

Quote:
 If you don't want to use any more hardware, you'll need to monitor one phase of the ESC. Bruce Abbott has a quick and easy method here: http://www.rcgroups.com/forums/showthread.php?t=1006124 It will give a pulse each time a phase is fired. From there it's pretty easy to implement a speed control loop.
ok. that will make for some interesting reading. Would it not result in re-active governor, which counteracts reduced rpm _after_ is is already gone down?
I had the notion to try what marketing seems to call pro-active; when I see the signal coming in to increase collective pitch, then I know in advance this will increase load, so before it occurs I can in advance increase headspeed?

# Images

View all Images in thread
 Jan 04, 2013, 08:18 PM Life begins at transition Australia, WA, Perth Joined May 2007 3,509 Posts Pro-active is what I'd call feed-forward in the speed control loop; in order to get feed-back though you'll need to monitor the RPM too. Feed-forward only is what we used to do (and lots still do) with pitch curves in the radio. That looks to be what you're talking about here, but doing it on-board the heli rather than in the radio. Feed-back is a system that constantly compares the actual RPM to the desired RPM, and adjusts throttle as required. A good feed-back only gov will hold a head within 1 or 2%. Putting both together will give you the best of both worlds, and I'd expect in the order of 0.5% error (if the ESC can keep up with the commands on only 50Hz. The multicopter guys are using 400 for that reason)
 Jan 05, 2013, 06:24 AM OlliW Joined Sep 2009 1,209 Posts following-up/summarizing a conversation I just had with hamburger per PM I too, like Odysis, think (I am actually quite sure about that) that a governor is based on a controller (= closed loop, = feed-back), while everything hamburger suggested is "just" steering (= open loop, = feed forward without a controller). He apparently has "predictors" in mind which are more complex than simple mixers as found in transmitters, which e.g. involve some time constants, but nevertheless these concepts are "just" open loop. I don't think that an open-loop concept will work well in general. This is because an aircraft, and a heli e.g. in particular, can be in so many different and complex flight situations, and it is virually impossible to deterime them all correctly from the few information which is available, and hence to project from them onto what one should do next. For few specific flight situation it might work, but one would have to limit oneselves to these few flight conditions. Even with a rpm sensor and a controller build around it, I think the result will be less good as with the governors build into an ESC, simply because of the control loop update rate. Using the ESC input, the update rate may, e.g., be 400, 500, or why not, even 1kHz. However, an internal ESC can operate on the frequency of electronic commutation, which is rather more like 10kHz. cheers, olli EDIT: having said this, I still think that thinking about the proper controller structure for a governor is interesting (at least I think about that). So far I have seen people using PI controllers for this purpose. However, if you look up motor speed control you usually find 2 nested loops, one inner for current and one outer for rpm. I must say I have not really understood what the advantage of this nested-loop concept would be for our purpose (except the common knowledge that nested-loops often can perform better)... Last edited by OlliW; Jan 05, 2013 at 06:30 AM.
 Jan 05, 2013, 06:59 AM Life begins at transition Australia, WA, Perth Joined May 2007 3,509 Posts [OT] The inner (current) loop is used in most commutation schemes instead of bEMF sensing - SVM, FOC etc all use current vectors rather than voltage. Without a current sensor, as most of our ESC are, it's not really useful. With FOC, you can get a higher efficiency out of the motor, but at the cost of a lot of processing overhead. [/OT] A proper feed-forward enabled gov running at the commutation frequency (i.e., the ESC would take two inputs) would be ideal, but it'll be a while before anyone starts writing custom firmware and mod'ing hardware to do that. Would be nice though!
 Jan 05, 2013, 07:27 AM Hamburger Joined Jan 2010 788 Posts ok, I understand having a hardware sensor measuring the true rpm and feeding it into a regulator/controller (that is what you call closed-loop, right?) would be advantageous. What I try to do is go beyond fixed throttle&pitch curves in tx and get as far as possible without additional hardware (just use the computing power already available); the result is yet to be seen. The difference between the former approach with pitch and throttle curves in the tx and what I try to do is I want dynamic (over time) throttle behaviour. The way I did use fixed curves in tx was pitch:0-3-6 degrees & throttle 50-70-90; so throttle was somewhat proportional to pitch. Biggest drawback for me was for higher pitch values the throttle had to be higher than was really neccessary for running that pitch. Such (too) high values were required to compensate for the momentary drag during the increase of pitch, but were mostly not neccessary for sustaining rpm at that higher pitch. Now I try to build something to overcome that effect. For this, throttle will be composed of 2 parts: 1 - a constant value taken from a (ideally) flat throttle curve (say 70) plus 2 - a variable component which is proportional to pitch _change_. You may be right this will be very limited to certain flight situations. As I am coming from a fixed pitch multicopter background my demands may well be below what you expect from a governor. Could you give a few examples of flight situations where you expect a decrease of rpm, unless a constant-rpm-governor would change/correct the motor signal to counter that decrease? For me that is mainly two a) increased collective pitch - incuces permanently higher drag b) change in collective pitch - induces momentary higher drag Thanks for your insight.
 Jan 05, 2013, 08:02 AM Life begins at transition Australia, WA, Perth Joined May 2007 3,509 Posts In a hover, you'll need a certain amount of throttle (torque) at hover pitch. As you move into forward flight, without changing pitch, the torque required reduces. No open-loop system can compensate for that, and so head RPM will increase. Vice-versa for FF->hover. Climbs and descents (especially in vortex ring) have their own similar changes in Tq vs Pitch. You'd need quite an advance model of the whole heli (including airspeed and altitude) to compensate for them... Grab a YGE ESC - the gov is pretty tight!
 Jan 05, 2013, 08:06 AM OlliW Joined Sep 2009 1,209 Posts roll, flips, piros, all this in reverse flight, all this in up-side down, piroflips, funnels, hurricanes, tic-tocs, tornados, piro pogos, koobs, ... ... ... ... ... ... ... (not that I could do this all myself, but... ) http://www.fly3dx.com/setManoeuvres.php
 Jan 05, 2013, 08:16 AM Life begins at transition Australia, WA, Perth Joined May 2007 3,509 Posts yeah, I can't do that either!
 Jan 05, 2013, 08:16 AM Registered User United Kingdom, Bristol Joined Aug 2008 1,645 Posts I'm not sure if you know about https://github.com/bitdump/BLHeli does have governor option. Started with AVR up till version 3(i think) and now Version 9+ Sillabs only. Fully featured interface can even use Arduino to flash Silabs BTW you can blame OlliW for Arduino programmer/interface!!! Cracking job he's done there. Last edited by SadSack; Jan 05, 2013 at 08:22 AM.