This is a summary of my Arduino project to replace the faulty, mechanical governor on a home generator with an electronic version. This may not be the classic "how to" article but should have good information on parameter detection, evaluation and control. This could also be an engine governor since a generator is just an engine coupled to an alternator (AC power generation machine) in this case.

Some background, I live in a large suburban sprawl of the US east coast. Although the electric power grid in the area is excellent our immediate neighborhood has issues. It has become a question of not whether the power will go out but how long until it is restored. As a result I installed a home generator system.

The generator is a Briggs and Stratton 12kw standby generator. It has a Vanguard series V-twin engine displacing 627cc or 38 cubic inches and is connected to the home's natural gas (NG) supply. The alternator is set for 60 Hz (or 3600 RPM from the engine) and 240 VAC. An electronic control module (CM) in the generator senses utility voltage loss to start the generator. CM monitors oil pressure, oil temperature and faults, i.e. under/over voltage, under/over RPM, no start, battery charge fault etc. and will shutdown the generator should a problem arise. The CM has nothing to do with RPM governing.

The generator purchased used but in very good condition. It worked well for several years but began to have an RPM governing problem. RPM would hunt or over speed resulting in a shutdown. RPM oscillation or hunting in a generator causes voltage fluctuations as the voltage regulator can only react so quickly. The Vanguard engine uses a mechanical governor with flyweights but it is in the engine block and difficult to work on. Outside the block is a dual spring tension arm system connected to the carburetor throttle linkage. After some troubleshooting, the governor springs were replaced with a simple throttle linkage to control RPM. The engine ran fine when using a fix linkage. A professional wanted over $1000 to repair the governor which was too much for a 10 year old generator. Thus began the process to replace the mechanical governor.

WARNING: Read carefully before conducting a project of this type.

Do not to attempt unless you are very familiar with 240 VAC power, a natural gas fueled engine or moving machinery. If you are not comfortable working with any of these items or how to protect yourself from the dangers please do not attempt!!!

Step 1: Governor Basics

There are three types of governors in the small engine market; pneumatic, mechanical and electronic. Small engines are lawnmowers, pressure washers etc., with engines in the 100 cc-1000 cc size. Lawnmowers may have a lever to control engine speed manually or a pneumatic governor for constant RPM. A pneumatic governor usually has a vane that gets pushed by the air from cooling blower (attached to the flywheel). The vane has a carburetor throttle linkage and a spring to set tension which governs RPM. Mechanical flyweight governors are very reliable but difficult to repair once they do break since they are usually in the engine block. Finally, electronic governors read RPM, make some calculation and actuate the throttle. These are usually only on more expensive engines. An electronic device had the advantage of mounting components external to the engine and not have to take too much apart.

The pictures are a view of the engine and the throttle linkage and carburetor. The flyweights (not in picture) turn the governor output shaft which moves the governor arm. The arm movement and forces are balanced by the primary and secondary spring. When running, an increase in engine RPM will move the throttle linkage which begins to close the butterfly valve thus reducing air and fuel intake. In normal operation the governor arm moves very little and mostly due to changes in load meaning turning items on or off in the house.

Step 2: Actuator Type

A project of this type will take a great deal of research. DIY electronics have many websites containing a vast amount of information. Raspberry Pi and Arduino seemed to have the most information and support available. I had previously built my lawn sprinkler controller using Raspberry Pi and rszimm's Sprinkler Pi software so thought about going this route. One comment on Arduino forums defined everything. One of the moderators replied to a similar inquiry on what hardware to use saying Arduino was very good at doing simple tasks very fast. That was exactly what was needed.

I also had some exposure to stepper motors in college so this seemed the next choice to control the throttle. Again the forums had a great deal of information on similar projects. I was not as familiar with DC linear or rotary actuators so I decided to stay with steppers.

Space is limited so the actuator would have to fit in a tight space and be heat tolerant since it is in the engine compartment. After some research it looked like a NEMA 17 stepper motor would fit. A fit check using a NEMA 17 bracket, as seen in the picture, was the initial check. Based on NEMA dimensions, the stepper would fit also. Notice the throttle linkage and springs are removed.

Step 3: Sensing RPM

Next research task was how to sense engine RPM and what to use. For this application there are four methods that could work ; a frequency counter using the alternator's output, a Hall effect device, a spark plug voltage detector or an optical device.

