Using a two Photodiodes to determine solar tracking accuracy

I am busy with a project which will track the sun on a single axis (I am building a segment of a prototype Linear Fresnel Collector).

I will use an algorithm (SPA algorithm) to determine the position of the sun and then will passively control the position of the mirror surface.

However, I want to add a sensor in the form of a photodiode to provide an error signal as a means of feedback to compare a more active control strategy to the passive one.

I am looking at using two BPX 61 photodiode’s (data sheet: http://docs-europe.electrocomponents.com/webdocs/08b4/0900766b808b4432.pdf). Although this is just a starting point and can be varied (cost is not a huge factor, although cheaper is better).

I want to connect them as shown in the attachment.

I don’t necessarily want to know absolute readings, but I would like to know one photodiodes output relative to the other (then I would know how much to move in which direction).

My thoughts so far are that the outputs of the photodiodes would be relatively noisy and would be difficult to compare as is. I am thinking that I need to first filter each individual signal (band pass, combination of high and low pass rather?) then amplify them and finally compare them (subtracting one from the other and if a certain threshold is reached then movement is necessary).

I am aware that a virtual ground will probably be needed.

I am looking at using LM351 op amps (data sheet: http://www.ti.com/lit/ds/symlink/lf351-n.pdf), or otherwise I have LF353 and LF347 at my disposal - although this can change.

What I am unsure about is what frequency I should design the filter for? I don’t need ridiculously fast measurements (the sun only moves at 15 degrees an hour, which is 6.9e-4 rpm), but i would like to sample the photodiodes at 10 Hz potentially (this is pretty flexible).

I realise I have given quite a lot of info, but the crux of my question is: do I need a filter and for what frequencies?

I have a moderate amount of theoretical knowledge but hardly any practical knowledge so any practical advice would be really awesome!

Thank you in advance for the help!

With the radiant sensitive area of the photodiodes being only 2.65 x 2.65mm, with your shade arrangement you are liable to get full sunlight covering both photodiodes. With the shade pointing directly towards the sun you need roughly half the sensitive area of both photodiodes to be in shadow so as to give useful analogue outputs from the photodiodes. An option could be to add light diffusers above each photodiode so as to make the effective sensitive area greater.

I think you need to measure the absolute readings so you can detect when the sun is not shining.

I think you are worrying too much about noise. Anyway, you could smooth your readings by working out the modified moving average with a tiny amount of code (assuming you are using an Arduino!). This is essentially an extremely basic digital filter.

I don't understand why you want to sample at 10Hz but there's no harm doing so, especially if you are using the modified moving average.

How is your photodiode tracking system going cope with varying sun elevation through the seasons?

Hi Archibald, thank you for your response.

I will look into the idea of using a light diffuser to increase the effective sensing area. Do you know of any decent manufacturers or suppliers (I am based in South Africa if that helps)?

In terms of knowing when the sun is shining; I will use the tracking algorithm to predict where the sun is and the photodiodes to make small corrections (on the scale of a couple of degrees rotation). The photodiodes are there only to provide a tracking error signal, not to actually measure any light intensity or radiation (hence needing only a relative value to the other photodiode). Also, I will activate the system at sunrise and deactivate it at sunset.

That is good news that the noise probably won't play as big a part as I had imagined; however, I figured it may be nice to build a simple filter. I just am not sure what frequencies I would need to look for? But I think I will use the modified moving average regardless.

The 10 Hz was purely a 'minimum' sampling frequency that I thought would provide me with acceptable results from the photodiode. It was also just a thumb sucked number to try and design my filter for?

I figured that even though the elevation of the sun varies throughout the year, this variation will be reflected equally on both photodiodes and therefore not play a role.

Stefros: . . . I will use the tracking algorithm to predict where the sun is and the photodiodes to make small corrections (on the scale of a couple of degrees rotation).

If you were rotating a solar panel, an error of a couple of degrees or rotation would reduce the power received by only 0.06%. From your description, I guess you are rotating just one fresnel mirror on a polar axis to concentrate the sun's energy into a linear collector, so the angle of the mirror has to be quite precise. If so, would it make sense to place the photodiodes on each side of the collector? I appreciate you would need to ensure somehow that they don't get too hot!

I expect you are thinking of getting a signal representing the difference between the photodiode signals and filtering that. Or are you thinking of filtering each photodiode signal separately? Building a filter may be "nice" but it would probably amount to no more than smoothing the signal with a capacitor. If you are thinking of something like a more sophisticated low-pass filter with cut-off at say 10Hz, any inductors would be prohibitively large so you would need to design an active filter with operational amplifiers. Anyway, why consider an analogue filter when you can do some digital signal processing within your Arduino? As mentioned, the code for a modified moving average is tiny. The modified moving average will average samples with less weight being given to samples that were taken longer ago. Another approach which is easy to code is to store the last (say) 20 digital samples in an array, then work out the unweighted average of those samples. You don't even need to shuffle all the values in the array to make the latest reading the first element in the array: simply loop an array index so you over-write the reading taken 20 samples previously wherever it is in the array. I suggest you measure the noise from a photodiode when illuminated by sunlight so you can decide whether or not some form of filtering (analogue or digital) is necessary.

Stefros: I am busy with a project which will track the sun on a single axis (I am building a segment of a prototype Linear Fresnel Collector).

I have a moderate amount of theoretical knowledge but hardly any practical knowledge so any practical advice would be really awesome!

Thank you in advance for the help!

Why don't us just use silicon Solar Cells as your Sensor? They are remarkably sensitive to off angle positioning. just limit their view of the sky using tubes like this: |500x451

You can put a load on the cells and measure voltage simply.

Chuck.

@Archibald

Yes, that may be true for solar panels. However, from the literature that I have come across for Linear Fresnel Collectors (Solar Tracking Error Analysis of Fresnel Reflector - Zheng et al, 2014), the drop in light energy collected is quite significant for tracking errors as low as 0.1 degrees. There are however a few other variables involved there.

In terms of connection, I would connect a housing for the photodiodes to the rotating shaft as opposed to the mirror surface, so heat shouldn't be too much of an issue. Although I will check this in practice.

Yes, I was thinking of filtering each photodiode signal individually and then comparing them afterwards. But I don't have much experience in this field so I don't know if it is actually necessary. I was thinking of building an active filter with op amps as this seems like it could work quite well (at least it did for a similar project I am following roughly) and I think it would help me to score a few more marks for the project!

Despite all of this, I think your idea of a digital signal processing would definitely be less of a headache and probably just about as accurate. I do however want to prove that I can build an effective solution via a filter. But I think I do need to check the noise of the photodiode in practice before I make a final decision.

@chucktodd

Hi chucktodd,

Thanks for the response. That already looks like a better version of what i was trying to do, so thank you for that!

I've done a quick Google search of 'silion Solar Cells' and it seems they are essentially PV panels? Are there specific sensors that are readily available like this, could you recommend any?

Stefros: @chucktodd

Hi chucktodd,

Thanks for the response. That already looks like a better version of what i was trying to do, so thank you for that!

I've done a quick Google search of 'silion Solar Cells' and it seems they are essentially PV panels? Are there specific sensors that are readily available like this, could you recommend any?

Yep, Exactly.

4v 100ma Silicon Solar panel 60mm x 60mm

Chuck.

Thanks Chuck!

Use two photodiodes, but make the shade T-shape in cross section so each photodiode is partly shaded even when pointing directly towards the sun.