Water Wheel Generator

This example models the transfer of power from hydraulic flow to an electrical system. Water flowing from a spout fills buckets on a water wheel. A hole in the bottom of each bucket allows the water to drain. The wheel is asymmetrically loaded (full buckets on one side, empty buckets on the other) which causes the wheel to turn. The wheel is connected through a gear to a generator which produces 12 volts across a resistive load.

This example uses a the General Variable Mass block from Simscape Multibody to model the varying mass, inertia, and center of gravity location in each bucket. This is coupled with a hydraulic model for the flow of water and an electrical network, all modeled in Simscape.

This is a challenging optimization problem. A number of factors affect the amount and smoothness of power produced by the system. The flow rate of the water, size of the bucket, area of the hole in the bucket, and other factors all affect the power produced by the system.



Spout Subsystem

This subsystem models the spout and provides a visual cue that the water is flowing. A pressure source models the hydraulic head. A Simulink signal controls the opening of a valve and the movement of the visual cue in the Simscape Multibody animation.

Wheel Subsystem

The wheel has eight arms, each with a bucket on the end. The flow rate in the hydraulic network is measured and passed to each subsystem as a Simulink signal. The arm models are all identical except for their angle with respect to the axis of the wheel, which is passed as a parameter in the block mask.

Open Subsystem

Arm and Bucket with General Variable Mass

The General Variable Mass block is used to model the varying mass, inertia, and location of the center of gravity within each bucket. These quantities vary as the buckets are filled from the source and drain through the hole in their base. The angle of the bucket is used to determine if the buckets are underneath the spout.

Open Subsystem

Calculate Water Volume Subsystem

This subsystem calculates the volume of water in the bucket. The Interval Test block is used to determine if the bucket is under the spout. If so, it is assumed the bucket gets all the water coming from the spout.

The rate of water leaving the bucket depends on the height of the water in the bucket and the size of the hole in the bucket. They are related by the following equation:

$Q_{out} = Area_{hole} \cdot (2 \cdot gravity \cdot height_{water})^{1 / 2}$

Integrating the net flow rate into the bucket allows us to calculate the volume of water in the bucket. The Integrator is limited to ensure that the volume of the water does not go below zero and does not exceed the size of the bucket.

Because the bucket is a cylinder, we can simply divide by the area of the bucket to get the height of the water in the bucket. More complex formulas or a lookup table could be used if the bucket had a more complex shape.

Open Subsystem

Calculate Mass and Inertia Subsystem

This subsystem prepares the inputs for the General Variable Mass block. It is important to know the location and orientation of the frame to which this block is attached, for it governs these calculations. The frame is attached at the center of floor of the bucket with the z-axis pointing up.

The mass is simply the volume times the density. Since the cylinder is symmetrical, the only non-zero component is the z-axis which is half of the height of the water. The inertia tensor is calculated for a cylinder:

$I_{x} = I_{y} = mass \cdot (3 \cdot radius_{cyl}^2+height_{cyl}^2)/12$

$I_{z} = (mass \cdot radius_{cyl}^2)/2$

Open Subsystem

Mechancial Arm Subsystem

This subsystem models one of the arms on the water wheel. It consists of six rigid parts - the spoke, bracket arc, bracket sides, and the pins that attach to the bucket. Though it is modeled using six separate Solid blocks and a number of Rigid Transform blocks, it is treated as a single solid part by Simscape Multibody. A few of the solids, such as Bracket Arc, have multiple ports. Solids with multiple ports have frame definitions within the Solid block itself.

Open Subsystem

Bucket Subsystem

This subsystem models the bucket. The Revolution option is used to define the bucket wall and floor so that the bucket is empty and that it has a hole in the bottom.

Port F is where the General Variable Mass block is connected. It is attached to the center of the bucket floor. It is important to know where it is attached and how it is oriented for this governs how the center of mass is provided to the block. Since the reference frame is at the bottom of the bucket, the z-component of the center of mass input to the General Variable Mass block will be one-half of the height of the water in the bucket.

The block named Water Surface Visual provides a visual indication of the water level in the bucket. The calculated height of the water in the bucket prescribes the motion of joint Prismatic Water Surface. The volume and density of this solid is set very low to keep the dynamic effect of this solid negligible. Parameters in the mask make it possible to hide this visual effect.

Open Subsystem

Simulation Results from Simscape Logging

The plots below show the speed of the waterwheel and the height of water in each bucket. The buckets are filled when they pass near the spout, and the water drains through a hole in the bottom of the bucket.

The plots below show the power at each stage of the system. Power is lost at each stage. For example, if the bucket under the spout is full, then the energy of that water is not passed to the wheel. Friction and electrical losses occur in the mechanical and electrical stages. It is also important to note that the model neglects some of the energy. For example, the kinetic energy of the water striking the buckets is not modeled - the water is treated as if it reaches the buckets moving at zero speed. A force could be added to the model at each bucket to include this effect.