[Date Prev][Date Next][Thread Prev][Thread Next] - [Date Index][Thread Index][Author Index]

*Subject*: RE: [amsat-bb] Programming question - dish angle*From*: Jim White <jim@xxxxxxxxxxxxxxxxxxxxx>*Date*: Tue, 07 Oct 2003 21:04:50 -0600*In-Reply-To*: <PFEOIPHIGIHONCFOIOGCGEMCCIAA.rwmcgwier@comcast.net>

Phil, I'd suggest the same method for any situation where you need to derive a formula from a set of related data. I describe it in my paper on the W6OAL EME elevation controller in the AMSAT Journal last year. In short you are going to measure the elevation angle and build a table that relates the angle to the counts, then drop that table into a curve fitting program and let it tell you the formula. Put that into your mpu and you can have a readout of angle. This is the same method of end to end calibration I use for satellite telemetry. (The paper is also at http://www.coloradosatellite.com/Papers/ElevationController/EleControllerDescription.htm After publication we did the calibration and it turned out to be linear.) Start with the dish at one end of the elevation range, say 0. Write down the counts in a table. Put a device on the dish that reads out the angle, a protractor with a string and weight works fine. Move it up a few degrees while using the mpu to count the pulses. Make that a table row, angle vs. counts. Add several more data points in the same way, up through your highest elevation, building more rows of the table. You will want at least 10 points, preferably more. Google for the program Curve Expert and download it (make a donation). Type the table into Curve Expert. Click on the button to fit the curve. You may find it's linear but more likely it will be a curve of some sort. Usually a 2nd order quadratic will fit these mechanical situations nicely. So click on the Curve Expert button that does a quadratic fit. It will show you your data points and the curve it fit to them. If it's a good fit you are home free. Click on Info to see the formula and coefficients. Click on copy to grab the data, and paste it into some doc. Those will be the coefficients a, b and c in y = a + bx +cx^2. Program the mpu to calculate the angle from the counts using that formula and you have it. If a 2nd order won't fit it well have Curve Expert try a 3rd order. If that doesn't fit you probably did something wrong gathering the data. A tip, when programming the formula it's not necessary to use the square (^ in C) function. Do it this way: angle = a + (b*x) + (c*(x*x)) TVRO controllers do this the same way. Some (like my 4DTV box) will even let you find one satellite near the E end of the arc and another near the W end and it will calculate the correct pulse count to point the dish at every satellite in the arc. Essentially when you tell it where two birds are in terms of the actuator counts, it knows the formula for finding every other position in the arc. In the case of a BUD it's linear so it's dead easy for the controller. Jim >Phil: > >Read up on CORDIC angle computations. All >rotations done using only +/-'s. Tailor >made for this. However, I think your >job might be easily done by a table lookup >if you can store a large enough table lookup. >I take it you can not do multiply's? If so, >then you could use a smaller table and do >linear or cubic spline interpolation. > >Bob >N4HY > > >-----Original Message----- >From: owner-AMSAT-BB@AMSAT.Org [mailto:owner-AMSAT-BB@AMSAT.Org]On >Behalf Of Phil >Sent: Tuesday, October 07, 2003 6:51 AM >To: amsat-bb@AMSAT.Org >Subject: [amsat-bb] Programming question - dish angle > > >Hello everyone, > >I'm looking for ideas. I have some code that counts the azimuth and >elevation >pulses from my dish rotator and then displays the positions on a 2 line 16 >character LCD display. > >There is a direct correlation between counted pulses for azimuth position >but >not for elevation. I apply the cos rule to get the dish angle based on the >length of the actuator arm. So far so good. > >It seems like a good idea to have a PIC take over the roles of pulse >counting >and display because the CPU is already pretty busy with Doppler correction >calculations and uplink aerial positioning, plus other Amateur Radio related >tasks. However, I can't think of any way to calculate the elevation angle >using the PIC's instruction set. > >How do pulse counting controllers usually accomplish this feat? Look-up >tables >maybe? > >-- >Regards, >Phil. > > >---- >Sent via amsat-bb@amsat.org. Opinions expressed are those of the author. >Not an AMSAT member? Join now to support the amateur satellite program! >To unsubscribe, send "unsubscribe amsat-bb" to Majordomo@amsat.org > > >---- >Sent via amsat-bb@amsat.org. Opinions expressed are those of the author. >Not an AMSAT member? Join now to support the amateur satellite program! >To unsubscribe, send "unsubscribe amsat-bb" to Majordomo@amsat.org ---- Sent via amsat-bb@amsat.org. Opinions expressed are those of the author. Not an AMSAT member? Join now to support the amateur satellite program! To unsubscribe, send "unsubscribe amsat-bb" to Majordomo@amsat.org

**References**:**Programming question - dish angle***From:*Phil

**RE: Programming question - dish angle***From:*Robert McGwier

- Prev by Date:
**RE: Programming question - dish angle** - Next by Date:
**Re: Nova 2.1v Crashes. Possible bug?** - Prev by thread:
**RE: Programming question - dish angle** - Next by thread:
**Important...VK9 info** - Index(es):