Using the alternator's AC output would pose difficulties since that involved working directly with 240 VAC. While I was comfortable doing this I did not want to risk this voltage getting to the electronics if something was connected incorrectly. Additionally, incorrect wiring near the 240 VAC poses a risk for the user (in this case me). A power regulator converted 240 VAC to 12 VDC to power CM. I decided to keep the entire project on the 12 volt DC side of the electrical system but this meant it could not be used to measure RPM. Again, DO NOT EVER work with 240 volts unless you know what you are doing. This voltage is lethal!

A Hall sensor would be simple to use but finding a mount location would be a challenge given the tight working space of the generator enclosure. This engine uses a magneto for ignition. These ignition systems mount the magneto coils around the flywheel and magnets are part of the flywheel. The flywheel is also the blower for the air cooled engine. The cooling air is routed under the engine housing to the cylinder fins. Mounting the Hall sensor under the housing near the magnets could work if a suitable location could be found. It came down to ease of access and space. There was no good location under the engine housing that would be easy to access.

Trying to detect the very high voltage to fire a spark plug can be done but poses challenges. The magneto creates a field that generates the voltage. The voltage is high but has little current. The pulse is very narrow, milliseconds at best. Trying to detect without risking the electronics to high voltage exposure was another complexity to be avoided.

The Instructables Website has a discussion on IR sensors for similar purposes. The IR TCRT5000 modules had good results based on the website articles as well. Either a reflector or interrupter scheme would work. Both would be used, interrupt on the prototype and a reflector on the generator itself.

Step 4: Building a Prototype

The prototype evolved over a period of several months but was basically an engine simulator connected to an Arduino driven governor. The major parts list:

Arduino Mega 2560 w/LCD Shield

Nema 17 Stepper w/bracket

DIV268N Stepper Controller (TB 6600)

PWM Voltage Controller w/potentiometer

12 vdc computer case fan

TCRT 5000 IR module

IR reflector (a mirror)

6 x 6 x 1/2 inch block of Teflon

12 VDC bench power supply

Each picture show the testing at different times but the operation was the same. The PWM voltage controller was the "carburetor" and the fan the engine. By replacing the PWM potentiometer knob with a Teflon arm the throttle arm on the real carburetor could be simulated. As the arm moved the voltage changed and the fan changed RPM. Although not a perfect simulation, let's hold off on the natural gas carburetion and engine inertia discussion for later.

The stepper is driven by a DIV 268 controller. There are plenty of other posts and articles how to interface an Arduino, DIV268 and stepper to review if required. Both half and quarter step increments were used to improve RPM control. More on that later as well.

The fan and the PWM controller are the engine thus the "plant" of this process. The reflector (actually it is an old drive platter) and the TCRT are the RPM sensor system. As the blades pass the IR beam, they break the reflection to the IR sensor on the TCRT. The digital output on the TCRT was sensed by an Arduino digital port to compute RPM. The TCRT has both digital and analog output at 5 vdc. Since this would be a time sensitive process the digital output was used as the Arduino digital read is much faster than analog read.

The limit switch was used to set a starting position for the stepper. From here it would be positioned for engine start once in the generator.

The Teflon was used for the prototype since it is easy to cut and drill to make the required actuator arms. Eventually a metal arm would be required.

Step 5: Required Code for RPM

RPM calculation would be an easy concept but would pose implementation challenges. Since a reflector would be used on the generator the RPM sketch would deal with digital HIGH signals. In the prototype this would correspond to the gaps between fan blades. As the fan spins the blades will block the IR source from the IR receiver. The digital output will go high-low-high as the blades block then clear the IR energy. The sketch is a polling style code that constantly checks the TCRT digital output, determine if it changed and compute debounce (stayed high or low long enough to be considered valid). Once the required number of gaps or reflectors had passed then the time elapsed would be used to compute RPM. The code is posted in text format and commented. Using the Arduino to compute RPM would be easy in concept, start a timer, count a required number of blades or revolutions, stop timer then calculate RPM. It sounds so easy, right?

To calibrate the code a fixed speed fan was used. The fan was fed 12 VDC from an old computer power supply so it would be close to rated RPM. Once the code was cleaned up the Arduino was reading correct RPM. The prototype used a different fan that responded better to the PWM voltage changes for RPM control.

