csete / gpredict

Gpredict satellite tracking application
http://gpredict.oz9aec.net/
GNU General Public License v2.0
878 stars 250 forks source link

Rotator controller: improve tracking with flips(go smooth near zenith). #140

Open bychek opened 6 years ago

bychek commented 6 years ago

Rotators with 180+ degrees of elevation are capable to go near/through zenith smoothly, without large azimuth rotations. It's useful to keep antenna direction in tolerance limits.

One example to test is FO-29 pass over Moscow/Vnukovo at 18-06-07T17:03+03. I use "rotctld -m 1 --set-conf=min_az=0,max_az=360,max_el=180 -vvvvvv".

Central angle logic(first commit) is needed to implement smooth zenith flip. I'm not sure it makes sense to use the first commit alone. It's also an option to use central_angle() only for rotators with flip support, I'm not sure which way is better.

I'm also thinking about futher improvements in set_flipped_pass()/is_flipped_pass(): 1) If next pass doesn't go through the end stop we are free to use flip to minimize rotator movement and time to catch next satellite. 2) If I'm right it's possible to simplify/refactor is_flipped_pass() using new shortest_azimuth_path()/stoppos_bypass_angle() functions.

csete commented 6 years ago

Hi @bychek

Thanks for the patch. I am very busy at the moment, so it may take a while before I can review your patches. My original plan was to work on gpredict again around September/October and I don't think I will have much time before that, sorry.