Overshot waterwheel hydroelectric power system analysis

Last update: 20 July 2022

Introduction

This notebook examines the construction of a small hydroelectric system built by Michael Loftis [1], a YouTuber, real estate and insurance broker, who had a hydro system built for his off-grid cabin on 50 acres in the Ozark Mountains. The cabin and hydro system are unique and look really interesting. The cabin is available for rent as an AirBnB and is located in Thornfield, Missouri. The cabin is now advertised as having some solar panels with a gas powered generator to supplement the solar.

Michael’s hydroelectric project looked really interesting and I was curious about the technical details. In videos [6,7], which I watched first, he discusses the status of the system. I was disappointed to hear that his system wasn’t working, because at first glance it looked very impressive. I decided to learn a little about small hydroelectric systems and document in this notebook what I’ve learned.

Scope

The numbers used in my calculations were estimated by me by looking at relative dimensions in the videos, so my numbers are not the actual numbers, but should be close enough to get a general idea of how the system is working. My analysis should be considered a preliminary analysis and not a detailed design review, as such, I’ve covered a few topics that were mainly of interest to me. Other than a few comments about the dam, how to build a dam is outside the scope of what I want to cover.

Description

The small dam, waterwheel and generator didn’t charge Michael’s house battery system, as he had hoped it would. He posted a series of seven videos describing the effort [2, 3, 4, 5, 6, 7, 8]. The videos cover the time frame from July 2020 to April 2021. His waterwheel was constructed using wheels from an old hay rake, which belonged to his grandmother. The dam captured water from a spring on his property and he tried to generate enough electrical power to keep his five 50Ah, 24 volt Lithium batteries charged. The batteries are \$849.00 each. In video [7] he described his gas powered generator, a PREDATOR 3500, which he runs in the morning and evening to keep his batteries charged, since the hydro is not working.


The photo above was captured from [8] and shows a side view of the dam and waterwheel. The waterwheel is operated in an overshot configuration where the wheel is rotated by water entering buckets just past the top of the wheel. You can also see the flume, which brings water from the pond to the top of the waterwheel. In this photo, the gate to the flume is closed and the hydro system is not being operated.


The photo above from [7] shows the end of the flume and the waterwheel with a large amount of splash over. Also you can see the pulley system which when connected, steps up the rotations per minute to the generator. As described in video [6], the hydro system is not working as he had hoped.

Michael thought the flow rate from the spring during the rainy season was 500 to 1000 gallons per minute (GPM) and 300 GPM at other times [2]. In one of his videos [3] he filled a five gallon bucket in what he said was in one second, but by my estimation was closer to two seconds. This would put the flow rate at 150 GPM, but there was some spillage and the total flow wasn’t captured since he was doing this with one hand while videoing. Over the course of his videos, it appears that the flow rate is seasonal. The dam is about 4 feet tall [8] and the waterwheel has a diameter of what looks like 7 feet [5]. His generator is a 2kW permanent magnet generator, from Missouri Wind and Solar and produces 24V at 500 rotations per minute (RPM). In [5] he said the gear ratio was 8:1, but was lower initially, since two belts were shown to have been installed in subsequent videos. During a time of heavy water flow from the spring, he showed [6] the display on the Midnite Classic 200 which indicated 40 Volts at the house and 40 Watts of power from the hydro system. The power cable running to the house is 220 ft from the waterwheel.

My main criticisms of his hydro system are that the dam appeared not to have been built to any minimum standards and that a feasibility study was not done. Most of the work and design was performed by Jerry, his builder, a very skilled craftsman. However, I don’t think Jerry has sufficient technical training to design a small concrete dam. A basic waterwheel is conceptually simple and a workable wheel can be constructed by almost anyone who has basic tools and carpentry skills. The design of the waterwheel was constrained by the size of the antique wheels that Jerry suggested could be used as a frame for the waterwheel [5]. Michael consulted with various vendors about the generator and battery system but didn’t realize that just buying recommended items from a shopping list is not a good way to engineer a hydroelectric project. A basic feasibility study would have shown (see calculations below) that about 200 Watts of power could be generated by the waterwheel, not the 1 kW he was hoping for.

Michael responded to many comments posted on YouTube concerning his project. He deflected all concerns about the design and construction of the dam, saying that he has complete confidence and faith in Jerry. By this point in the video series, the dam was built and holding water, so there was not a lot that could be done to address the comments about the dam, even if he was concerned, which he didn’t seem to be. He was genuinely interested in seeking suggestions about what could be done with the electrical system, but major changes to the waterwheel itself or outright replacement were off the table. The old wheels have sentimental value to him and he likes the aesthetics of the dam and waterwheel as they are now.

Bottom line up front

The summary, recommendations and conclusion are normally placed at the end of a paper; but in this notebook, I’ve moved them here to serve as an executive summary.

Summary

The analysis covered the following topics, which are summarized here: - Household energy requirements: the household energy requirements are TBD, but the batteries are 6,000 VAhr and this is the energy the hydro system needs to replenish each day. - Water source: spring flow rate is seasonal and a range of flow rates were used in the calculations - The dam: comments were provided concerning the dam construction and spillway - Power production vs flow and head height was calculated and determined to be about 220 Watts at 300 GPM. - Flume flow rate was calculated and found to be about 70 GPM - Waterwheel performance calculations were made and the design needs improvements - Generator, pulley system and Electrical cable were examined and the generator/pulley system needs a do over. - The electrical cable is fine.

Conclusion

  • The waterwheel is a nice idea. Seems like at 300 GPM the hydro system could charge the batteries.
  • Dam and pond are a nice feature on the property, but the design and construction of the dam is suspect.
  • A feasibility study using some basic math and science should have been done.

Michael’s system was not working for the following reasons:
1. flume was delivering insufficient water flow, 2. waterwheel RPM was too high and the buckets could not capture or hold the water and 3. a high generator RPM needed to produce 28 to 29 absorption volts is not sustained.

Recommendations

  • Get the dam evaluated, is it worth putting any additional effort into the hydro system when the dam has issues?
  • seepage, foundation uplifting, inadequate spillway capacity
  • remove stumps in the pond and surrounding dead trees
  • Get a better estimate of seasonal flow from the spring, this will guide any decisions about upgrades to the hydro system
  • Fix problems with the waterwheel and flume
  • Resize flume and waterwheel width
  • Look at alternate bucket designs with additional buckets
  • Consider and evaluate other generator, gear box or pulley options
  • weather proof generator and drive train
import pint
ureg = pint.UnitRegistry()
import numpy as np
import matplotlib.pyplot as plt

Units

In the calculations that follow, I’m using the Python package, Pint, which allows mathematical operations with units and conversions to and from different units. Keeping track of the units will provide some error checking when performing the calculations. United States customary units are used to describe the hydro system in the narrative. All calculations are done using the International System (SI) of units.

A list of units and conversions used by Pint is here.

Variables and constants

There are a couple of variables and constants that will be used throughout the calculations. - Q is used for flow rate
- tau or \(\tau\) is used for torque - omega or \(\omega\) is used for angular velocity - g is used to denote the gravity of Earth, standard gravity by definition is equal to 9.80665 \(m/s^2\) - rho or \(\rho\) is used for the density of water, at 50F or 10C is 999.75 \(kg/m^3\) - eta or \(\eta\) is used for energy conversion efficiency, accounts for the energy lost to heat

g = 9.80665*ureg.meter/(ureg.sec**2) # 
rho = 999.75*ureg.kg/(ureg.meter**3) # density of water at 50F or 10C, kg/m^3

Electrical energy and electrical power

Electricity generation is the process of generating electrical energy converted from other forms of energy. Electrical energy typically has units of Watt hours, which is the product of the power in watts multiplied by time in hours. Kilowatt hours is what you would commonly see on your monthly electric bill. The base units (in SI units) for electrical energy is: \(kg \cdot m^2 \cdot s^{-2}\). This is equal to the energy dissipated as heat when an electric current of one ampere passes through a resistance of one ohm for one second.

Power is the amount of energy transferred per unit time. Electrical power typically has units of Watts. The base units (in SI units) for electrical power is: \(kg \cdot m^2 \cdot s^{-3}\). Power from electricity is the product of the current flowing through the element and of the voltage across the element. However, this gets a little complicated if the voltage and current have a phase difference, then the product of Volts x Amps is a vector product. The vector product, which can be expressed as a complex number, has units of Volt Amps and the real part of the product has units of Watts. The imaginary part is called reactive power and for this power, there is no net transfer of energy to the load. Voltage and current are usually measured with a multimeter and for alternating current (AC) measurements, the RMS values are usually measured. The product of the RMS voltage and the RMS current is called the apparent power, which has units of Watts. It’s almost always the apparent power that we are talking about when we talk about the Watts needed for the household.

I’ll do my best not to mix up the usage of power and energy.

Household energy requirements

The energy requirements for Michael’s off grid cabin should have been the first topic to consider. Michael’s power requirements can be estimated from the battery and gas generator system he currently is using. The average household in Missouri uses 1,086 kWh Per Month according to this report and this web page. This is 36,200 Whr per day.

Michael’s batteries are connected in parallel. So the total nominal battery voltage is 24 volts and the total current is the sum of the currents available from the batteries.

battery_voltage = 24*ureg.volts
print('battery voltage: {:s}'.format(f"{battery_voltage:.0f~P}"))

number_of_batteries = 5
battery_rating = 50*ureg.amps*ureg.hours
house_battery_capacity = number_of_batteries*battery_rating
print('house battery capacity: {:s}'.format(f"{house_battery_capacity:.0f~P}"))
print('house battery energy: {:s}'.format(f"{battery_voltage*house_battery_capacity:,.0f~P}"))
battery voltage: 24 V
house battery capacity: 250 A·hr
house battery energy: 6,000 A·V·hr

The batteries supply energy to the house during times when the generator is not running. The available battery energy for the house, in \(volt \cdot amp \cdot hours\), is the product of the nominal battery voltage and the rated capacity. For resistive loads, \(volt \cdot amp \cdot hours\) can be considered equivalent to Watt hours.

Since hydro is not working, a gas powered generator, the Predator 3500, is used during the day to charge the batteries. The Predator 3500 has a maximum running watts of 3,000. Michael says he runs the generator about 10 hours per day (a few hours in the morning and then from dinner time until 10pm), the energy generated by the Predator 3500 is calculated below.

Photos on the AirBnB web page for the cabin show a photovoltaic installation of what looks like 20 panels. The solar panels probably are between 100 and 200 Watts each for a total of 2000 to 4000 Watts of solar power for the array. Solar is not included in this analysis.

# generator is running 10 hours per day and rated to produce 3000 watts continuously
generator_run_time = 10*ureg.hour
generator_rating = 3000*ureg.watts
generator_energy = generator_run_time*generator_rating
print('generator energy: {:s} per day'.format(f"{generator_energy:,.0f~P}"))
generator energy: 30,000 W·hr per day

The generator produces 30,000 Whr and the fully charged batteries contain 6,000 VAhr. The amount of energy produced by the generator is the amount the family consumes. We can assume that the hydro system will run continuously whereas the gas powered generator is run for ten hours each day.

But…

30,000 Whr per day seems really high, so I would question his generator run time per day. Or maybe my math is wrong.

Setting aside his generator usage, he intended that the hydro system was going to charge his batteries. So, let’s assume that his daily energy needs can be satisfied from his batteries. His batteries hold energy of 6,000 VAhr (taking a short cut and equating Volt Amps to Watts); and 6,000 Whr per day for a very energy efficient family is doable. It follows that he needs about 6,000 Whr per day of hydro energy to match his installed batteries.

print('hydro energy needed per day: {:s}'.format(f"{6000*ureg.watt*ureg.hour:,.1f~P}"))
hydro energy needed per day: 6,000.0 W·hr

Over a 24 hour period, the power he needs from the hydro system is:

print('power needed from hydro generator: {:s}'.format(f"{(6000*ureg.watt*ureg.hour)/(24*ureg.hour):,.1f~P}"))
power needed from hydro generator: 250.0 W

Battery charging

The batteries are 50Ah 24V LiFePO4 Deep Cycle batteries from Battle Born Batteries with a price tag of \$849 each. They have an absorption voltage of 28.4V to 29.2V and the recommended charge rate is 50% of the battery or battery bank capacity or less. The absorption time is 15 minutes per 50Ah of capacity at a charging current of 25A per battery. Other specifications: - Float: 26.8V to 27.6V - Battery Charge Temperature Range: 25°F (-3°C) to 135°F (57.2°C) - Battery Discharge Temperature Range: -4°F (-20°C) to 135°F (57.2°C) - Cell Charge Temperature: 32°F (0°C) to 131°F (55°C) - Cell Discharge Temperature: 68°F (20°C) to 140°F (60°C)

Michael has his batteries connected in parallel, so the current is the sum of the currents that each battery can produce. The hydro generator power curves are shown later, but for now let’s assume that the generator can produce 30 volts at 20 amps. The charging time is calculated below.

battery_charge_rate = house_battery_capacity/2
print('Max allowable battery charge rate: {:s}'.format(f"{battery_charge_rate:,.1f~P}"))

generator_amps = 20*ureg.amp
print('generator charge current: {:s}'.format(f"{generator_amps:,.1f~P}"))
print('battery charge time: {:s}'.format(f"{(battery_charge_rate/generator_amps).to('hour'):,.1f~P}"))
Max allowable battery charge rate: 125.0 A·hr
generator charge current: 20.0 A
battery charge time: 6.2 hr

If the hydro system can produce enough energy to charge his batteries in 6 hours, the power produced during the remaining hours could be used to power other items in the house and in the winter keep his batteries from getting too cold.

Plot battery charge time versus charging current.

charging_current = np.arange(2,25,0.5)*ureg.amp

plt.plot(charging_current.to('amp'),(battery_charge_rate/charging_current).to('hour'))

plt.grid()
plt.xlim((1,25))                                          
plt.ylabel('Charging time, hours')
plt.xlabel('Charging current, amp')

plt.title('Estimated battery charging time')
plt.show()

The plot above shows that for charging currents of less than about 5.2 amps, the hydro generator can’t fully charge his batteries from the empty condition within one 24 hour period. Most likely the family is using battery energy while charging the batteries, so the hydro generator would need to produce about 8.3 amps.

Site plan

In Michael’s videos about the hydro project, I got the impression that he did not have any measured elevation data for his property. He thought he had about 30 feet of elevation from the spring to his property line. This might be enough for a penstock and tail pipe driving a Pelton or inline turbine. For Michael’s waterwheel the head height is approximately the diameter of the waterwheel but, depending on the bucket design and release angle, could be a little less.

Water source

The water source for the dam comes from a spring located a short distance away from the cabin. The spring also provides water to the cabin’s holding tank for household use. While watching Michael’s videos, I did not hear that he has documented historical data for the water flow rate. Historical data is critical for determining the economic viability of the hydro project. Michael indicated that from February to June, there is lots of water flowing from the spring. Over the course of the video series, he commented how the spring wasn’t running like it was while they were building the dam. Since the flow rate seems to be seasonal, the analysis that follows will consider a range of flow rates and not use just one value.

One thing to note is that in [8], the water out of the spring was muddy, which could mean that a lot of surface water flows down the hill during periods of heavy rain and is mixing with the spring water. Surface water mixing in with the spring water could compromise the safety of the spring as a source of potable water.

The dam

The purpose of the dam is to capture water from the spring and allow for the flume to sit at the correct height relative to the waterwheel. The dam’s reservoir is an attractive feature for the property and should be a source of enjoyment year around. He said the water was cold (50F), so in the warm summer months it should be refreshing. The dam structure is a concrete retaining wall, with a water depth of about 4.5 feet at the wall. This type of dam can be classified as a concrete gravity dam where the weight of the dam itself keeps it in place against the weight of the water. Videos [2,3] show some of the dam construction and the following observations and comments are provided:
- The dam’s foundation did not appear to be adequately prepared. Concrete gravity dams are suitable for sites where there is a reasonably sound rock foundation, although a low dam can be built on other soil types. Michael said in the video that Jerry dug down to rock, but this was not apparent. Settling of the foundation and expansion from freezing water from seepage can lead to weakening of the foundation and wall. - The reservoir evacuation method of using a plug in the pipe could have been better thought out. An important consideration is the ability to evacuate (lower or drain) the reservoir in a timely manner. - Interrupting the pour between the footing and the wall created a cold joint, a possible source of leaks. - There was a conspicuous paucity of rebar visible in the construction videos. - The spillway is insufficient. - Head race and flume did not line up with the waterwheel.

There were questions in the comment section about the permit for the dam construction. Michael said he didn’t need a permit. I did a little bit of searching on the internet and he seems to be correct. If the water impounded has a surface area of less than fifteen acres, or the height of the dam is less than 35 feet, and is not on a navigable waterway, a permit is not required.

A small spillway was incorporated into the dam in the center section. The spillway is a hydraulic structure that passes normal (operational) and/or flood flows in a manner that protects the structural integrity of the dam. The spillway appears to be sized incorrectly as evidenced by the dam being over topped in [8].

The spillway width is estimated to be 4 feet wide and the depth of the spillway looks like about 3 inches.

spillway_width = 4*ureg.feet # 4 ft
spillway_water_head = 3*ureg.inch # 3 inches

The rectangular weir formula is used to calculate the flow through the spillway.

\(Q= \frac {2}{3} \times C_d \times (2g)^{1/2} \times L \times H^{3/2}\)

Where:
Q = the total discharge
\(C_d\) = discharge coefficient
g = acceleration due to gravity
L = the effective crest length
H = the total hydraulic head above the spillway

Reference sources for the weir formula are here, here and here.

L = spillway_width.to('meter')
H = spillway_water_head.to('meter')
Cd = 0.5 # discharge coefficient, a nominal value was chosen, typical values range from 0.4 to 0.6 and depends on a lot of factors.

# need to remove units for calculation, then set units back to m^3/sec
Q_spillway = ((2/3)*Cd*L.magnitude*2*(g.magnitude)**(1/2)*(H.magnitude)**(3/2))*ureg.meter**3/ureg.sec
print('spillway flow rate: {:s}'.format(f"{Q_spillway.to('gal/min'):.1f~P}"))
spillway flow rate: 848.6 gal/min

The current spillway can accommodate about 850 GPM, but it should be increased by several inches in head height to accommodate 2000 GPM or more depending on the results of a hydrology study for the local drainage into the reservoir.

Using the weir formula to estimate flow rate

The wier formula can be used to estimate the water flow. In videos [6,7] there looks to be about a half inch deep of water flow through the spillway.

spillway_water_head = 0.5*ureg.inch

L = spillway_width.to('meter')
H = spillway_water_head.to('meter')
Cd = 0.5 # discharge coefficient, a nominal value was chosen, typical values range from 0.4 to 0.6 and depends on a lot of factors.

# need to remove units for calculation, then set units back to m^3/sec
Q_spillway = ((2/3)*Cd*L.magnitude*2*(g.magnitude)**(1/2)*(H.magnitude)**(3/2))*ureg.meter**3/ureg.sec
print('low season flow rate: {:s}'.format(f"{Q_spillway.to('gal/min'):.1f~P}"))
low season flow rate: 57.7 gal/min

Trying to estimate the flow rate from Michael’s videos is admittedly very inaccurate, however it’s the best we can do to substantiate Michael’s claims of 500 to 1000 gallons per minute (GPM) and 300 GPM at other times. Based on the weir calculation using 1/2 inch depth of flow, the flow rate is nowhere near what Michael claims it is during the low season.

Gravitational power of water

The harvesting of the gravitational energy of water is a proven source of energy. Since a waterwheel is used to extract power from the water, the head height is approximately the diameter of the waterwheel. Water enters at the top of the wheel and the weight of the water causes the wheel to rotate until a point near the bottom of the wheel. So let’s use the diameter of the waterwheel. For the flow rate, we can use a value of 300 GPM since this is what Michael said was the flow rate in [2].

The gravitational power of water is given by:

\(P = \rho \times g \times Q \times H\)

where:
P = gravitational power of water
H = height of fall
Q = flow rate
g = acceleration due to gravity
\(\rho\) = density of water

The gravitation power of water is easily calculated and Michael should have run his numbers through this formula first thing. However, if he did the math and was overly optimistic about the efficiency of his waterwheel, he could have been deceived. If he looked at a range of efficiencies, he would have seen that things didn’t look so good at the lower end, which could have told him that an in depth and thorough preliminary design was needed. Reference sources for the hydroelectric power equation are here and here.

head_height = 7*ureg.feet # the estimated diameter of the waterwheel
print('head height: {:s}'.format(f"{head_height:.1f~P}"))
# convert to meters and save value in variable H for use in calculations
H = head_height.to_base_units()
print('head height in base units: {:s}'.format(f"{H:.4f~P}"))

flow_rate = 300*ureg.gal/(1*ureg.min)
print('flow rate: {:s}'.format(f"{flow_rate:.1f~P}"))
Q = flow_rate.to_base_units()
print('flow rate in base units: {:s}'.format(f"{Q:.4f~P}"))
head height: 7.0 ft
head height in base units: 2.1336 m
flow rate: 300.0 gal/min
flow rate in base units: 0.0189 m³/s

The maximum efficiency of overshot waterwheels is listed in [11] as being between 80 and 85% maximum, which is for an optimized design. Michael’s waterwheel has a number of issues, the most serious is the substantial amount of water splashing out of the bucket. So Michael’s waterwheel probably has an efficiency of around 60%. The efficiencies for the generator and charge controller were estimated from literature and catalogs. The efficiency for the generator is reduced to 95% to account for the low operating RPM compared to the rated RPM. The charge controller is assumed to be relatively efficient so a 97% value is used. - \(\eta\) for waterwheel = 60% - \(\eta\) for generator = 95%
- \(\eta\) for charge controller = 97%

# Gravitational power of water
grav_pwr_of_water = (rho*g*Q*H) #.to_base_units().to('watt')
print('gravitational power of water: {:s}'.format(f"{grav_pwr_of_water.to('watt'):.2f~P}"))

eta_waterwheel = 0.6 # for a small waterwheel
eta_generator = 0.95
eta_charge_controller = 0.97
eta_total = eta_waterwheel*eta_generator*eta_charge_controller
est_pwr = grav_pwr_of_water*eta_total
print('electrical power with efficiency factors: {:s}'.format(f"{est_pwr.to('watt'):.1f~P}"))
gravitational power of water: 395.92 W
electrical power with efficiency factors: 218.9 W

The calculations above provide an indication of the power the hydro system is capable of producing. The estimated electrical power is about 219 watts. If the efficiency of the waterwheel could be improved to 0.7, then about 260 Watts could be generated, which might be sufficient to charge the batteries.

The calculations show that the expected power production is rather low and the ability to charge the house batteries is doubtful. Before proceeding with the project, one would need to look at other options. It sounded like Michael really wanted a dam and waterwheel, this being the case, a larger wheel diameter should have been considered in light of these calculations. Michael could have still used the old wheels, and Jerry could have built a larger outer frame to extend the radius. Also, the waterwheel is somewhat narrow compared to similar historical waterwheels, so Jerry could have increased the width.

Estimated power production vs flow and height

