From 206d0358703aa05d5d7315900fe1d054c2817ddc Mon Sep 17 00:00:00 2001 From: Jovina Dsouza Date: Wed, 18 Jun 2014 12:43:07 +0530 Subject: adding book --- Satellite_Communication/chapter_2.ipynb | 838 ++++++++++++++++++++++++++++++++ 1 file changed, 838 insertions(+) create mode 100644 Satellite_Communication/chapter_2.ipynb (limited to 'Satellite_Communication/chapter_2.ipynb') diff --git a/Satellite_Communication/chapter_2.ipynb b/Satellite_Communication/chapter_2.ipynb new file mode 100644 index 00000000..233fcb29 --- /dev/null +++ b/Satellite_Communication/chapter_2.ipynb @@ -0,0 +1,838 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "chapter 2: Satellite Orbits and Trajectories" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.1, page no-36" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''satellite velocity'''\n", + "import math\n", + "\n", + "#Variable Declaration\n", + "r1=6370.0 # Earth's Orbit in km\n", + "r2=630.0 # Height of satellite from surface in km\n", + "G=6.67*10**-11 # Gravitational constant inNm^2/kg^2\n", + "M=5.98*10**24 # Mass of earth in kg\n", + "\n", + "#Calculation\n", + "R=r1+r2\n", + "v=math.sqrt(G*M/(R*10**3))\n", + "\n", + "#Result\n", + "print(\"The velocity of sattelite %.2fkm/s\"%(math.floor(v/10)*10**-2))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The velocity of sattelite 7.54km/s\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.2, page no-37" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''orbit parameters'''\n", + "import math\n", + "\n", + "#Variable Declaration\n", + "A=45000.0 #Apogee in km\n", + "P=7000.0 #Perigee in km\n", + "\n", + "\n", + "#Calculation\n", + "#(a)\n", + "a=(A+P)/2\n", + "#(b)\n", + "e=(A-P)/(2*a)\n", + "#(c)\n", + "e=(math.floor(e*100))/100\n", + "d=a*e\n", + "\n", + "#Result\n", + "print(\"(a)\\nSemi-major axis of elliptical orbit is %d km\"%a)\n", + "print(\"\\n(b)\\nEccentricity = %.2f\"%e)\n", + "print(\"\\n(c)\\nThe distance between centre of earth and centre of ellipse is %d km \"%d)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)\n", + "Semi-major axis of elliptical orbit is 26000 km\n", + "\n", + "(b)\n", + "Eccentricity = 0.73\n", + "\n", + "(c)\n", + "The distance between centre of earth and centre of ellipse is 18980 km \n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.3, page no-37" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Orbit parameters'''\n", + "#Variable Declaration\n", + "ma=42000.0 # Major axis distance in Km\n", + "P=8000.0 # Perigee distance in Km\n", + "\n", + "\n", + "#Calculation\n", + "A=ma-P\n", + "e=(A-P)/ma\n", + "\n", + "#Result\n", + "print(\"Apogee=%dkm\\n Eccentricity=%.2f\"%(A,e))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Apogee=34000km\n", + " Eccentricity=0.62\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.4, page no-37" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Orbit parameters'''\n", + "\n", + "#Variable Declaration\n", + "e=0.6 #Eccentricity\n", + "d=18000.0 #distance between earth's centre and centre of ellipse\n", + "\n", + "\n", + "#Calculation\n", + "a=d/e\n", + "A=a*(1+e)\n", + "P=a*(1-e)\n", + "\n", + "\n", + "#Result\n", + "print(\"Semi-major axis of elliptical orbit is %d km\\n Apogee distance=%dkm\\n Perigee distance=%dkm\"%(a,A,P))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Semi-major axis of elliptical orbit is 30000 km\n", + " Apogee distance=48000km\n", + " Perigee distance=12000km\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.5, page no-38" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Orbit Eccentricity'''\n", + "#Variable Declaration\n", + "AP_diff=30000.0 #difference between apogee and perigee in km\n", + "AP_sum=62800.0 #Apogee+perigee\n", + "\n", + "\n", + "#Calculation\n", + "E=AP_diff/AP_sum\n", + "\n", + "\n", + "#Result\n", + "print(\"Orbit Eccentricity= %.3f\"%E)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Orbit Eccentricity= 0.478\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.6, page no-38" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Velocity of satellite at particular point '''\n", + "import math\n", + "#Variable Declaration\n", + "R=7000.0*10**3 # sattelite orbit in m\n", + "mu=39.8*10**13 # constant G*M in Nm^2/kg\n", + "A=47000.0*10**3 # appogee distance in m\n", + "P=7000.0*10**3 # perigee distance in m\n", + "\n", + "\n", + "#Calculation\n", + "v=math.sqrt(mu/R)\n", + "a=(A+P)/2\n", + "v1=math.sqrt(mu*((2/R)-(1/a)))\n", + "\n", + "\n", + "#Result\n", + "print(\"Velocity of satellite A at point X is v=%.2fkm/s\\nVelocity of satellite B at point X is V=%.3fkm/s\"%(v/1000,v1/1000))\n", + "#value in book is different at 3rd decimal place." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Velocity of satellite A at point X is v=7.54km/s\n", + "Velocity of satellite B at point X is V=9.949km/s\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.7, page no-39" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Velocity of satellite at particular point '''\n", + "import math\n", + "\n", + "#Variable Declaration\n", + "R=42000.0*10**3 #sattelite orbit in m\n", + "mu=39.8*10**13 #constant G*M in Nm^2/kg\n", + "A=42000.0*10**3 #appogee distance in m\n", + "P=7000.0*10**3 #perigee distance in m\n", + "\n", + "#Calculation\n", + "v=math.sqrt(mu/R)\n", + "a=(A+P)/2\n", + "v1=math.sqrt(mu*((2/R)-(1/a)))\n", + "\n", + "#Result\n", + "print(\"Velocity of satellite A at point X is v=%.3fkm/s\\n Velocity of satellite B at point X is V=%.3fkm/s\"%(v/1000,v1/1000))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Velocity of satellite A at point X is v=3.078km/s\n", + " Velocity of satellite B at point X is V=1.645km/s\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.8, page no-40" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Velocity of satellite at particular point '''\n", + "import math\n", + "#Variable Declaration\n", + "R=25000.0*10**3 #sattelite orbit in m\n", + "mu=39.8*10**13 #constant G*M in Nm^2/kg\n", + "A=43000.0*10**3 #appogee distance in m\n", + "P=7000.0*10**3 #perigee distance in m\n", + "\n", + "#Calculation\n", + "v=math.sqrt(mu/R)\n", + "a=(A+P)/2\n", + "v1=math.sqrt(mu*((2/R)-(1/a)))\n", + "\n", + "#Result\n", + "print(\"Velocity of satellite A at point X is v=%.3fkm/s\\n Velocity of satellite B at point X is V=%.3fkm/s\"%(v/1000,v1/1000))\n", + "#value in book is different at 3rd decimal place." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Velocity of satellite A at point X is v=3.990km/s\n", + " Velocity of satellite B at point X is V=3.990km/s\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.9, page no-40" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Orbital time period'''\n", + "import math\n", + "#Variable Declaration\n", + "a=(50000.0/2)*10**3 #Semi-major axis in m\n", + "mu=39.8*10**13 #constant G*M in Nm^2/kg\n", + "\n", + "\n", + "#Calculation\n", + "T=2*math.pi*math.sqrt((a**3)/mu) #math.pi gives variation in answer\n", + "h=T/(60*60)\n", + "x=T%3600\n", + "m=x/60\n", + "s=x%60\n", + "\n", + "#Result\n", + "print(\"Orbital time period is given by, T = %dsec\\n\\t\\t\\t\\t = %dh %dm %ds\"%(T,math.floor(h),math.floor(m),math.floor(s)))\n", + "#value in book is different for seconds." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Orbital time period is given by, T = 39368sec\n", + "\t\t\t\t = 10h 56m 8s\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.10, page no-42" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Orbital time period'''\n", + "#Variable Declaration\n", + "a1=18000.0*10**3 #Semi-major axis for first satellite in m\n", + "a2=24000.0*10**3 #Semi-major axis f0r 2nd satellite in m\n", + "\n", + "#Calculation\n", + "T2_by_T1=(a2/a1)**(3.0/2.0)\n", + "\n", + "#Result\n", + "print(\"Orbital time period of sattelite 2 is %.2f times that of sattelite 1\"%T2_by_T1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Orbital time period of sattelite 2 is 1.54 times that of sattelite 1\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.11, page no-42" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Orbit parameters'''\n", + "import math\n", + "#Variable Declaration\n", + "a=25000.0*10**3 #appogee distance in m\n", + "b=18330.0*10**3 #perigee distance in m\n", + "\n", + "\n", + "#Calculation\n", + "e=(math.sqrt(a**2-b**2)/a)\n", + "\n", + "\n", + "#Result\n", + "print(\"Apogee distance = a(1+e)= %dkm\\n Perigee distance = a(1-e)= %dkm\\n\"%(a*(1+e)/1000,math.ceil(a*(1-e)/1000)))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Apogee distance = a(1+e)= 42000km\n", + " Perigee distance = a(1-e)= 8000km\n", + "\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.12, page no-43" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "e=0.6 # eccentricity of elliptical orbit\n", + "a=0.97 # area of shaded region\n", + "b=2.17 # Area of non-shaded region\n", + "t=3 # time taken by satellite to move from pt B to A\n", + "\n", + "\n", + "#Calculation\n", + "x=b/a\n", + "y=x*t\n", + "\n", + "#Result\n", + "print(\"Time taken by satellite to move from A to B is %.3f hours \"%y)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Time taken by satellite to move from A to B is 6.711 hours \n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.13, page no-44" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Velocity at apogee'''\n", + "#Variable Declaration\n", + "A=42000.0 # Apogee in km\n", + "P=8000.0 # Perigee in km\n", + "v_p=9.142 # velocity at perigee point\n", + "\n", + "\n", + "#Calculation\n", + "v_a=v_p*P/A\n", + "\n", + "\n", + "#Result\n", + "print(\"Velocity at apogee = %.3f km/s\"%v_a)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Velocity at apogee = 1.741 km/s\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.14, page no-44" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''velocity of satellite at particular point'''\n", + "import math\n", + "\n", + "#Variable Declaration\n", + "theta=56.245 #angle made by direction of satellite with local horizontal\n", + "d=16000.0 #distance of particular point\n", + "P=8000.0 #Perigee in m\n", + "v_p=9.142 #velocity at perigee point\n", + "\n", + "\n", + "#Calculation\n", + "v=(P*v_p)/(d*math.floor(math.cos(theta*math.pi/180)*1000)/1000)\n", + "\n", + "\n", + "#Result\n", + "print(\"The velocity of satellite at that particular point is %.3f km/s\"%v)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The velocity of satellite at that particular point is 8.236 km/s\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.16, page no-49" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''New apogee distance'''\n", + "import math\n", + "#Variable Declaration\n", + "A1=12000.0 # first Apogee distance\n", + "P=8000.0 # Perigee distance\n", + "v1=1.0 # assume v1 as 1\n", + "v2=1.2*v1 # 20% higher than v1 \n", + "\n", + "\n", + "#Calculation\n", + "x=(v2/v1)**2\n", + "k=(((1+(P/A1))/x)-1)\n", + "k=math.floor(k*10**4)/10**4\n", + "A2=P/k\n", + "\n", + "\n", + "#Result\n", + "print(\"A2 = %.0fkm\"%math.ceil(A2))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "A2 = 50826km\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.17, page no-50" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''satellite velocity'''\n", + "import math\n", + "#Variable Declaration\n", + "vp=8.0 # horizontal velocity of satellite in km/s\n", + "r=1620.0 # distance from earth's surface in km\n", + "R=6380.0 # Earth's radius in km\n", + "d=10000.0 # distance of point at which velocity to be calculated\n", + "theta=30.0 # angle made by satellite with local horzon at that point\n", + "\n", + "\n", + "#Calculation\n", + "P=r+R\n", + "v=(vp*P)/(d*math.cos(theta*math.pi/180))\n", + "\n", + "#Result\n", + "print(\"v = %.2f km/s\"%v)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "v = 7.39 km/s\n" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.18, page no-50" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Apogee distance'''\n", + "import math\n", + "\n", + "#Variable Declaration\n", + "r=620.0 # distance from earth's surface in km\n", + "vp=8.0 # horizontal velocity of satelliteat 9000km height in km/s\n", + "R=6380.0 # Earth's radius in km\n", + "d=9000.0 # distance of point at which velocity to be calculated\n", + "theta=30.0 # angle made by satellite with local horzon at that point\n", + "mu=39.8*10**13 # Nm**2/kg\n", + "\n", + "\n", + "#Calculation\n", + "P=r+R\n", + "m=vp*d*math.cos(theta*math.pi/180)/P #m=sqrt((2mu/P)-[2mu/(A+P)])\n", + "m=(m*10**3)**2\n", + "x=(2*mu/(P*10**3))-m #x=[2mu/(A+P)]\n", + "x=math.floor(x/10**4)*10**4\n", + "k=(2*mu)/x #k=A+P\n", + "k=math.ceil(k/10**4)*10**4\n", + "A=k-(P*10**3)\n", + "\n", + "#Result\n", + "print(\"A = %.0f km\"%(A/1000))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "A = 16170 km\n" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.19, page no-58" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Height of satellite orbit above eart surface'''\n", + "\n", + "import math\n", + "#variable declaration\n", + "R=6380 #Earth's radius in km\n", + "T=86160 #Orbital period of Geostationary satellite in km\n", + "mu=39.8*10**13 #in Nm^2/k\n", + "\n", + "#calculations\n", + "\n", + "r=(T*math.sqrt(mu)/(2*math.pi))**(2.0/3.0) # Answer matches to the answer given in the book if value of pi is taken as 3.14 \n", + "\n", + "#Result\n", + "print('Radius of satellite is, r = %.0f km'%(r/1000))\n", + "print('Therefore, height of satellite orbit above earth surface is %.0f km '%((r/1000)-R))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Radius of satellite is, r = 42142 km\n", + "Therefore, height of satellite orbit above earth surface is 35762 km \n" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.20, page no-59" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Orbital time period'''\n", + "import math\n", + "#variable declaration\n", + "\n", + "R=6380 #radius of earth in km\n", + "P=400 #Perigee distance in km\n", + "A=40000 #Apogee distance in km\n", + "mu=39.8*10**13 #in Nm^2/k\n", + "\n", + "#calculation\n", + "\n", + "a=(A+P+R+R)/2 #semi-major axis of the elliptical orbit\n", + "\n", + "T=(2*math.pi*(a*10**3)**(3.0/2.0))/math.sqrt(mu)\n", + "\n", + "h=T/(60*60)\n", + "x=T%3600\n", + "m=x/60\n", + "s=x%60\n", + "\n", + "#Result\n", + "print('T = %dsec\\n = %dh %dm %ds\\n\\nThis approximately equal to 12 hour'%(T,math.floor(h),math.floor(m),math.floor(s)))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "T = 43158sec\n", + " = 11h 59m 18s\n", + "\n", + "This approximately equal to 12 hour\n" + ] + } + ], + "prompt_number": 34 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file -- cgit