diff options
Diffstat (limited to 'Satellite_Communications_by_D_Roddy/3-The_Geostationary_orbit.ipynb')
-rw-r--r-- | Satellite_Communications_by_D_Roddy/3-The_Geostationary_orbit.ipynb | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/Satellite_Communications_by_D_Roddy/3-The_Geostationary_orbit.ipynb b/Satellite_Communications_by_D_Roddy/3-The_Geostationary_orbit.ipynb new file mode 100644 index 0000000..f8ded12 --- /dev/null +++ b/Satellite_Communications_by_D_Roddy/3-The_Geostationary_orbit.ipynb @@ -0,0 +1,197 @@ +{ +"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 +} |