For a school project I am looking to track the sun with +/- 0.1 degree accuracy for use with a parabolic dish reflector. Say we need a final output torque of about 20Nm, what kind of gearing/motors and feedback would you guys use to accomplish this? The sun position will be found with a solar positioning algorithm.

I am pretty new to this all but from my research stepper motors seem the easiest but brushless DC motors, from what I have read, can yield better results with smoother tracking. I am confused how you even use regular brushless dc motors to achieve precision positioning. I am aware of encoders but I don't really understand why the BLDC are preferred for this particular application, and how one would implement them.. Any ideas that can help kick start my researching?


If you look a stepper motors they have not an infinite resolution: They have a fixed stepwidth, which can be break down by modulating the input signals with sin waves, but you loose torque.
So you say you need 20Nm torque. Which is a lot for a standalone stepper, therefor you need one with a gearbox. I suggest you buy a stepper with 0.5Nm, which is a pretty common value for a powerful stepper. Take a gearbox with 1:100. This means one revolution on your device's side mean 100 revolutions on your stepper's side. Therrefor you have a theoretical torque of 50Nm, which is a pretty good value for a 20Nm load.
I assume your stepper has the standard resolution of 200Steps/Revolution. Now with the gearbox you have a resolution of 20kSteps/Revolution or 0.018° per step.
I won't suggest using microstepping for this setup, Because you already have enought resolution and you will only loose torque.
The huge Problem now is the method how you "control" the stepper. You basically have two posibilities: Open and Closed Loop. Most of the time you use a stepper in openloop, because he usually does one step if you tell him to do one step. BUT you can "loose" step, which is caused by a to high load-torque. So open loop is not the best but the simplest solution. In closed loop you simply use an encoder on the stepper motor and control it. In your setup you don't have any dynamically changing loads, but this is your decision.

For BLCD it is basically the same. You will need a gearbox, too. There are gearless BLDC with this high torque, but they are not reasonable for this project (~5k$). The BLDC has no restriction is resolution, but it needs an encoder and a control loop. Unfortunatly I cannot tell a lot about typical values for BLDC.

  • $\begingroup$ hit enter by mistake.I will attach the encoders adjacent to the dish and inline with it's rotational axis'. I have been looking at these two particular set-ups: dunkermotor.com/… versus omc-stepperonline.com/… If I were to use a BLDC how would I move it to the right position? I assume I would just run it until I reach the desired value from the encoder but will it stop immediately after I issue the command? $\endgroup$ – user7690 Dec 15 '14 at 19:52
  • $\begingroup$ You need to implement a closed loop control. This mean depending in the actual Position and the target Position the motor will be powered with a specific current $\endgroup$ – TobiasK Dec 15 '14 at 19:57
  • $\begingroup$ It seems the stepper motor would be much easier to implement if that's the case. Given your suggested 100:1 ratio with a 200steps/rev stepper would you think there is any benefit to using a BLDC? I assume that with a 12bit encoder my precision would be limited by the encoder anyways? $\endgroup$ – user7690 Dec 15 '14 at 20:12
  • $\begingroup$ Stepper is sufficient in my mind $\endgroup$ – TobiasK Dec 15 '14 at 20:13

Well, the sun moves pretty slowly across the sky. So your best bet is to get a motor and gear it down heavily. I'd say the type of motor doesn't matter as much as your sensing and control loop.

you definitely want to put an encoder directly on your dish. This will eliminate errors from the gear train backlash. i think you will want a 12 bit encoder or better. this will give you slightly better than 0.1 degree accuracy. (360 / 2^12 = 0.087 degrees per count).

  • $\begingroup$ When you gear it down, the encoder can have a worse resolution $\endgroup$ – TobiasK Dec 15 '14 at 16:46
  • $\begingroup$ No, the motor is geared down, but the encoder is fixed directly to the output. $\endgroup$ – Ben Jul 19 '16 at 13:24

You have the same exact problem that all astronomical telescope drives have. The easiest solution is to align your axis so that one of them is EXACTLY parallel to the Earth's pole. Now you only need one motor to track the sun as it moves.

The second motor needs only a small range of motion and only needs to move a tiny bit every day and then it can "put on the brakes" literally to keep this axis from moving. We call this the declination axis

This type of drive moves in something like a latitude and longitude coordinate system. They are spherical not cartesian and it make tracking the sun very simple. So simple you don't need computer control.

The large motor needs to rotate about one revolution per day. The smaller motor makes a few degrees of motion per year and then reverses. It is mostly stationary.

You are in fact building a CLOCK and in fact in these these drives were called "clock drives" because SPEED is the thing you need to control not position. The sun goes not move randomly. A hundred years ago, before electronics were available, they used springs and pendulums to regulate the speed, just like you'd see in a large clock.

typically the axis that is parallel with Earth's pole called the "polar axis" is tilted to match your latitude is fitted with a large worm gear. Get the largest and best one you can afford. The pinion that drives this worm uses a motor that can be very accurately speed controlled. It will need an encoder on the motor shaft to measure speed. You will need a feedback loop to keep the speed constant as the mechanical load changes.

In any case think more about controlling exact SPEED as this drive will move very slowly and must not do so in steps or you will have huge vibration problems. If the mass of the load is high you MUST move it continuously not in anything like small steps.

One other thing: You seem to want to move this "open loop". But why not try and track the sun with some kind of sensor? All you need is a small tube with both ends closed. Face one end approximately at the sun and make a tiny pinhole in the sun facing cover. this will project a tiny dot of light on the other cover. control the speed of your polar axis drive motor so as to keep the projected dot from moving. Someone suggested placing an encoder on the shaft, no need when your target is so bright and easy to track.

Problems you will face: (1) your axis is not perfectly aligned with the Earth's axis. This means that for sure you can not use an open lop drive and WILL need to track the Sun optically. This is another reason not to depend on a shaft mounted encoder. Also I lied about the declination motor being able to clamp on the brakes. That only works in the axis are perfect. It will not be perfect.

You will have these problems but even worse it you try to build an "X, Y" type drive where one axis is vertical and the other horizontal. You will find that your two axis are not at exactly 90 degrees and they are not pointing where you think they are. You will have to track the sun with a sun sensor less you spend a LOT of money building a very rigid and precise mechanical system

the good news is that this is a well known problem and there are many ways to go. Computers make it cheaper then in the last century because we can build a cheap sun tracker to compensate for the faults of a less then perfect mechanical system.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy