Concetrating parabolic trough – part 1

Posted in i make things, solar on January 16, 2011 by makingthingswork

I’ve been looking into solar for water heating and (less so) power generation. I’ve decided that i like concentrating collectors since there’s less to insulate.

I did some tests and decided that while a parabolic collector is great, you can make a ‘good enough’ collector with far less precise construction techniques. I like that. I’m terrible at making things accurately, especially when they can be subjected to nature, and made from wood or other materials (not necessarily straight).

I’m a big fan of ‘coroplast’, aka corrugated plastic sheet. It costs about $15 for a 4×8 sheet of the stuff and it has some great qualities. Most of it is polypropylene, and can be heat welded if that’s what you’re after.

The concept is like this:

Take a piece of wood and attach some plastic sheet to it on one side.

Build a riser about 3′ out and put a pipe or other support on it, which will force the plastic sheet up into a bent shape.

Build an insulated collection mechanism on the top.

This has several key benefits:

  • Small surface to collect. Small surface means less materials and less surface to lose heat from
  • Insulation above collector. Convection is the dominant heat loss mechanism in these collectors, and by keeping all the hot air below insulation, you will lose a lot less
  • ease of construction. Not much to it at all

The main drawback is that you will have to aim it periodically. Thats another post.

After reading some engineering pages, i learned that a cantilever subjected to a strain at the end of it (like proposed above) will form a parabola-like shape. This is apparently well known in amateur radio circles as a ‘stressed parabola’. To get a good focus, you need a long focal length. For solar heat, i think you can get by with a looser focus.

I figured out the math to calculate the focus points for this kind of curve, and within a 10degree arc of aiming (eg if 0 deg is aimed directly at the sun, a +/- 5 deg range) it focuses all the light at a 7-8″ wide spot about 18″ off the origin point (eg x=0,y=0)

So i did a ton of calculations, sought some feedback, and was told it wouldn’t work. So i built a little one. I took a 2×4 piece of coroplast and leaned it on a char, then measured the height every 10 cm. I then did a curve-fit and plotted the focus. It was not anywhere near the same equation as was predicted by the engineering data i had, but the curve fit was spot on just the same, and it gave a 6″ focus! That’s great.

I then built a rig which would be a little more like what i would actually use:

The plastic is attached at 3 points: base, about 1/3 and at the top. It was minimally forced into place, but the middle support was pushed down a little, and i attached them in this order: bottom, middle, top. I should have fixed the top and bottom then attached the middle as ‘insurance’. As you will see later, forcing the middle throws off the curve-fit.

Basic theory:

Every point on a curve has a tangent line, which is the line that just ‘kisses’ the curve at that spot. When a ray of light hits the curve, it will reflect as if it had ‘bounced’ off the tangent line.

The Tangent can be calculated as the derivative of the curve, which is basic Calculus, but isn’t really very difficult to do.

So, to calculate the reflection slope, you do this:

F(ts)=1/tan(2*atan(1/ts)-irad)

ts is the tangent slope. irad is the offset of the inbound ray from vertical in radians.

You can then calculate the y-intercept of the line, and plot it.

Here are some graphs:

The colored lines should show ‘inbound’ (eg top to curve), but i didn’t plot them backwards. Too lazy.

This graph shows where the focus of the reflections would be. As you can see, it’s a pretty tight focus, however the curve does not match as well for this setup, so will need experimental verification.

I should note that the plastic will be coated with some sort of reflective coating (reflective mylar, etc)

PWM DC Motor control circuit

Posted in electronics, i make things on January 16, 2011 by makingthingswork

I’ve decided to start posting some of my makings again. Not sure what it is about January, but here we are.

I picked up a few 12v DC motors with the idea of making a variable speed controller for them. DC motors lend themselves to it, by doing PWM and/or lowering the voltage. I may eventually make a variable voltage driver, but in my experiments, PWM works better, since the higher voltage puts more current and therefore more torque while it’s on.

Here’s the circuit:

This circuit switches ground on/off. The motor/pump should be connected to the +voltage , and the motor ground to the MGND line. Should work with just about any input voltage. I’ve used it at +5 and +12v. Different voltage will need different values for R3, if you have an LED.

The output is out-of-phase with the PWM input. The PWM fet should be a fast switching type, and the other FET should be a power FET. I used IRFZ34N for the power fet, and VN1304 for the switching FET (ignore the part # in the schematic, that was just to get the correct pinout)

Quick description:

R1, Q3, D1, Q2 form a gate driver circuit for the Power FET. When the PWM pulses high, the power fet is turned off. This means the motor is out of phase (opposite) with the PWM input

R1 prevents too much power from going from +12v to GND when the gate is pulled low

D2 is a flywheel diode, to contain any back EMF generated by the motor.

R3, LED1 are just an indicator, and is optional. R3 just sets the current on the LED.

C1 is optional and may smooth the PWM signal out, if desired.

C2 will smooth out the load on the power source. Recommended to keep it.

I have tested this on 12v motors, and it works great! I do recommend a heatsink on the power fet.

I used an arduino to drive a PWM pulse, and used a potentiometer to vary the speed.

why?

Posted in Uncategorized on January 21, 2008 by makingthingswork

I spend a lot of time with technology, and usually things don’t work exactly right the first time.

I glean a lot of info off the web in various places in the process of getting things back in the ‘working’ category, and I figure I should give as well as I get.

So here we go.  I hope it helps.

Native resolution on my IN72

Posted in kevo, Linux, solved on January 21, 2008 by makingthingswork

My 4805 died a bit ago – threw a segment on the colorwheel, and that was it.

I found an IN72 on craigslist, and the price was right so I picked it up.

When I connected the DVI out on my mythtv box (aka the ‘kevo’), I got no love. No signal, nothing. This was strange since the 4805 worked fine, and they are basically the same.

I restarted xorg, and it came up ok, but it was at 720×480, not 848×480. I want to run native resolution if I can, so I spent the rest of the afternoon fighting with it.

After much troubleshooting the problems were:

the IN72 has a native resoltution of ~848×480, but it seems to report that it has a native resolution of 720×480 for some reason. Why they decided to do this, I have no idea.

Fortunately, the nvidia driver had an option to ignore the ‘native resolution’ setting.

I configured that, then found another problem. It couldn’t figure out the timing for the new mode for some reason. Internet to the rescue.

Here’s the nvidia config i ended up using:

Section "Device"
Identifier "nVidia Corporation NV34 [GeForce FX 5200]"
Driver "nvidia"
# some stuff omitted, not relevant
Option "ExactModeTimingsDVI" "true"
Option "ModeValidation" "NoDFPNativeResolutionCheck"
EndSection

And the modeline:

Section "Monitor"
Identifier "InFocus"
Modeline "848x480@60" 37.293 848 936 984 1104 480 508 509 563
EndSection

Some helpful commands:

## start Xwindows/xorg with verbose logging (logs to /var/log/Xorg.0.log):
startx -- -logverbose 6

Related error messages:
(WW) NVIDIA(0): Mode is rejected: Mode (848 x 480) is too large for DFP
(WW) NVIDIA(0): Native Resolution (Max: 720 x 480).

(WW) NVIDIA(0): Unable to use mode "848x480@60" for IFS InFocusIN72-D (DFP-0);
(WW) NVIDIA(0): cannot compute backend DFP timings (mode is larger than
(WW) NVIDIA(0): native backend 720 x 480).