{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 3: The Geostationary orbit" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 3.1: Calculate_the_azimuth_angle_for_an_earth_station_antenna.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "//Variable Declaration\n", "Pss=-90 //Location of geostationary satellite(degrees)\n", "PE=-100 //Longitude of the earth station antenna(degrees)\n", "LE=35 //Latitude of the earth station antenna(degrees)\n", "//Calculation\n", "B=PE-Pss //Angle between planes containing a and c(degrees)\n", "b=acos(cos(B)*cos(LE)) //Angle of plane containing b(radians)\n", "A=asin(sin(abs(B*3.142/180))/sin(b)) //Angle between planes containing b and c (radians)\n", "A=A*180/3.142 //Converting A into degrees\n", "//LE>0 and B<0 by observation\n", "Az= 180-A //Azimuth angle(degrees)\n", "//Result\n", "printf('The azimuth angle for the given earth station antenna is %.2f degrees',Az)" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 3.2: Find_the_range_and_antenna_elevation_angle.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "//Variable Declaration\n", "R=6371 //Radius of earth (km)\n", "aGSO= 42164 //Circumference of earth(km)\n", "b=0.632 //values of b from Example 3.1 (radians)\n", "//Calculation\n", "d=sqrt(R**2+aGSO**2-2*R*aGSO*cos(b)) //Range of earth station antenna (km)\n", "El=acos(aGSO*sin(b)/d)*180/%pi //Elevation angle(degrees)\n", "//Results\n", "printf('The range of earth station antenna is %.0f km',d)\n", "printf('Elevation angle is %.0f degrees',El)" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 3.3: Determine_the_angle.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "//Variable Declaration\n", "LE=49 //Latitude of earth station(degrees)\n", "aGSO=42164 //Circumference of earth(km)\n", "R=6371 //Radius of earth(km)\n", "//Calculation\n", "d=(R**2+aGSO**2-2*R*aGSO*cos(LE*3.142/180))**0.5 //Range of earth station antenna\n", "El0=acos(aGSO*sin(LE*3.142/180)/d) //Elevation angle(radians)\n", "El0=El0*180/3.142 //Converting El0 to degrees\n", "delta=round(90-El0-LE) //Angle of tilt required for polar mount\n", "//Results\n", "printf('The Angle of tilt required for polar mount is %d degrees',delta)" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 3.4: Determine_the_limits_of_visibility.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "//Variable Declaration\n", "LE=48.42 //Latitude of earth station(degrees)\n", "PE=-89.26 //Longitute of earth station(degrees)\n", "Elmin=5 //Minimum angle of elevation(degrees)\n", "aGSO=42164 //Circumference of earth(km)\n", "R=6371 //Radius of earth(km)\n", "//Calculation\n", "Smin=90+Elmin\n", "S=asin(R*sin(Smin*3.142/180)/aGSO)*180/%pi //Angle subtended at the satellite(degrees)\n", "b=180-Smin-S //Angle of plane containing b(degrees)\n", "B=acos(cos(b*3.142/180)/cos(LE*3.142/180))*180/%pi//Angle between the planes containing a and c(degrees)\n", "//Results\n", "printf('The satellite limit east of the earth station is at %d Degrees approximately',round(PE+B))\n", "printf('The satellite limit west of the earth station is at %d Degrees approximately',round(PE-B))" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 3.5: calculate_the_longitude.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "//Variable Declaration\n", "y=2000 //year\n", "d=223.153 //day\n", "n=1.002716 //mean motion(1/day)\n", "w=272.5299 //rate of regression of nodes(degrees)\n", "e=0.000352 //Eccentricity\n", "W=247.9161 //Rate of regression of line of apsides(degrees)\n", "M=158.0516 //Mean Anomaly at given time\n", "JD00=2451543.5 //Julian days for Jan 0.0 2000\n", "//Calculation\n", "JD=JD00+d //Julian days for given day\n", "JDref=2415020 //Reference Julian days\n", "JC=36525\n", "T=(JD-JDref)/JC //Time in julian Centuries\n", "UT=d-223 //Universal Time, fraction of the day\n", "GST=(99.6910+36000.7689*T+0.004*T**2)*3.142/180 //GST(radians)\n", "UT=2*%pi*UT //Universal time converted to fraction of earth rotation (radians)\n", "GST=(GST+UT)*180/3.1421\n", "GST=(modulo(GST,360))//using fmod multiplr revolutions are removed (degrees)\n", "v=M+2*e*M //True Anomaly(degrees)\n", "Pssmean=W+w+M-GST //longitude for INTELSAT(degrees)\n", "Pssmean=modulo(Pssmean,360) //fmod removes multiple revolutions\n", "Pss=w+W+v-GST//longitude for INTELSAT(degrees)\n", "Pss=modulo(Pss,360)//fmod removes multiple revolutions\n", "//Results\n", "printf('The longitude of INTELSAT 805 is %.3f Degrees',Pss)\n", "printf('The average longitude of INTELSAT 805 is %.3f Degrees',Pssmean)\n", "// Note : Answers may be different because of rounding error. Please check by calculating all variables." ] } ], "metadata": { "kernelspec": { "display_name": "Scilab", "language": "scilab", "name": "scilab" }, "language_info": { "file_extension": ".sce", "help_links": [ { "text": "MetaKernel Magics", "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" } ], "mimetype": "text/x-octave", "name": "scilab", "version": "0.7.1" } }, "nbformat": 4, "nbformat_minor": 0 }