The fan had a maximum speed of about 2000 RPM at 12 volts. The project needed to govern 3600 RPM. Since the fan has 7 blades just change the software so it thinks there are 4 blades and you have 3500 detected but not actual RPM. This is similar to using a multiplier.

Some required reading on how to do this can be found in several sources that were used in this project:

Frequency Period Counter http://www.avdweb.nl/arduino/hardware-interfacing/frequency-period-counter.html

Frequency Measure Library https://www.pjrc.com/teensy/td_libs_FreqMeasure.html

Arduino Debounce Library http://playground.arduino.cc/Code/Debounce

Arduino Pulse In Function https://www.arduino.cc/en/Reference/PulseIn

Step 6: Controlling Prototype RPM

If you are using an electronic governor with a stepper then the best method is probably PID. A source that I found VERY helpful was Brett Beauregard's Improving the Beginners PID:


His implementation is more general and this project is a subset of that. This is for a fixed RPM engine thus no set point changes are made. I did add a manual throttle control and would have to zero the integral term prior to reengaging the PID routine. The biggest change was the PID term was the change in throttle rather than the throttle position. You can read publications for calculating the coefficients for PID but when installing in a project some "plant" knowledge is required. Let's cover the prototype for now.

An electronic governor using a stepper motor is a discreet controller, the motor can only move in whole steps. How fine the mechanics of the step are project dependent. With proportional control, the P term of PID, the value of Kp determines when to move the stepper. For this project the set point is 3600 RPM. The goal of a generator is to keep the frequency of the electric power 60 hertz with a tolerance of 1 hertz. That is 3600 +/- 60 RPM. Kp would be 0.0167 or 0.0167 x 60 = 1. At 60 RPM off set point will result in a throttle correction term of 1 to the stepper. The mechanical linkage, see prototype pictures, must actuate the throttle to change RPM by the same or a little less. If a 60 RPM change drives a single motor increment and the RPM "corrects" by 200 then the process will be unstable. A finer stepper is required, i.e. change from full step to half, or the mechanical linkage must adapt. In the prototype pictures the two Teflon arms are about the same length which worked on the prototype but would cause problems in the generator.

This is where manual control of the stepper in the prototype was required. It was necessary to determine how much one step increment would cause in RPM change. Since the arms were Teflon holes could be drilled to move the linkage closer to the pivot point. If the stepper arm was short and the PWM or throttle arm were long, the stepper would have less change in RPM. Ultimately the combination finer stepper movement and mechanical linkage must produce a stable response.

For the prototype control was easy. The PWM controller was very precise, the fan had no inertia, i.e. nearly instant RPM correction for voltage change. Kp could be as high as 0.03 or just over 30 RPM. Ki would start at one tenth of that and increase until the oscillations stopped. The differential term was never used. Most practical application are P or PI control.

Step 7: From Prototype to Generator

The first picture is the engine flywheel and air blower fins for the air cooled engine. There are bolt holes around the engine housing and on the blower. These are normally used for grass screens in commercial lawnmowers. They would serve as a great mount the TCRT and a reflector. The reflector is a polished aluminum bar mounted to the flywheel. It was statically balanced so as not to create additional vibration. As the engine starts and runs it vibrates and moves. The initial ignition of the engine causes a quite a bit of movement and requires at least a half inch standoff for any detector. This is why a Hall device would not work. If the Hall and the detector were too close they could contact each other. The IR system allows about one inch of standoff. In the second picture another aluminum bar holds the TCRT module steady while the reflector bar spins with the engine. This is slightly different than the 7 fan blades but the concept is the same, find and count reflectors, stop timer, compute RPM. To calibrate, attach a multimeter to the AC power output of the alternator and set it to read hertz. The only calibration needed was setting the de-bounce interval to know what was a reflector or not.

The third picture is the install of the stepper and old governor bracket. The limit switch is gone, it wouldn't fit. The fourth picture shows the hard stop, the rusty bracket on the left. The stepper would move counter clockwise until it contacted the stop and that would set maximum open throttle. From there starting position could be set.

Step 8: Governing an Engine

