Frisbees are super interesting! They generate lift in a way similar to a wing, but because they are so short in a transverse direction, 3d effects dominate. The easiest way to keep stable flight with this sort of shape (aside from gyroscopic stabilisation i.e. throwing it) is to ensure a turbulent boundary layer – which is why frisbees have ridges! The ridges serve to trip the boundary layer and keep it under control, maintaining a more steady lift distribution. Frisbees without ridges are much more sensitive to angle of attack, and harder to throw properly.

I wanted to model this boundary layer separation – and I still have a lot of learning to do! Below is a Q contour animation of my latest model, using LES with the smallest elements on the order of the Taylor microscale. The frisbee was set up at a 5 degree angle of attack with a 15 m/s headwind, which is identical to the image above. The geometry does not have ridges, but it does have a rotating wall boundary condition (counter-clockwise when viewed from above). The weird upstream artifacts are due to a poor mesh from snappyHexMesh – the sharp transition between cell sizes interferes with the LES algorithm, which uses the cell size as a spatial filter – I’ll see if I can get a structured mesh set up.

The aerodynamic coefficients given by this model are ~ 0.20 and ~ 0.10 – the drag coefficient is close to that measured by Potts but the lift coefficient should be closer to 0.4. This likely has a lot to do with the poor mesh.

]]>A quick study looking at the Strouhal number for a medium-length cylinder – above is an animation of Q isosurfaces, coloured by vertical velocity. I ran some 2d preliminary models, followed by a 3d model with a structured mesh that I then refined. The Reynolds number was 51,355, which according to data from Achenbach (1968) is in a transitional range for the coefficient of drag:

My results gave = 0.73, which is higher than for a long cylinder the above chart indicates – likely due to the three-dimensionality of the flow around the ends.

A plot of vs time clearly shows the oscillations of the Karman vortex sheet, at a frequency of about 37 Hz. This gives a Strouhal number of about 0.12, which is not far off experimental values of 0.18-0.50.

Also visible in the plot is that after about 0.4s, the oscillations become unstable and appear to ‘beat’. The RMS value does remain pretty constant at around 0.4, but I’m curious whether this is due to end effects or maybe just the integration schemes used!

]]>I wasn’t entirely happy with my results from the last attempt, thinking most of the error was due to an improper mesh, so I ran the same case using a better mesh, and an assortment of turbulence models in 2d and 3d.

The reattachment length was found by evaluating the wall shear stress along the bottom wall of the downstream section – where this is zero is the reattachment point. I found the standard model did not reach mesh convergence at any reasonable point, but both and realisable did, giving ~ 4.8 and 5.6 respectively. Both of these are still below the real steady-state value of 7.0, but are much more promising than last time!

I used for the 3d case as well – it was developed specifically for internal flows and is supposedly the best RANS model for BFS flow, but it looks like I need to work on my calibration as I got an of 4.5! This may also be because I imposed a symmetry condition on the centre of the duct – the flow has been reported as two-dimensional along this plane but there are transient 3d effects to take into account.

]]>That was a long drive! 9 days along the south coast.

It was smooth sailing except for a few hiccups – thankfully I brought some tools and the MX5 workshop manual or it would have been a lot longer than 9 days…

]]>

This was designed for a machine design unit.

Requirements were to cut 3 mm mild steel sheet, up to 2400 mm wide, and be powered by one hydraulic cylinder while still maintaining a straight & level cut.

Several iterations led to a design that could be CNC machined from one single 20 x 1800 x 6000 plate, with a few extra small parts.

]]>- A quick return mechanism with a return ratio of 24:1
- 3d printable herringbone gears
- The gears can be swapped to change the ratio, without changing any other parts. Ratios of 1:4,6,8,10,12 are possible
- The whole mechanism was designed for assembly: no more than two parts come together at any stage

I’d been using spiral-faced cams for quick-return purposes and thought maybe there was a better option. The Whitworth quick return (below) is a crank-rocker with one slow stroke and a quick return stroke, constructed by having the distance from crank pivot to rocker pivot “almost” equal to the crank length. The return ratio can be defined as , where is the crank angle when the rocker reaches it’s maximum, and similar for .

With a crank length equal to 90% of the pivot distance , the WQR has a return ratio of about 6.5. A return ratio of 24:1 requires the ratio to be about 99.2% – a tolerance unachievable with 3d printing and difficult in any other manufacturing method. But the double-crank WQR can be used as an input for the crank-rocker WQR – giving a two-stage (or double) quick return linkage that has a high return ratio while using low-tolerance links. The prototype was a good proof-of-concept but of course, a high return ratio requires very little torque on the output – even slight resistance stops the motion.it was a success

Herringbone gears provide the same smooth operation as helical gears, without the additional axial load produced by the helical teeth. They can be modelled in the same way as helical gears, except with a loft extending from the midplane to each face, in opposite directions. The ones for this project range in module from 1.2 mm to 0.8 mm, and came out pretty well, with smooth operation all around.

I wrote a script to size the gears for this project. Given a set of desired ratios, the script performs a brute-force search through space to find a two-stage gearbox that can swap gears to satisfy all the desired ratios, while fitting in the available space. It then outputs a few of the best options for each ratio. For this project I chose 1:4,6,8,10,12 and the selected gears are: (given gear 1 with , meshing gear two with , at module denoted as )