The plot below shows the estimated production of electrical power for a range of flow rates and water head heights (in this case set by the diameter of the waterwheel). Mechanical and electrical efficiencies discussed above are included. The range of flow rates from the spring were talked about in the videos. In the plot below, I have flow rates ranging from 100 to 500 GPM and head height set by waterwheel diameters of 6, 7 and 8 feet.

flow_rate = np.linspace(50,500,10)*ureg.gal/ureg.min # flow rate range in gallons per minute
head_height = np.array([6,7,8])*ureg.feet # head height, range in feet
# convert to metric
Q = flow_rate.to_base_units()
H = head_height.to_base_units()

for i in range(len(head_height)):
    plt.plot(flow_rate.to('gal/min'),(rho*g*Q*H[i]*eta_total).to('watt'),
        label = 'water head: {:s}'.format(f"{H[i].to('feet'):.0f~P}"))

plt.legend(bbox_to_anchor=(1.4, 1))
plt.grid()

plt.ylim((0,600))
plt.xlim((100,500))                                          
plt.ylabel('electrical power, W')
plt.xlabel('water flow rate, GPM')

plt.title('Estimated production of hydro power')
plt.show()

The chart above clarifies that for small flow rates of less than 300 GPM and small diameter wheels, the possible power output is not sufficient to supply the household using the efficiencies discussed above. Families that conserve their use of electrical power need about 10 kWhr per day (or less, but definitely a lot more if air conditioning is used).

The flume

The flume carries water from the dam to the top of the waterwheel. By examining the videos, I made some estimates for the flume dimensions. The width of the flume was about the same width of the waterwheel, which makes sense, since you want a nice flow of water into the buckets. The side walls of the flume looked like 2 by 6 inch boards. Looking at [7] when Michael opens the gate, the depth of the water in the channel looks like 1.5 to 2 inches of flow.

I can use the Manning equation for open channel flow to calculate the flow rate in the flume. Mannings equation is an empirical equation that applies to uniform flow in open channels and is a function of the channel velocity, flow area and channel slope.

\(V = \frac {s^{1/2} \times R^{2/3}} {n}\)

where:

V - water velocity
n - Manning’s roughness coefficient; unplaned wood = 0.013, wood sides and smooth sheet metal bottom
R - The channel’s hydraulic radius, calculated by dividing the water flow’s cross-sectional area A by its wetted perimeter P
s - Slope of the channel’s bottom surface

Examining Manning’s equation, we can see that the area and slope are directly proportional to the water flow rate, which means an increase in area and slope would increase the water flow rate. On the other hand, the roughness coefficient and the wetted perimeter are inversely proportional to the water flow rate, meaning that increasing their values would decrease the water flow rate.

The slope of the flume was not apparent in any of the videos, so I’m using a value of 0.01.

flume_width = 10*ureg.inch  # 10 inches
water_depth = 2*ureg.inch # 2 inches
# convert to metric
flume_width.ito('meter')
water_depth.ito('meter')
water_cross_section_area = water_depth*flume_width
print('water_cross_section_area = {:s}'.format(f"{water_cross_section_area:.4f~P}"))
wetted_perimeter = 2*water_depth+flume_width
print('wetted_perimeter = {:s}'.format(f"{wetted_perimeter:.4f~P}"))
hydraulic_radius = water_cross_section_area/wetted_perimeter
print('hydraulic_radius = {:s}'.format(f"{hydraulic_radius:.4f~P}"))
roughness_coefficient = 0.01 # wood sides and smooth sheet metal bottom
slope = 0.1/100 # slope of the flume

# need to use magnitude of quantity when using fractional exponents
water_flume_velocity = (((hydraulic_radius.magnitude)**(2/3)*slope**(1/2))/roughness_coefficient)*ureg.meter/ureg.sec

print('water_flume_velocity = {:s}'.format(f"{water_flume_velocity:.4f~P}"))
volumetric_flow_rate = water_flume_velocity*water_cross_section_area
print('volumetric_flow_rate = {:s}'.format(f"{volumetric_flow_rate:.6f~P}"))
print('volumetric_flow_rate = {:s}'.format(f"{volumetric_flow_rate.to('gal/min'):.2f~P}"))
water_cross_section_area = 0.0129 m²
wetted_perimeter = 0.3556 m
hydraulic_radius = 0.0363 m
water_flume_velocity = 0.3466 m/s
volumetric_flow_rate = 0.004472 m³/s
volumetric_flow_rate = 70.89 gal/min

Manning’s equation tells us that about 70 GPM are delivered by the flume to the waterwheel, so we can conclude that the flume is not sized correctly and several more inches of flow depth and/or slope are needed. The Manning formula has accuracies of \(\pm \text{10 to 20%}\). Reference sources for the Manning’s equation formula are here, here and here.

Plot flume flow rate over range of slopes and depths.

water_depth = np.linspace(0.1,6,10)*0.0254 # water depth in flume, in inches, then converted to meters

flume_length = 12*12 # feet converted to inches
flume_drop = np.array([0.5,2,4,6,8,12,18]) # total drop at far end of flume in inches
slope = (flume_drop/flume_length)/100 # flume slope, percent

for i in range(len(slope)):
    plt.plot(water_depth/0.0254,(((water_depth*flume_width)/(2*water_depth+flume_width))**(2/3)*slope[i]**(1/2))/roughness_coefficient*(water_depth*flume_width)*60/0.003785,
        label = 'slope: {:.2f}%'.format(slope[i]*100))

plt.legend(bbox_to_anchor=(1.1, 1))
plt.grid()

#plt.ylim((0,1))
plt.ylabel('Q, gpm')
plt.xlabel('flume water depth, inches')

plt.title('range of flume flows vs. depth and slope')
plt.show()

As we can see in the plot above, in order for the flume to deliver up to 300 GPM, modifications to the flume are required. The calculations above were done with the flume width set to 10 inches, which is the estimated width of the waterwheel. But to get 300 GPM in this channel would mean that water velocity is going to be too high for the operation of the wheel. I think the flume and waterwheel width are serious flaws in the current design that can’t be overcome by tweaks elsewhere in the system.

Flume to waterwheel interface

The level of the flume at the water exit point should be very near the top center of the waterwheel. Depending on the velocity of the water there is some amount of horizontal throw and the exact position and the corresponding angle of the entry to the wheel probably is best optimized by trial and error. One thing to note is that historical waterwheels seem to be much wider than Michael’s wheel and the water velocity in the flume is lower.

The waterwheel

Waterwheels have a long history and they were a driving force behind the earliest stages of industrialization in Britain. John Smeaton’s scientific investigation of the water wheel led to significant increases in efficiency supplying much needed power for the Industrial Revolution. A historical overview of waterwheels in given in [11] along with a list of overshot waterwheels in current operation which are generating electrical power. Most of these operate with much higher flow rates, on average 6,000 gal/min, which is substantially greater than what Michael has available. The waterwheel operating with the smallest flow rate at 1268 gal/min, is a 13 foot diameter, 2.4 foot wide wheel, with 36 buckets turning at 8 RPM and generating 2.2kW of electrical power. This waterwheel is operated by PI Mitterfellner GMBH, located in Austria.

Michael’s water wheel was built by Jerry and Michael posted a slide show of the construction in [10]. From an Aesthetic point of view, the waterwheel is very nice. The dimensions of the waterwheel were estimated from the videos and compared to the relative heights of Jerry and Michael’s Dad when they were off loading the wheel. The geometry of the water chamber or bucket was not shown in any detail. In the photo below, it looks like the paddles of the water chamber have a small radial section that connects to a longer board at an angle. The angle of the longer board doesn’t look correct, it needs more tilt.

The outer radius looks to be about 3.5 feet. The inner radius is about 3 feet. The bucket width looks to be approximately 10 inches wide. The number of buckets appears to be 12. The angles appear such that most of the water will exit the wheel at about 90 degrees measured from top center. Overshot waterwheels are relatively efficient mechanically and are easily maintained. The overshot waterwheel is a slow speed device and usually designed to operate between 5 and 15 RPM. This limits its usefulness as a power source for the generation of electricity because gearbox or pulleys are needed to step up the rotational speed.