Governing the prototype was very simple. The generator was not. A natural gas carburetor has no choke and works differently than a gasoline carburetor. In short the butterfly valve should be open to allow the natural gas begin to draw when the engine starts. This is too much fuel initially and the engine will over speed. Starting and idle throttle position must be determined manually and set into the Arduino sketch. Additionally the engine maximum safe RPM must be determine from manufacturer's literature and never exceeded. The Arduino must check start RPM on a short interval. Once RPM begins to build, in this case > 1500, set idle throttle position. Again, if you are not familiar with engines don't do this as over speeding one can be destructive.

The picture is one from testing. The governor is in Auto (using PI control), 3678 RPM, 993 was the analog read for engine case temperature but was wired incorrectly. Next line is throttle position at 32, 0 change last RPM computation, and the sketch has been running for 13 minutes.

No load (generator not powering the house) testing determined Kp = 0.012, Ki = 0.0016 and half second between RPM computation or a count of 30 revolutions. The stepper had to be set to quarter step for throttle precision since full step was too coarse. If RPM was evaluated on a shorter interval the engine would still be accelerating to from previous throttle changes which would cause hunting. Engines are difficult to regulate at low throttle settings. By looking at a butterfly valve it can be seen how small changes in throttle arm causes bigger changes in butterfly valve flow area (cross section) in the intake. Ultimately no load RPM governed very well.

The main sketch is posted warts and all. The big section are RPM sensing (Turn Count), GovernorPID and the stepper control (Motorstep). Motorstep was a modification of the Arduino sketches.

The last picture in this step is the entire project. The relays and wiring was mostly 12 vdc switching and control to protect the electronics from the voltage spikes caused by the start and charge cycle of the battery and engine. Those are not discussed as they are very specific to this Briggs and Stratton engine. Each project would have to work out its own power supply issues.

Step 9: Conclusions and Observations

Sometimes bad things happen to good projects. As things moved towards load testing the generator experienced a malfunction. Troubleshooting is incomplete and the project has been sidelined indefinitely (time factor right now).


A 200 step per revolution motor is sufficient for throttle control if balanced with proper linkage. A geared stepper may work but when using a hard stop to set initial position may over torque the linkage and damage it. I would have set the linkage on this project for finer control.

Throttle position must be determined for proper start. Real time position monitoring is not required but limit switch or hard stop is needed initially.

IR RPM sensing worked very well far an engine that moves a bit when it starts.

Arduino is very capable of handling engine governing.

Generator governing is more challenging than something like lawnmower governing. Controlling RPM thus voltage to the house is critical. A lawnmower could probably use just P control (simple governing) whereas the generator would used at least PI maybe PId, meaning the differential term would have less authority than PI. There are books written on this which have detailed explanations.

Where I would have gone on PID control:

Finer throttle control with quarter second (15 revolutions) RPM evaluation. Kp between 0.012 and 0.015. Ki 0.015 to 0.020 and dead banded. Dead banding is where small errors in the plant are ignored to keep down on too many control inputs. The integral term is steadily building even if RPM is off only a few RPM. It can cause RPM oscillation whenever the control can't achieve exactly the setpoint. For example, if the current throttle position and generator load balance to 3570 RPM (0.5 hertz off) it would be better to hold this if steady than let the integral term keep. To prevent this do not add to the integral term if the RPM is within 30 of the setpoint. This will keep the RPM steady but not exact thus allowing the voltage regulator some control as well.

The differential term is a different animal. It is about managing droop for the largest load hitting the system. I would have added Kd but put a cap on the amount keep the engine surge bounded to prevent Kp/Ki fighting with Kd. Differential control is good for load changes but once the engine begins accelerating it must be washed out to prevent RPM overshoot.

I hope this information proves as useful to others as the many DIY communities proved useful for this project.

Step 10: Epilogue

The malfunctioning generator and I will part ways. It has a for sale sign on it.

I did buy a replacement however, newer and bigger. During the installation process I discovered something that put a smile on my face, see picture. The stepper is on the case and not on the engine, meaning not subject to engine heat. Maybe I was going the right direction. I guess the project didn't turn out so bad after all.

A final note: As the US east coast feel the distant effects of Hurricane Joaquin the new generator is purring away in the backyard. I have stopped counting how many time the lights go out in the last few days. Watching the AC voltage or frequency the subtle changes correspond to small changes in the engine RPM. If I had to guess I'd say the pattern is a PI controller with minimal differential. No proof, just an observation.

