Close

Design details

A project log for Paste Extruder using Moineau Pump

doctekdoctek 11/23/2014 at 23:450 Comments

The source code for the designs, the python scripts, and the dxf profiles may now be found on github: https://github.com/doctek/Moineau-Paste-Extruder

If you want the stl files for printing, they are posted here: http://www.thingiverse.com/thing:548390

There's a bit of video of the pump in action as well. Not pumping any paste yet, but the pump has been tested with yogurt and pumped that (easy target!).

OK. Let's talk about the design of the Moineau profiles. The equations I use are those from Wikipedia for the hypo- and epi- cycloids. http://en.wikipedia.org/wiki/Hypocycloid

http://en.wikipedia.org/wiki/Epicycloid

The values for R and r in the parametric equations come from http://www2.mat.dtu.dk/people/J.Gravesen/MoineauPump/

For example, let's consider this design: http://www2.mat.dtu.dk/people/J.Gravesen/MoineauPump/HypoEpi3_2.html

The impeller will use the two-lobe version, so that r = 1 and R = 4.

The equations for the two sections are:

\color{White} \large epicycloid: x (\theta) = (R + r) \cos \theta - r \cos \left( \frac{R + r}{r} \theta \right) \color{White} \large hypocycloid: x (\theta) = (R - r) \cos \theta + r \cos \left( \frac{R - r}{r} \theta \right)

The only trick is to switch between the two curves at the appropriate time. The python code to implement the equations looks like this:

def xhypo(t):
    return 3*math.cos(t)+math.cos(3*t)

def xepi(t):
    return 5*math.cos(t)-math.cos(5*t)

def x(t):
	if t >= 0 and t < math.pi/2:
		return xhypo(t)
	elif t >= math.pi/2 and t < math.pi:
		return xepi(t)
	elif t >= math.pi and t < 3 * math.pi / 2:
		return xhypo(t)
	else:
		return xepi(t)

As mentioned, the complete source code is at GitHub. The 3-lobe version makes the chamber for the pump. The appropriate values are r = 1 and R = 5. The source code for the 3 lobe profile is also in the repository.

The parameter t varies from 0 to 2 pi. I divide the interval into 100 steps. The sdfx.py library is used to create the dfx files that will be used in OpenSCAD to create the 3D pump chamber and impeller.

In OpenSCAD, the profile is imported and extruded with rotation.

module impeller()
{
				linear_extrude(height = H, center = false, convexity = 20, twist=phi)
				import("moinDual.dxf", layer = "STATOR");
}

For the impeller (two lobe), phi is 360 degrees. The height I use is H = 30mm. Both of these values could be varied for experimenting. The rotation of the three lobe profile for the pump chamber is only 2/3 of 360, or 240 degrees. Seems like something is wrong, but that's what it takes to make the impeller fit in the chamber. The chamber profile is scaled up 20% - another value that could be varied experimentally.

Next time, I'll discuss the Schmidt coupling and why it's necessary.

Discussions