The 1:10 gearset doesn’t share any gears with any other set, so I didn’t bother actually printing that set. However all four other ratios run smoothly and are easy to interchange.

The mechanism was designed such that only two parts come together at any point. This was a lot easier to assemble than the last big linkage I printed, but required a lot more fasteners. It was easy to change the gears, as the faceplate could be removed without disturbing the rest of the layout. I think that the DFA design made the skeletal aesthetic a lot “noisier” and less aesthetically pleasing than a fully-aligned design as before.

Overall this was a successful experiment and a good way to further improve my printing skills.

]]>Both of these are spur differentials, printed about 6 months apart.

The white one was designed when I was new to both 3d printing and gears, so the involute is not quite right and the tolerances are sloppy. There is a lot of play and occasional jamming, and it was constructed using screws fixed with loctite.

The orange/blue one is more recent and uses my helical gear model. There is just enough clearance between all rotating parts to allow smooth rotation without any significant backlash. The nuts are all press-fit and sit flush with external surfaces – the shafts are designed such that the screws can be tightened in place without loctite. Overall a much better model!

]]>]]>

I have a Finnex Planted+ 24/7 RGB LED light – the W/R channels provide the necessary light for photosynthesis while the G/B channels allow for colour mixing, to give a sunrise/sunset cycle. The trouble is, the timing for this cycle is fixed and there’s no way to vary the photoperiod – which is actually a bit long for my tank and leads to algae buildup. So I’ve had to keep the light on a timed socket to reduce the photoperiod, which sadly means no more sunrise/sunset cycle. If only I had a better way to control the light…

I’m looking at moving to a longer tank, which will need a new light. Commercial options run at about $250 minimum for the LEDs and controller – if only I had a decent controller I could use cheaper LEDs!

Commercial LED controllers (for example the Phillips Hue) are cheaper, but still a bit pricey – and don’t give the flexibility I’m looking for. So I’m planning to build a custom 4 channel light controller. It will need to interface with the existing LED strip in the Planted+; after some poking around I’ve found that the microcontroller in the light supplies +15V to the LEDs and runs PWM switching to ground.

The controller will be based on a Raspberry Pi 3, because I had one lying around and it will allow for easy wifi updates of the light program. I’ll design a PCB to be printed cheaply (e.g. SeeedStudio) and plug directly into the RPi – the circuit will mimic the existing low-side switching arrangement. The whole controller will be powered by two SMPS’s – 25W@5V for the RPi and 70W@15V for the LEDs. The existing power supply is rated for 15W@15V, so this should allow for almost 3x the light level.

The total project cost should be under $100 (plus a bit of work) and will allow for much more flexibility than a similarly-priced commercial option.

]]>Traditional gear manufacture involves using off-the-shelf tools to cut gears from blanks, and proper use of the tools will give accurate geometry. But 3d printing the gears requires an exact model of the involute tooth surface, which is a bit more tricky. Solidworks includes a “gear” template, but this is just a placeholder, not an accurate model. Some models can be found online, but these are almost always in imperial units. I wanted a parametric model of a precise involute cylindrical gear, using the metric standard, so I made my own.

There are 5 key numbers that define a given gear:

- – module
- – number of teeth
- – pressure angle
- – helix angle
- – profile shift

I’ll discuss the last two in a later post. For now we can assume they are equal to zero, so that the model is only dependent on the first three.

A metric gear has two primary tooth size measurements aside from : – the addendum height, and – the root clearance. These are shown below in a sketch of an “unrolled” tooth. Typically, and . Four important dimensions associated with the gear are:

- – the pitch diameter
- – the tip diameter
- – the root diameter
- – the base circle diameter

Involute gears use a tooth profile following an involute curve – this is by definition the curve obtained by unrolling a string from a circle. The “string” is always tangent to it’s “base circle” and perpendicular to the curve obtained, as shown below for a base circle of radius . The position of point is . Point on the involute is then:

This equation can be used directly in Solidworks as an equation curve defining the tooth face, however it only defines one side of one tooth. Ideally the modelled tooth will be symmetric about the x-axis, so the involute needs to be offset (rotated around the base circle) by the appropriate amount. We also need to know when to start and end the curve.

The rotated involute curve can be formulated by multiplying the involute equation above by a rotation matrix , which rotates the curve counter-clockwise about the origin by radians. The generic equation for an involute of a base circle with radius , rotated by angle is:

The involute curve needs to be rotated such that the tooth axis lies on the x-axis, as depicted below. This angle can be separated into two components:

- The half-tooth-width angle
- The involute angle

So , and the involute should be rotated **clockwise** by this angle, so . The equation for this curve is:

For the opposite of the tooth, the involute “string” is beign unrolled clockwise: simply take . The curve is then rotated counter-clockwise, so take .

What are the limits of the curve? From the above diagram, the distance between the origin and is . Then . But we also have , so the angle where point is at a diameter is given by:

The maximum point of the curve (at the tip) is then given by .

The minimum point (at the root) is given by .

The tooth profile is then formed by tracing the involute curve between these limits. Except for some gears ( – see below) the root is actually below the base circle – and the involute is not defined below the base circle.

In this case I model the tooth flank as a straight, radial line. In reality the tooth flank is sometimes undercut, and I will go into this in another post.

]]>