diff options
Diffstat (limited to 'Satellite_Communication/chapter_4.ipynb')
-rw-r--r-- | Satellite_Communication/chapter_4.ipynb | 642 |
1 files changed, 642 insertions, 0 deletions
diff --git a/Satellite_Communication/chapter_4.ipynb b/Satellite_Communication/chapter_4.ipynb new file mode 100644 index 00000000..85428bc4 --- /dev/null +++ b/Satellite_Communication/chapter_4.ipynb @@ -0,0 +1,642 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Satellite Hardware"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.1, page no-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Ejection velocity of the propellant mass'''\n",
+ "\n",
+ "#Variable Declaration\n",
+ "I=250 #specific impulse of a propellant\n",
+ "g=9.807 # acceleration due to gravity\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "v=I*g\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"Ejection velocity of the propellant mass is, v= %.2f m/s\"%v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ejection velocity of the propellant mass is, v= 2451.75 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.2, page no-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Mass of propellant'''\n",
+ "import math\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m=4330.0 #initial mass of the satellite\n",
+ "i=290.0 #specific impulse of a propellant\n",
+ "del_v=-100 #velocity increment\n",
+ "g=9.807 #acceleration due to gravity\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "m1=m*(1-math.exp(del_v/(g*i)))\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"Mass of propellant necessary to be burnt is, m= %.0fkg\"%math.ceil(m1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of propellant necessary to be burnt is, m= 150kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.3, page no-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Mass of propellant'''\n",
+ "#Variable Declaration\n",
+ "m=2950.0 #initial mass of the satellite\n",
+ "F=450.0 #required thrust\n",
+ "T=10.0 #thrust for time period\n",
+ "i=300.0 #specific impulse of a propellant\n",
+ "g=9.807 #acceleration due to gravity\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "mi=F*T/(i*g)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"Mass of propellant that would be consumed is, m=%.2fkg\"%mi)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of propellant that would be consumed is, m=1.53kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.5, page no-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''solar cells'''\n",
+ "import math\n",
+ "\n",
+ "#Variable Declaration\n",
+ "p=2000.0 # electrical energy to be generated from solar panel in Watt\n",
+ "fi=1250.0 # solar flux falling normally to the solar cell in worst case\n",
+ "s=4*10**-4 # Area of each solar cell\n",
+ "e=0.15 # conversion efficiency of solar cell includingthe losses\n",
+ "theta=10.0 # angle made by rays of sun with normal \n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "n=p/(fi*s*e)\n",
+ "n1=math.ceil(n)*math.pi\n",
+ "n2=math.ceil(n1)/math.cos(math.pi*(theta)/180.0)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"Required no of solar cells, n = %.0f cells\"%math.ceil(n1))\n",
+ "print(\"\\n No of cells when sunrays are making an angle of 10\u00b0 are %.0f\"%math.ceil(n2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required no of solar cells, n = 83777 cells\n",
+ "\n",
+ " No of cells when sunrays are making an angle of 10\u00b0 are 85070\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.6, page no-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Battery System Requirement'''\n",
+ "#Variable Declaration\n",
+ "p=3600.0 #Power required\n",
+ "t=1.2 #worst case eclipse period\n",
+ "c=90.0 #capacity of each cell in Ah\n",
+ "v=1.3 #voltage of each cell in V\n",
+ "d=0.8 # Depth of discharge\n",
+ "e=0.95 #Discharge efficiency\n",
+ "E_sp=60.0 #specific energy specification of the battery\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "energy=p*t\n",
+ "n=energy/(c*v*d*e)\n",
+ "E_b=energy/(d*e)\n",
+ "m=E_b/E_sp\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"No of cells, n= %.0f cells\\n Energy required to be stored in the battery system is %.1f Wh\\n Mass of battery system = %.2f kg\"%(n,E_b,m))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No of cells, n= 49 cells\n",
+ " Energy required to be stored in the battery system is 5684.2 Wh\n",
+ " Mass of battery system = 94.74 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.7, page no-153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Antenna Gain'''\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "theta=0.5 #azimuth beam width=Elevation beam width\n",
+ "f=6.0*10**9 #operating frequency 6 Ghz\n",
+ "c=3.0*10**8 #speed of light in cm/s\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "theta_r=theta*math.pi/180.0\n",
+ "theta_r=math.ceil(theta_r*10**5)/10**5\n",
+ "A=4*math.pi/(theta_r**2)\n",
+ "A=math.ceil(A*100)/100\n",
+ "A_dB=10*math.log10(A)\n",
+ "lam=c/f\n",
+ "Ag=(A*lam**2)/(4*math.pi)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"Gain in dB = %.2f dB \\nAntenna gain expressed in terms of\\nantenna aperture(A) is given by G = %.2f m^2\"%(A_dB,Ag))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gain in dB = 52.17 dB \n",
+ "Antenna gain expressed in terms of\n",
+ "antenna aperture(A) is given by G = 32.80 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.8, page no-153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Aperture efficiency and Effective Aperture'''\n",
+ "#Variable Declaration\n",
+ "la=0.5 #length efficiency in azimuth direction\n",
+ "le=0.7 #length efficiency in elevation direction \n",
+ "A=10 #Actual projected area of an antenna\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "Ae=la*le\n",
+ "Aee=Ae*A\n",
+ "\n",
+ "#Result\n",
+ "print(\"Aperture efficiency = %.2f \\n Effective Aperture = %.1f m^2\"%(Ae,Aee))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Aperture efficiency = 0.35 \n",
+ " Effective Aperture = 3.5 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.9, page no-154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Directivity'''\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "p=100 #Antenna power in W\n",
+ "pd=10 #Power Density in mW/m^2\n",
+ "d=1000 #distance in m\n",
+ "p2=10000 #New antenna power\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "directivity=10*math.log10(p2/p)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"Directivity (in dB)= %d dB\"%directivity)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity (in dB)= 20 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.10, page no-154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''null-to-null beam width'''\n",
+ "#Variable Declaration\n",
+ "beam_w=0.4 #antenna's 3dB beam width\n",
+ "Ae=5 #Effective Aperture of Antenna\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"The null-to-null beam width of a paraboloid reflector is twice its 3dB beam width. \\n Therefore, Null-to-null beam width = %.1f\u00b0\"%(2*beam_w))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The null-to-null beam width of a paraboloid reflector is twice its 3dB beam width. \n",
+ " Therefore, Null-to-null beam width = 0.8\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.11, page no-154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Polarization loss and Received signal strength'''\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "d=20.0 #received signal strenth in dB\n",
+ "loss=3.0 #incident polarization is circular and antenna is circularly polarized\n",
+ "theta=60.0 #received wave making angle with horizontal\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "total=d+loss\n",
+ "los=d*math.log10(1/math.cos(math.pi*theta/180.0))\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\n When received polarization is same as antenna \\n polarization,thepolarization loss is zero.\\n Therefore, received sinal strenth = %ddB\"%total)\n",
+ "print(\"\\n\\n(b)\\n When the incident wave is vertically polarized,\\n the angle between incident polarization and antenna polarization is 90\u00b0\\n Hence, Polarization loss = infinity\\n received signal strength = 0\")\n",
+ "print(\"\\n\\n(c)\\n When incident wave is left-hand circularly polarized\\n and antenna polarization is linear,\\n then there is polarization loss of %ddB and\\n received signal strength is %ddB\"%(loss,d))\n",
+ "print(\"\\n\\n(d)\\n Polarization loss = %ddB \\n Received signal strength = %ddB\"%(los,math.ceil(total-los)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ " When received polarization is same as antenna \n",
+ " polarization,thepolarization loss is zero.\n",
+ " Therefore, received sinal strenth = 23dB\n",
+ "\n",
+ "\n",
+ "(b)\n",
+ " When the incident wave is vertically polarized,\n",
+ " the angle between incident polarization and antenna polarization is 90\u00b0\n",
+ " Hence, Polarization loss = infinity\n",
+ " received signal strength = 0\n",
+ "\n",
+ "\n",
+ "(c)\n",
+ " When incident wave is left-hand circularly polarized\n",
+ " and antenna polarization is linear,\n",
+ " then there is polarization loss of 3dB and\n",
+ " received signal strength is 20dB\n",
+ "\n",
+ "\n",
+ "(d)\n",
+ " Polarization loss = 6dB \n",
+ " Received signal strength = 17dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.12, page no-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Antenna Gain and beam width'''\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "Ea=1 #effective aperture\n",
+ "f=11.95*10**9 #downlink operating frequency\n",
+ "c=3*10**8 #speed of light\n",
+ "\n",
+ "Ae=math.floor((math.pi*1000*Ea**2)/4)/1000\n",
+ "lamda=math.floor(c*1000/f)/1000\n",
+ "ag=math.floor(100*4*math.pi*Ae/lamda**2)/100\n",
+ "adb=math.floor(100*10*math.log10(ag))/100\n",
+ "width=70*lamda/Ea\n",
+ "print(\"Operating wavelength = %.3fm\\n Antenna Gain = %.2f\\n Antenna Gain in dB = %.2fdB\\n 3dB beam width = %.2f\u00b0\"%(lamda,ag,adb,width))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Operating wavelength = 0.025m\n",
+ " Antenna Gain = 15783.36\n",
+ " Antenna Gain in dB = 41.98dB\n",
+ " 3dB beam width = 1.75\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.13, page no-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Beam Width'''\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "f=2.0 # reflector focal length\n",
+ "d=2.0 # reflector diameter\n",
+ "l=90.0/100.0 # 90% of the angle\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "theta=4*180.0*(math.atan(1/(4*f/d)))/math.pi\n",
+ "theta=4*180.0*math.atan(0.25007)/math.pi # this value gives exact answer as in book\n",
+ "dbw=l*theta\n",
+ "\n",
+ "#Result\n",
+ "print(\"The angle subtended by the focal point feed\\n at the edges of the reflector is, theeta = %.2f\u00b0\\n\\n 3dB beam width = %.2f\u00b0\\n null-to-null beam width = % .2f\u00b0\"%(theta,dbw,math.floor(200.0*dbw)/100.0))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle subtended by the focal point feed\n",
+ " at the edges of the reflector is, theeta = 56.16\u00b0\n",
+ "\n",
+ " 3dB beam width = 50.54\u00b0\n",
+ " null-to-null beam width = 101.08\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.14, page no-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''phase angles'''\n",
+ "import math\n",
+ "\n",
+ "#Variable Declaration\n",
+ "c=3*10**8 #speed of light \n",
+ "f=2.5*10**9 #operating frequency\n",
+ "s=0.1 #inter element spacing\n",
+ "theta =10 #10\u00b0 right towards array axis\n",
+ "\n",
+ "#Calculation\n",
+ "l=c/f\n",
+ "fi=(360*s/l)*math.ceil(10000*math.sin(math.pi*theta/180.0))/10000\n",
+ "fi=math.ceil(10*fi)/10\n",
+ "\n",
+ "#Result\n",
+ "print(\"The phase angle for elements 1,2,3,4 and 5 \\n are respecively 0\u00b0,%.1f\u00b0,%.1f\u00b0,%.1f\u00b0 and %.1f\u00b0\"%(fi,2*fi,3*fi,4*fi))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The phase angle for elements 1,2,3,4 and 5 \n",
+ " are respecively 0\u00b0,52.2\u00b0,104.4\u00b0,156.6\u00b0 and 208.8\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.15, page no-156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Earth station EIRP'''\n",
+ "import math\n",
+ "\n",
+ "#Variable Declaration\n",
+ "p=10000 #power fed to the antenna in W\n",
+ "ag=60 #Antenna gain\n",
+ "loss=2 #Power lossin feed system\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "adb=10*math.log10(p)\n",
+ "EIRP=adb+ag-loss\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"Earth station EIRP = %ddB\"%EIRP)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Earth station EIRP = 98dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file |