The diagram below shows the components of the overshot waterwheel. The weight of the water on the downstream chambers causes a torque on the wheel making it rotate.


Diagram of an overshot waterwheel by Malcolm Boura obtained from Wikipedia.

Historical waterwheels have a lot more buckets than Michael’s waterwheel. In the diagram above, the paddles that separate the water chambers are at an angle. Depending on the design, the angels vary between 20 and 30 degrees. Some waterwheel designs have a small flat section or have chambers with the scoops optimized to hold the water through a larger range of angles as the wheel rotates.

There is a large collection of waterwheels on YouTube. The Egloffstein Franconia waterwheel is connected to a 12kW generator and the Dalby Waterwheel was one of the first hydroelectric plants on the Hood Canal in WA, built in 1923.

We can do some simple calculations to estimate the volume of the buckets.

num_buckets = 12 # number of buckets on the waterwheel
bucket_width = 10*ureg.inch
outer_radius = 3.5*ureg.feet
inner_radius = 3*ureg.feet

# convert dimensions to meters
bucket_width.ito('meter')
outer_radius.ito('meter')
inner_radius.ito('meter')

bucket_vol = (np.pi*outer_radius**2 - np.pi*inner_radius**2)*bucket_width/num_buckets
print('bucket volume: {:s}'.format(f"{bucket_vol.to('gallons'):.2f~P}") )
                                    
# calculate chamber arc, 
bucket_arc = (360/num_buckets)*ureg.degree
bucket_arc.ito('radian')                                    
print('bucket arc: {:s}'.format(f"{bucket_arc.to('degree'):.1f~P}") )
bucket volume: 5.30 gal
bucket arc: 30.0 deg

Bucket fill level vs RPM for various flow rates

The number of buckets in the waterwheel is low compared to historical waterwheels. The following plot looks at bucket fill percentage versus waterwheel RPM at various flow rates.

flow_rate = np.array([50,100,150,200,300])*ureg.gal/ureg.min # flow rate range in gallons per minute
# convert to metric
Q = flow_rate.to_base_units()

wheel_revs_per_sec = np.linspace(2,10,100)*ureg.rpm
omega = wheel_revs_per_sec.to_base_units()

bucket_arc = (np.pi/num_buckets)*ureg.radian

for i in range(len(Q)):
    plt.plot(omega.to('rpm'),((Q[i]*(bucket_arc/omega))/bucket_vol).magnitude*100,label = 'Q={:s}'.format(f"{Q[i].to('gal/min'):.0f~P}"))

plt.legend(bbox_to_anchor=(1.5, 1))
plt.grid()

#plt.ylim((0,10))
plt.ylabel('bucket % full')
plt.xlabel('waterwheel RPM')

plt.title('title')
plt.show()

The calculations show that the buckets are not being filled to even 50% for RPM’s greater than 5. More buckets are needed to better utilize the range of flow rates expected. The pulley 8:1 system that Michael is using has the waterwheel rotating at 62 RPM, where only about 2% of the bucket capacity will be used at a flow rate of 300 gal/min.

Maximum rotational speed

The rotational speed of the waterwheel is limited by the centrifugal force acting on the water in the buckets. The centrifugal force is directed radially outwards from the waterwheel and if the rotational speed is sufficiently high, the water will be flung out of the buckets, since gravity acting towards the center of the earth can’t keep the water contained.

The centrifugal force can be calculated as follows:

\(F=m \times \omega ^{2} \times r\)

where:
F = the centrifugal force
m = the mass of the object, in this case a unit mass of water
r = the radius of rotation
\(\omega\) = the angular velocity

The plot below shows the force on a unit mass of water due to gravity compared to the centrifugal force versus rotational speed.

avg_water_radius = (outer_radius + inner_radius)/2
wheel_revs_per_sec = np.linspace(2,40,10)*ureg.rpm
omega = wheel_revs_per_sec.to_base_units()

m = 1*ureg.kg
r = avg_water_radius
ffg = np.ones(len(omega))*(m*g)

plt.plot(omega.to('rpm'),ffg.to('force_pound'),label='force from gravity')
plt.plot(omega.to('rpm'),(m*r*omega**2).to('force_pound'),label='force from rotation')

plt.legend(bbox_to_anchor=(1.5, 1))
plt.grid()

#plt.ylim((0,10))
plt.ylabel('force, lbs')
plt.xlabel('waterwheel rpm')

plt.title('Force of gravity and centrifugal force')
plt.show()

In order to keep the water in the buckets, the rotational speed of the waterwheel should be kept to about 10 RPM. Later in this notebook, the pulley system and generator is analyzed. Michael thought he needed 500 RPM on the generator shaft and 62 RPM on the waterwheel. At this RPM there is a large centrifugal force on the water in the buckets and much of the water would be flung out.

Run test

Two frames were captured from [6] and combined into the image below. On the left is the waterwheel running with the pulleys connected to the generator and on the right is the display of the Midnite charge controller, which is indicating that the input is 40.3 volts at 40 Watts. There is a large amount of splash over, indicating not all of the water is being captured.

I’m not familiar with the operation of the charge controller, so I can’t comment on what’s being shown on the display. Michael did say that his batteries were not being charged under this condition.

Looking at the photo on the left, I would say that there are three things happening. The paddles are slapping the flow of water coming off the flume, the stream is misaligned and water is being flung out of the buckets. Clearly, some adjustments are needed. The waterwheel is running somewhat as a turbine, where the wheel is rotated by both the velocity of the flow and of the weight of the water in the buckets.

The flume water velocity and flow rate were calculated above:

print('water_flume_velocity = {:s}'.format(f"{water_flume_velocity:.4f~P}"))
print('volumetric_flow_rate = {:s}'.format(f"{volumetric_flow_rate:.6f~P}"))
water_flume_velocity = 0.3466 m/s
volumetric_flow_rate = 0.004472 m³/s
V = water_flume_velocity
Q = volumetric_flow_rate

The power from the velocity of the water in the flume is calculated below:

print('power in the water flow from the flume: {:s}'.format(f"{(0.5*(rho*Q)*V**2).to('watt'):.2f~P}"))
power in the water flow from the flume: 0.27 W

There doesn’t appear to be much water captured by the buckets and some of it looks like it’s being flung out. So let’s say half of the flow is captured and drops a height of 2 feet before being forced out by centrifugal force. The power from gravity of the water in the bucket is:

H = 2*ureg.foot
Q = volumetric_flow_rate/2
print('power from gravity of water: {:s}'.format(f"{(g*rho*Q*H).to('watt'):.2f~P}"))
power from gravity of water: 13.36 W

Taking both of these together, it’s clear that not much power is being generated by the waterwheel when operated this way.

If I were to speculate as to why the charge controller is reading 40 Watts on the display, I would say the charge controller is hunting for the maximum power point and momentarily seeing a bit of energy stored in the rotational inertia of the wheel. When the electrical load is reduced and the wheel is allowed to spin faster, the charge controller sees the voltage rise and applies some load. When the load is applied, the wheel slows down and the voltage drops along with the power. The charge controller reduces the load and this oscillation continues. I don’t know where in this cycle the displayed power is read.

Generator and pulley system

The generator used in this hydro system is a 2000 Watt Freedom II Hydro PMG Permanent Magnet Generator from Missouri Wind And Solar, with a price tag of \$969. This generator has a 28 magnet dual rotor and there are two stator windings. So it’s actually two generators on the same shaft. There are two, three phase outputs from the generator (6 wires total) and two rectifier blocks are used in Michael’s system. Six conductors were used to bring the power from the generator to the house. It was not clear in any of the videos if Michael had the output of the rectifier blocks wired in series or parallel (I think a series connection would be the proper connection as the input to the charge controller). According to Missouri Wind And Solar, the generator will produce 12 volts at 266 RPM, 24 volts at 500 RPM and 48 volts at 900 RPM. A specification sheet for the generator is not available, but Missouri Wind And Solar provided answers to my questions via emails. The voltages versus RPM are voltages under load and the maximum power of 2000 Watts is produced between 1400 and 1500 RPM.

The plot below shows the under load voltage versus RPM, with an extrapolated data point at 1500 RPM of 80 volts and 2000 Watts. The calculations that follow assume that the generator can be made to run at 500 RPM. I don’t think this is possible, since the calculations above show the waterwheel is generating about 220 Watts of power and the flow rate in the flume is insufficient at only 70 GPM. I think the generator needs a closer look since it’s being operated at about 30% of the advertized full power speed. The Njorgen 105/34, for example, is a better choice for a waterwheel. The Njorgen 105/34 will produce 5kW at 400 Volts with 150 RPM, according to the datasheet. DIY’ers are making axial flux alternators for windmills and a tech savvy maker could design and construct a generator optimized for the low RPM of a waterwheel (an idea for a future Jupyter notebook).

gen_volts = np.array([12,24,48])
gen_rpm = np.array([226,500,900])

y = gen_volts
x = gen_rpm
m, c = np.polyfit(x, y, 1)
print('generator voltage vs rpm slope: {:.2f}'.format(m))
print('generator voltage vs rpm intercept: {:.2f}'.format(c))

gen_rpm_plt = np.linspace(200, 1500, 10)
plt.plot(gen_rpm,gen_volts,'ok',label = 'data points provided by the vendor')
plt.plot(gen_rpm_plt,m*gen_rpm_plt + c, '-b',label='least squares fit')
plt.plot(1500,80,'or',label = '2000 Watts at 1500 RPM')

plt.legend(bbox_to_anchor=(1.7, 1))
plt.grid()

plt.ylim((0,100))
plt.ylabel('generator voltage, under load')
plt.xlabel('RPM')

plt.title('Generator voltage vs RPM')
plt.show()
generator voltage vs rpm slope: 0.05
generator voltage vs rpm intercept: -1.21

The plot below is the estimated generator power as a function of RPM assuming power is linear with RPM and including a derating factor at lower RPM.

gen_eff_high = 1.0 # derating value at high end of RPM range
gen_eff_low = 0.7 # derating value at low end of RPM range

# generate power derating vs RPM
m1, c1 = np.polyfit([226,1500], [gen_eff_low,gen_eff_high], 1) # range of RPMs and derating

gen_pwr = np.array([2000*226/1500,2000])
gen_rpm = np.array([226,1500])

y = gen_pwr
x = gen_rpm
m2, c2 = np.polyfit(x, y, 1)

gen_rpm_plt = np.linspace(226, 1500, 10)
plt.plot(gen_rpm_plt,(m1*gen_rpm_plt + c1)*(m2*gen_rpm_plt + c2), '-',label='generator pwr w/ rpm derating')

plt.plot(1500,2000,'or',label = '2000 Watts at 1500 RPM')
plt.plot(900,(m1*900 + c1)*(m2*900 + c2),'^',label = '{:.0f} Watts at 900 RPM'.format((m1*900 + c1)*(m2*900 + c2)))
plt.plot(500,(m1*500 + c1)*(m2*500 + c2),'^',label = '{:.0f} Watts at 500 RPM'.format((m1*500 + c1)*(m2*500 + c2)))
plt.plot(226,(m1*226 + c1)*(m2*226 + c2),'^',label = '{:.0f} Watts at 226 RPM'.format((m1*226 + c1)*(m2*226 + c2)))

plt.legend(bbox_to_anchor=(1.7, 1))
plt.grid()

#plt.xlim((0,1600))
#plt.ylim((0,2200))
plt.ylabel('generator power, watts')
plt.xlabel('RPM')

plt.title('Generator power vs RPM')
plt.show()

Dividing power by voltage we can get the current supplied to the load.

gen_rpm_plt = np.linspace(226, 1500, 50)

plt.plot(gen_rpm_plt,(m1*gen_rpm_plt+c1)*(m2*gen_rpm_plt+c2)/(m*gen_rpm_plt+c), '-',label='generator current, Amps')

plt.plot(1500,(m1*1500+c1)*(m2*1500+c2)/(m*1500+c),'or',label = '{:.1f} Amps at 1500 RPM'.format((m1*1500+c1)*(m2*1500+c2)/(m*1500+c)))
plt.plot(900,(m1*900+c1)*(m2*900+c2)/(m*900+c),'^',label = '{:.1f} Amps at 900 RPM'.format((m1*900+c1)*(m2*900+c2)/(m*900+c)))
plt.plot(500,(m1*500+c1)*(m2*500+c2)/(m*500+c),'^',label = '{:.1f} Amps at 500 RPM'.format((m1*500+c1)*(m2*500+c2)/(m*500+c)))
plt.plot(226,(m1*226+c1)*(m2*226+c2)/(m*226+c),'^',label = '{:.1f} Amps at 226 RPM'.format((m1*226+c1)*(m2*226+c2)/(m*226+c)))

plt.legend(bbox_to_anchor=(1.7, 1))
plt.grid()

plt.ylim((19,26))
plt.ylabel('generator current, under load')
plt.xlabel('RPM')

plt.title('Generator current vs RPM')
plt.show()

Assuming that the 500 RPM point is close to the operating point, 20 Amps is available for charging.

As described above, I assumed that generator power was linear with RPM and that generator current could then be calculated from the voltage and power with a derating for the lower RPM. I think these calculations are fine, given the limited performance data available for the generator. Also, I wonder about the test conditions for the 12 volts at 266 RPM, 24 volts at 500 RPM and 48 volts at 900 RPM data. 12, 24, and 48 are nominal battery voltages and perhaps the RPM’s quoted are the minimum RPM required to charge 12, 24, or 48 volt batteries.

I started to derive a set of curves for voltage versus power at select RPM’s; and I found that I was making assumptions on top of assumptions in order to derive the performance curves. So the calculations above have the least amount of assumptions, which is only to assume the relations are linear. In my attempt to derive the generator performance curves, I got the feeling that this generator is not well suited for waterwheel applications. If I were actually doing this hydro project, and I already had the generator in hand having spent about a thousand dollars for it, before proceeding I would build a small generator test stand and collect some measured performance data. I suppose that the non-availability of a datasheet or performance curves should have been a red flag.

generator_pwr = 510*ureg.watt
genenerator_rpm = 500*ureg.rpm

# convert to base units
generator_pwr.ito_base_units()
genenerator_rpm.ito_base_units()

# calculate the generator shaft torque
gen_tau = generator_pwr/genenerator_rpm
print('generator shaft torque, in base units: {:s}'.format(f"{gen_tau.to_base_units():.1f~P}"))
print('generator shaft torque: {:s}'.format(f"{gen_tau.to('foot * force_pound'):.1f~P}"))
generator shaft torque, in base units: 9.7 kg·m²/rad/s²
generator shaft torque: 7.2 ft·lbf

As calculated above the generator needs 7.2 ft·lbf of torque at 500 RPM to charge the house batteries.

Pulley system

The purpose of the pulley system is to transform the waterwheel rotations to the generator shaft. Michael said that Jerry did the calculations for the wheel sizes for the pulleys, which he said was a one to eight ratio. The pulley wheel diameters were estimated by looking at the video and doing a relative comparison against the final generator pulley which is advertised to be 3 inches in radius. The formula for pulleys is:

\(D_1 \times RPM_1 = D_2 \times RPM_2\)

where \(D_1\) and \(D_2\) are the pulley diameters and \(RPM_1\) and \(RPM_2\) are the rotations per minute.

Starting at the generator, d1 and d2 are the pulleys on the generator belt and rpm1 is what is needed on the generator shaft.

d1 = 3 # diameter of pulley on the generator
d2 = 8 # diameter of large pulley on middle axle
rpm1 = 500 # needed at the generator
rpm2 = d1*rpm1/d2 # at the big wheel on 2nd shaft
print('RPM on the middle axle: {:0.1f}'.format(rpm2))
RPM on the middle axle: 187.5

The middle axle has two pulleys, d2, from above and d3; d3 is connected by a second belt to the pulley on the waterwheel shaft, d4.

d3 = 4 # diameter of small pulley on middle axle
d4 = 12 # diameter of pulley on waterwheel
rpm3 = d3*rpm2/d4
print('RPM on the waterwheel axle: {:0.1f}'.format(rpm3))
print('total pulley ratio: {:.1f}:1'.format((d2/d1)*(d4/d3)))
print('Torque on the waterwheel axle: {:s}'.format(f"{(gen_tau*(d2/d1)*(d4/d3)).to('foot * force_pound'):.1f~P}"))
RPM on the waterwheel axle: 62.5
total pulley ratio: 8.0:1
Torque on the waterwheel axle: 57.5 ft·lbf

The total ratio for the pulleys is 8:1 and agrees with Michael’s comments in the video. A waterwheel RPM of 62 is needed to spin the generator at 500 RPM, which is too high for the waterwheel. Water will not stay in the buckets at this RPM. Let’s say 10 RPM is more appropriate for the waterwheel, then a pulley or gear ratio of 100 is needed. At a 100:1 ratio, gears are needed, so a planetary type gearbox might work.

Electrical cable

Electrical power cables are needed to run from the generator located at the waterwheel up to the cabin, where the charge controller and the batteries are located. The generator makes 3 phase AC and at 400 RPM, the generater produces, let’s say 300W. The cable according to Michael is 10-3, which I take to mean three conductors of 10 AWG wire. Two sets of cables were buried in the ground. Michael said he purchased the cable form Missouri Wind and Solar, but I could not find on their website any information about the type of cable he might have purchased.

Using cable specifications from Alpha Wire, M3903 was chosen as a type of cable that has specifications typical for this application. This cable is available in configurations of three or six conductors with multi stranded (7/.0385) 10 AWG bare copper conductors. The conductor DC resistance is 1.03 ohms/1000ft at 20°C (68°F), nominal. The cable has a voltage rating of 600 VRMS, is sunlight resistant and is suitable for direct burial.

The voltage drop per conductor for 220 feet of cable run, operating at 30 volts and carrying 500 Watts of power is calculated below. Since the AC frequency of the generator is low, I’m ignoring the AC impedance of the cable and using the RMS voltage to calculate the voltage drop due to the DC resistance in the cable. 30 volts was used in the calculations, since this is probably close to the operating point of the charge controller.

The generator frequency is: frequency = RPM * Number of magnetic poles (P) / 120.

# generator AC frequency
RPM = 500  # RPM
P = 28*2 # 28 magnets, so number of poles is twice the number of magnets
print('generator AC frequency: {:.1f} Hz'.format(RPM*P/120))
generator AC frequency: 233.3 Hz

As long as the AC frequency is under 500 Hz and the cable run is less than 500 ft, I would ignore the AC impedance when doing back of the envelope or rough order of magnitude type calculations that engineers like to do. As part of a detailed design, I definitely would look at the impedance of the cable (capacitance 32 pF/ft at 1 kHz and inductance 0.16 μH/ft) to calculate the voltage drop.

The resistance per phase for the 220 foot cable run is calculated below.

resistance_per_phase = 1.03*ureg.ohms/(1000*ureg.foot)*220*ureg.feet
print('resistance per phase: {:s} at 20 degrees C for 220 ft'.format(f"{resistance_per_phase:.3f~P}") )

volts_per_phase = 30*ureg.volt # rms
print('volts per phase: {:s}rms'.format(f"{volts_per_phase:.1f~P}") )

current_per_phase = (500*ureg.watt/6/volts_per_phase).to_base_units() # using 6 since there are 6 wires in the system
print('current per phase: {:s}rms'.format(f"{current_per_phase:.2f~P}") )

voltage_drop_per_phase = (resistance_per_phase*current_per_phase).to('volts')
print('voltage drop per phase: {:s}rms'.format(f"{voltage_drop_per_phase:.2f~P}") )
resistance per phase: 0.227 Ω at 20 degrees C for 220 ft
volts per phase: 30.0 Vrms
current per phase: 2.78 Arms
voltage drop per phase: 0.63 Vrms

A voltage drop of about 0.6 volts to the house when the generator is developing 500 W, is acceptable.

Charge controller

The charge controller is a Midnite Classic 200 which has a price tage of about \$650, depending on the vendor. The charge controller provides maximum power point tracking (MPPT). MPPT’ers are intelligent DC to DC converters and regulate current and voltage to safely charge batteries.

I believe that the Midnite Classic 200 needs at least the battery absorption voltage from the generator to charge the batteries. I did not read in the manual that the Midnite Classic 200 was capable of boosting the voltage from the generator to the absorption voltage. This probably means that the generator RPM needs to be a bit higher than 500 RPM.

I would talk to customer support at Battle Born Batteries and get recommendations for setting up the Midnite Classic 200 for their batteries. The set up for a waterwheel based hydroelectric system might be a little out of the ordinary. Based on the little I know about LiFePO batteries, I would think that you would set up the charge controller to charge in a constant current mode for the required absorption time which the controller would adjust based on available current and state of charge. Also the maximum power point tracking time constant should be set to sweep in intervals of tens of minutes not seconds like it would do for a solar system.

Once the hydro generator performance curves are obtained, either from the generator’s manufacture or measured from a test stand, a more detailed evaluation can be performed. I suspect that the operating point for Michael’s hydro system lays on the part of the curve which is above the maximum power point at the operating RPM, since his hydro system will struggle to make the absorption voltage, so MPPT would not be useful.

After thoughts

Having gone through these calculations and doing some reading and research, I realize that there are a lot of trade offs to be made when looking for an optimal solution. I think the flume to battery path needs to be looked at as a system and not as individual parts to be connected together. Reverse engineering Michael’s hydroelectric system was a fun learning experience. The cost of the major components, batteries, generator and charge controller were about \$7000 dollars. I have no idea how much the dam costs. I certainly would not invest thousands of dollars in a project without a feasibility study and an analysis of alternatives. The extent of Michael’s planning seemed to consist of nothing more than wishful thinking.

All the successful micro hydroelectric installations I’ve read about while researching this topic have common characteristics: - a conservative estimated power production of at least 1kW - a return on investment (ROI) not exceeding a few years

Planning for micro hydroelectric projects should consider both engineering and economics. If Michael was going to build the dam anyway, and he really wanted a waterwheel, regardless of the ROI, he should have looked into building the largest diameter waterwheel that could have been accommodated at the site, either by excavating a tail race or by moving the supports down stream a bit. A 15 foot diameter wheel could have provided about 1kW from February to June and maybe 250 Watts during the dry season. But a wheel with a 15 foot diameter is big and would have to be assembled on site. Now you’re talking about something requiring planning and forethought. The toy wheel that Jerry built was hopeless from the beginning.

Recommendations provided by Joe Malovich

A YouTuber named Joe Malovich provided comments and recommendations in [9]. I’ve summarized some of his suggestions:
- reduce bucket dept - extend mill race past existing stand and get a larger dia wheel - use the hydro function on the charge controller - size of generator - 200 GPM at 7 ft = 250 watts - get solar - conduct due diligence on Missouri Wind and Solar - change to a Pelton system or in-line turbine

Joe has an interesting set of videos documenting his experiments with micro hydro power here and here.

System redesign

I’ll venture down this rabbit hole at some point in the future. I’ll look at two options: 1. Redesign the waterwheel to have larger diameter and width, keep the RPM to about 10 2. Look at a penstock with a Pelton or in-line turbine

A company called Waterwheel Factory makes waterwheels at their manufacturing facility in Franklin, North Carolina. Prices for a 7 to 10 foot diameter wheel are \$6K to \$12K and a 11 to 15 foot diameter wheel are \$12K to \$20K.

One of the disadvantages of a waterwheel is the low rotational speed which requires gears or pulleys to step up the rotations to a speed required by the generator. Low RPM alternators are not really that low, being 200 to 500 RPM versus the 1500 to 2000 RPM of a normal alternator.

Running the calculations with the following efficiencies: - \(\eta\) for waterwheel = 70% - \(\eta\) for generator = 95%
- \(\eta\) for charge controller = 99%

Estimated power production vs flow and height

eta_waterwheel = 0.7 # for a small waterwheel or turbine
eta_generator = 0.95
eta_charge_controller = 0.98
eta_total = eta_waterwheel*eta_generator*eta_charge_controller

flow_rate = np.linspace(50,500,10)*ureg.gal/ureg.min # flow rate range in gallons per minute
head_height = np.array([10,15,20,25,30])*ureg.feet # head height, range in feet
# convert to metric
Q = flow_rate.to_base_units()
H = head_height.to_base_units()

for i in range(len(head_height)):
    plt.plot(flow_rate.to('gal/min'),(rho*g*Q*H[i]*eta_total).to('watt'),
        label = 'water head: {:s}'.format(f"{H[i].to('feet'):.0f~P}"))

plt.legend(bbox_to_anchor=(1.4, 1))
plt.grid()

plt.ylim((0,1000))
plt.xlim((100,500))                                          
plt.ylabel('electrical power, W')
plt.xlabel('water flow rate, GPM')

plt.title('Estimated production of hydro power')
plt.show()

The green line is for 20 feet of water head, which appears sufficient to produce the minimum power needed at minimum water flow.

References

  1. Loftis Party of Six: YouTube, Webpage, Facebook, AirBnB
  2. Building A Dam for Hydroelectric Power - Part 1 - Off Grid Cabin - EP #22, Jul 12, 2020
  3. Finishing the Dam @ the Off Grid Cabin - Part 2 / EP #23, Jul 16, 2020
  4. The Dam is Holding Water!!! & The Off Grid Cabin gets WeBoost / EP #24, Jul 19, 2020
  5. Installing the Water Wheel for HYDRO POWER @ the Off Grid Cabin!! EP #25, Jul 26, 2020
  6. Did we MAKE HYDRO POWER Using Our Waterwheel for Self Reliant Off Grid Living?, Jan 17, 2021
  7. Possible Hydro Power Solutions for our Off Grid Cabin? A BIG THANKS TO YOU!!, Jan 24, 2021
  8. Is Our DAM SAFE??? What Happened After a BIG RAIN 🌧!!!, Apr 11, 2021
  9. Fixed Waterwheel Suggestions for Loftis Party of Six - weROAM, Jan 26, 2021,
  10. Making old Wagon Wheels into a Water Wheel - Slideshow
  11. Emanuele Quaranta, Roberto Revelli, Gravity water wheels as a micro hydropower energy source: A review based on historic data, design methods, efficiencies and modern optimizations, Renewable and Sustainable Energy Reviews, Volume 97, 2018

YouTube comments

I read through quite a few of the comments. Most were supportive and wished Michael success. A handful said only a small amount of power could be harvested from his hydro system. Someone who claimed to be an engineer said that the dam didn’t need any rebar. Others said he needed to switch to AC because everybody knows that DC can’t go as far. One commenter said that beavers build bigger dams and they don’t use rebar, mud and sticks are sufficient.

I would say that about 90% of the comments which addressed technical topics were absolutely ridiculous and made by people with no science or technical training. Some who had hands on experience offered advice to do what they did because that was what worked for them. But I don’t think any of them had experience with a waterwheel based hydroelectric systems.

My favorite comments where these:

From [9], lefou lefoou wrote:
Wow, kudos my friend. You’re very brave with your build and pray strategy. I love it. As you have discovered, what you started is a journey. Now for a build like this one, your initial results are absolutely normal, anything else would of been a miracle. But you did make a huge mistake, and I do believe you realized it. Your biggest mistake was that you did seem to accept defeat in your last video. If you ask me you might have stumbled across the best marketing idea I have seen on YouTube in a long time. When you said in this video that it was strange that most people listen to videos to learn things and in this case your viewers are teaching you. I garentie that if you make this the theme of your YouTube channel and you do it strategically and well you are going to annihilate the YouTube algorithm. The viewers that follow you could become so invested in your success they would become what we call superfans and you would have engagement tru the roof. I would suggest the book ( superfans by pat flynn). Now I’m the complete opposite of you, I dabble in everything, real estate, homesteading, new energies, marketing, etc.. etc.. I learn everything and do nothing. But I really do think you should talk to a really good marketer about this reverse learning YouTube channel idea, I think this could be a gold mine, if done right. I will definitely be following you, I’m really curious where you go from here. Don’t hesitate to reach out. You’re a very interesting fellow.

From [6], Kris Harbour Natural Building wrote:
Hi, One of your subscribers sent me over here to maybe offer some advice. The first thing i notice is you are trying to get to 24v. really you need to be shooting for twice that unloaded as once you load it it will slow down. I think this is the problem you are having as far as voltage. so you need to be looking to get the Alternator up to closer to 50v unloaded or you will just loose all the voltage as soon as its loaded.

As far as expectations go. I wouldn’t be counting on more than a few watts from that at the flow. in fact you might even struggle to overcome the losses to get the the voltage at that flow. A water wheel is only about 50% efficient at best and that amount of water wont do much. So in summery. you need more water or more head and to try and get a unloaded free spin voltage of at least twice as much as your system needs so when you load the wheel it will be slowed down to 24v. I see from the clip of it running at 50w the controler had loaded the waterwheel to 40v. That controler isnt really designed for that kind of system. That is the reason it was jumping around when you had 30-50w coming in. It was trying to find the maximum power point. The controler itself uses quite a bit of power just to run and is quite a big loss that you dont need. If you get the wheel to free spin at 50v and then direct connect to your batteries you will take away that loss and as long as your cable is sized properly then you wont loose to much in the cable. That would mean it would not be controlled and could overcharge the batteries but a simple disconnect solenoid would work for that to just cut the incoming power once a set voltage is reached as it would not cause your wheel any problems to free spin. Something like this would work just fine. https://www.ebay.co.uk/itm/10-000-WATT-Battery-Dump-Controller-SOLAR-Wind-Regulator-G4-440-24-VOLT-N/232747971845?hash=item3630dc3505:g:3MsAAOSwZula4ovW The midnite controler is way overkill for a system like that. put some solar panels on that controler and put it to a better use.

From what i can see you only have about 1m of head so here are some numbers for you. After losses in the wheel and cable you would need 25 liters per second (appox 400 gpm) to make 100w at your batteries. And that would be at a system efficiency of 50% witch would be on the high side for a wheel like that.

All is not lost with it. small amounts of power over a long period of time are not at all worthless. But you have to keep efficiency in mind so you dont loose it all. So big cables, as few bearings as possible as few belts as possible as few pulleys as possible. And as few controllers as possible. every time you move a part you loose watts of power. But the main issue is lack of flow and losses in the wheel. I would need to know your average flows but it looks to me like with some modifications and changes, like wheel design, cable sizes, and direct drive. you could expect to get a some power from it But unless you have very large flows it really wont ever power the cabin. But even 20w 24h a day is almost 0.5kwh so it could be worth it but i would need some numbers from you.

The dam you have and the setup looks like it could run a low head turbine as apposed to a water wheel and i would be happy to advise on that but i would need you to monitor the flows for at least a year first to make sure it was viable and to size it properly. It dose look like that water source goes up higher on your land? how high up dose it go while still on your property? you might have more luck taking the water from there in a pipe down to a small turbine. But again i would need to know the head anf flow number to help with that.

If you want any help with it feel free to email me about it at Diyharbor@gmail.com