A good start to an interesting project. I will be interested to see how load testing goes. In trying to use an Arduino for small engine governing I was unsuccessful as it just didn't react fast enough to changing loads (refrigerator kicking on or off). The PID would spool up and overshoot the target RPM when the load suddenly increased. Perhaps a software issue on my part, but I lost faith in the application. I hope you can get it working!
<p>Regarding the load changes when the refrigerator comes on/goes off...</p><p>I had a generator that monitored AC output current. When there was a change in current, a boost was inserted in the pid circuit. This instantaneous change in the control throttle control signal was early enough to boost the engine before the load pulled down the rpm. That minimized the deviation from setpoint.</p><p>Now, if the PID experts will jump back in here and give a hand to clarify what I am trying to say.... I think it is called dual-element control. Delta-I is inserted somewhere in the PID Loop. Of course the gain of the Delta-I determines how much boost is inserted. (boost works both ways; positive boost when current increases, and negative boost when current decreases).</p><p>Yes, it gets more complicated. But, It's just a bunch of software.</p><p>Have fun!!</p>
<p>Your load to generator output could be an issue. If you load is more than 75% of your gen's capacity it may not keep up no matter the control. Large motors are problematic as they have even bigger start loads, LRA/RLA and the alphabet soup of electric terms. I personally wouldn't want to load a gen more than 50-60% steady state to allow some additional capacity for start response.</p><p>RPM overshoot is OK as long as it damps out. Most books discuss the balance between response time and overshoot. To respond quickly the RPM will overshoot once and may undershoot before damping.</p><p>For PID or PI control never let your Ki push around your Kp. Because Ki builds it takes time to diminish so Kp has to negate Ki once RPM goes to the other side of setpoint.</p><p>Finally, knowing your maximum droop and RPM change to throttle step response can help in bounding throttle change with RPM decrease.</p><p>Good luck!</p>
<p>Could you be more specific?</p>
<p>Whats a droop?</p>
<p>Is this a test or did you not want to look it up?</p><p>Droop is the steady state deviation in the proportional term to correct the system. If your P-correction can on change RPM by 100 per throttle step then the deviation or error from setpoint will never be zero. As the Integral term builds it will eventually move the throttle. This may cause an oscillation while the controller &quot;brackets&quot; the setpoint.</p>
<p>Oh. Thanks. I didn't want to look it up.</p>
<p>How much you want for the dead geni?</p>
<p>Check PM.</p>
<p>When Hurricane Sandy hit the east coast. The gas utility, in order to avoid liability, capped on the natural gas lines on individual homes and shut down the system. I heard this from a friend who had relatives there.</p>
<p>I can't speak for other utilities but Virginia Natural Gas has never secured service in this area. The recent rains in the Carolinas caused a good deal of problems. Lost power over 5 times, some for a few minutes. Two outages were hours each. An NG gen is the best way for this area.</p>
<p>A great instructable - just up my street. I took a BSc Chem Eng degree and learned the mathematics of PID control loops. Now I play with Arduino microprocessors to drive Meccano (called Erector in the US) cranes. </p><p>I use NEMA 17 stepper motors like your did. It is easy to step down the speed with Meccano (Erector) gears available on eBay, check for items like &quot;Meccano 15/60 tooth gear pair in good condition&quot;, for a 4:1 reduction. The axles are 8 SWG steel rod (0.16&quot; diam.) also available on eBay. These gears are exactly 1.5&quot; between centres. If you replace your L shaped mounting bracket with a U shaped one with the legs about 1&quot; apart and drill through for the axle you'll have a 4:1 gear box in a jiffy. You'll need to drill out the 15 tooth gear to 5mm to fit the stepper motor shaft. Also need a couple of &quot;collars&quot;, also available on eBay to locate the axle. </p><p>Douglas Laing, Johannesburg</p><p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/XEfsP7VXTmk" width="500"></iframe></p>
<p>ok here the problem with a natural gas line. if the pumping stations shut down during a power outage an fial to power up. you can cause the hoses to collapse on them selves. those a very costly replacement / repair. it best to go with propane.</p>
<p>The pumping stations have their own power backup. I have never lost natural gas (NG) even during hurricanes.</p><p>The generator has it's own regulator and an carburetor that will not allow a vacuum on the line. No collapse risk.</p><p>For this area NG is much cheaper than propane. Since propane is a product of the crude oil and NG process it's price tends to fluctuate.</p>
<p>Cool idea but wow did you ever over complicate it! I will use your idea, but a different design, if my generator ever goes crazy!</p>
<p>Over complicate? Please explain.</p>
First my generator is working so I don't need to start on a design but I'd use a transformer to step down the 220V to say 5v. Then a Frequency to voltage converter to drive a servo motor.
<p>The system you describe is the Briggs and Stratton Performance Control Electronic Governor. US Patent 4875448 A is one of many B&amp;S patents in the small engine world and discusses some of the issue involved with servo control. While I understand the principles described I was not familiar enough to do it myself.</p><p>My approach was to replace the digital/analog circuitry with an Arduino and software. I thought this was a simple approach. One mans complexity is another's simplicity.</p><p>The one point I don't understand in an electronic analog governor is how to control set point via a reference signal. Similar to the mechanical governor, there is no set point only spring tension.</p><p>Good luck!</p>
<p>Thanks for the post . I have a Chinese made 6.5KVA that has completely folded on the control side . Nothing wrong with the Motor and generator just the control module . Trying to make use of it again . Hope to use this as an aid to set mine up. I'll be a while but I'll add my experience here anyway over time and do a write up if I am successful.</p>
<p>Just asking questions, not making suggestions. </p><p>I have to admit I'm a bit out of my comfort zone on this one and I might be running off at the mouth (well maybe finger tips anyway) but since you are using a stepper couldn't you direct connect it to a ball screw as your linkage or maybe use micro step and balls crew with a fulcrum combination? Then there is induction voltage sensing as in clamp type voltmeters where you wouldn't have to worry about 'messing' with high voltage. Can frequency be checked by induction? </p><p>I'm at a loss on how to implement my questions, just curious.</p>
<p>Great question on ball screws. I definately needed more throttle motion precision for this project. One motor I tried was a Haydon Kerk Lead Screw. It had 200 steps per rotation and a 3mm pitch screw. Very fine control but slow. I never installed it on the generator due to the slowness. Where you need the reaction speed is when a large AC load hits the generator, i.e. when central air conditioning turns on. The large load drags the RPM down rapidly. Newer generators, like the one I have now, have a stepper which can open the throttle quickly.</p><p>I don't know about frequency computation using induction. I really wanted to stay away from the 240 VAC as much as possible. For this type project I would stay with an IR or Hall sensor for RPM.</p>
<p>have been looking into CnC for my mill and router hence the ref to ball/lead screws. Some really fast servos out there but it's mute now that you've moved on. Someday when I finish the projects I have going I'm going to get stuck into CnC seriously but there's still a lot of research to do before I spend the big bucks.</p>
<p>K.I.S.S. works! Try using this to detect frequency off of a &quot;AC Wall Wart&quot; </p><p><a href="http://www.circuitstoday.com/zero-crossing-detector" rel="nofollow">http://www.circuitstoday.com/zero-crossing-detector</a></p><p>or a Zero Cross Detector IC to drive the Atmel or other microchip. Or could be used to Directly control a simple Motor Driver IC. Like the concept/project - BUT Many ways to get the same place! Why not also use the microprocessor als to Auto Start and connect the Generator? AE6JI.com Larry 73's!</p><p>SEE StopCommonCoreNC.com and Facebook Refuse to refuse Common core Get involved, today - this IS a Nazi youth program, being instituted worldwide, under different names. LEHenson.com</p><p>USA: become a Ham Radio operator: QRZ.com practice tests: Tech, General, Extra Class - no Morse Code!</p>
<p>Congrats for the whole undertaking of the project.</p><p>May I suggest another way to reach the same results,quite differently,and maybe cheaper in the end.</p><p>Convert your generator to an inverter generator.A rough description follows.</p><p>Let us suppose that we are temporarily unrestricted from the &quot;obligatory&quot; 60 HZ.The load is replaced by a suitable dummy resistor,not frequency dependent.</p><p>The engine can reach a higher RPM level,for some limited time,to cope with an overload.Delivering a considerably higher power level -maybe 20KW(condition A).</p><p>The engine can as well work at idle speed,delivering a much lower power less than a KW,needed for a quite considerable amount of time.(condition B).</p><p>The generator, between these two conditions,will produce some electricity not directly usable in the house.</p><p>We select a suitable Sine Wave Inverter,50-300V input,and 240VAC 60HZ output,of say 20KW peak load.</p><p>A much less stringent governor is now needed,to keep the output voltage in the 240 VAC level. </p><p>We may now remove the temporary resistor,and operate the generator with either just a few bulbs burning (idle speed)or a full load of 13KW,as rated,or even more,20KW temporarily, (full temporary speed maybe around 4500 RPM).</p><p>Considering that the 13 KW generator will mostly operate at a considerable lower average power level,my above proposition results in a much lower engine wear,much lower fuel consumption,and considerably higher peak load.</p><p>I have not calculated the benefits in money,but for sure the cost of the inverter will be covered by the saves made. </p><p>Your comments greatly appreciated.</p><p>John</p>
<p>Certainly there plenty of smaller invertor generators sold. Most are smaller &lt;5k but produce very clean power meaning a good sine wave. They are very expensive and still run at 3600 RPM which I'm guessing still have an alternator but use an inverter to clean up the wave. I don't know much about these generators.</p><p>Bottom line is a conventional generator (engine and alternator) is not very expensive to produce and doesn't run much in a home standby system. I'm not sure if the initial expense would pay off in the life of the unit.</p>
<p>DC output is probably not the best way to regulate the the engine speed since it is not directly related to the load you are controlling. I cannot see the DC output changing enough to allow speed control especially since it is voltage regulated. The best would be from the AC line. You can put a small AC 240 or 120 volt transformer with a 12 or a 6.3 volt output on it and use that low voltage to determine RPM. From that you can connect a peak detector to the low V and get a very nice digital signal for the computer. Plans for peak detectors can be found online and use one op amp IC and are very simple to build.</p><p>As for the throttle have you thought about vacuum? That is what the cruse control on cars uses to control speed. In some there are a series of bleed plates that have progressively smaller size holes that regulate the vacuum and allow positioning of the throttle servo. You might want to look into a junk yard and consider a vacuum servo. </p>
<p>DC was used only to power the project and sense RPM. IR was used to sense the passing of reflectors and the Arduino would count and compute RPM.</p><p>Yes, the 240 vac would work. When using 240 you MUST plan on things going wrong. If the wire were to ground return path and current must be taken into account. A complexity I wanted to avoid.</p><p>Vacuum would work since some lawnmowers use pneumatic governors. It does have some delay and this project needed minimal delay. Ever drive an older car with vacuum cruise control? If it could keep speed within 5 mph it was doing good.</p>
<p>You are reading RPM with an IR right?! When i tried this i have much interference from ambient light... in my case i resolved using an magnet and a hall sensor... works fine and precisely.</p>
<p>The IR detector is covered by a sound attenuating cover which prevented sunlight interference.</p><p>A hall sensor will work as well but due to engine motion issues discussed was not optimal.</p>
<p>A very good instructable. Also thanks for sharing all the possible alternatives you considered for the design.</p><p>If I were to do this, I would have done a few things different.</p><p>1. there are three arc shaped projections in the flywheel. I would get a PVC pipe whose ID or OD matches with the arc projections and use super glue to couple the pipe to the flywheel/blower making sure its centered and square. I would drill two holes perpendicular to the pipe's axis and across the pipes diameter. This would enable me to use an interruption based IR sensing. The IR light would be passing through the holes drilled and so will give two pulsed per 360 degree rotation. This method would also extend the shaft to the required length and would also be self balanced.</p><p>2. I would have used a DC geared motor and couple a potentiometer to its output shaft. This would form a closed loop system controlled by the arduino. I would also have used a mechanical coupling that would match the ranges of the throttle movement and the potentiometer ie if the throttle valve has a movement range of say 90 degrees and the potentiometer has a 300 degree rotation, I would have used a mechanical coupling such that when the motor rotates ~300 degrees, the throttle moves/rotates 90 degrees. This would give me more resolution.</p><p>I think a servo could also be used instead of DC motor+potentiometer, but I have never used servos before.</p>
<p>really Nice Work! Another way to count the rpm would have been to measure the frequency at the generator output. With a circuit to adapt voltage to the arduino of course.</p>
<p>Very impressive work. This is a great first instructable; I hope you'll share many more on whatever you're making/fixing/doing! :)</p>

About This Instructable




More by stepchild:Generator Governor 
Add instructable to: