Gravity Turn Maneuver (Casadi)
This page contains a discretized version of the OCP Gravity Turn Maneuver in CasADi 2.4.2 format. The continuous model was discretized using a direct multiple shooting approach with 300 shooting nodes distributed equidistantly over a variable time horizon. The control grid is equal to the DMS grid. An initial solution is chosen by linearly interpolating between initial and terminal state.
CasADi
# ---------------------------------------------------------------- # Gravity Turn Maneuver with direct multiple shooting using CVodes # (c) Mirko Hahn # ---------------------------------------------------------------- from casadi import * # Artificial model parameters N = 300 # Number of shooting intervals vel_eps = 1e-6 # Initial velocity (km/s) # Vehicle parameters m0 = 11.3 # Launch mass (t) m1 = 1.3 # Dry mass (t) g0 = 9.81e-3 # Gravitational acceleration at altitude zero (km/s^2) r0 = 6.0e2 # Radius at altitude zero (km) Isp = 300.0 # Specific impulse (s) Fmax = 600.0e-3 # Maximum thrust (MN) # Atmospheric parameters cd = 0.021 # Drag coefficients A = 1.0 # Reference area (m^2) H = 5.6 # Scale height (km) rho = (1.0 * 1.2230948554874) # Density at altitude zero # Target orbit parameters h_obj = 75 # Target altitude (km) v_obj = 2.287 # Target velocity (km/s) q_obj = 0.5 * pi # Target angle to vertical (rad) # Create symbolic variables x = SX.sym('[m, v, q, h, d]') # Vehicle state u = SX.sym('u') # Vehicle controls T = SX.sym('T') # Time horizon (s) # Introduce symbolic expressions for important composite terms Fthrust = Fmax * u Fdrag = 0.5e3 * A * cd * rho * exp(-x[3] / H) * x[1]**2 r = x[3] + r0 g = g0 * (r0 / r)**2 vhor = x[1] * sin(x[2]) vver = x[1] * cos(x[2]) # Build symbolic expressions for ODE right hand side mdot = -(Fmax / (Isp * g0)) * u vdot = (Fthrust - Fdrag) / x[0] - g * cos(x[2]) hdot = vver ddot = vhor / r qdot = g * sin(x[2]) / x[1] - ddot # Build the DAE function ode = [ mdot, vdot, qdot, hdot, ddot ] quad = u dae = SXFunction("dae", daeIn(x=x, p=vertcat([u, T])), daeOut(ode=T*vertcat(ode), quad=T*quad)) I = Integrator("I", "cvodes", dae, {'t0': 0.0, 'tf': 1.0 / N}) # Specify upper and lower bounds as well as initial values for DAE parameters, # states and controls p_min = [120.0] p_max = [600.0] p_init = [120.0] u_min = [0.0] u_max = [1.0] u_init = [0.5] x0_min = [m0, vel_eps, 0.0, 0.0, 0.0] x0_max = [m0, vel_eps, 0.5 * pi, 0.0, 0.0] x0_init = [m0, vel_eps, 0.05 * pi, 0.0, 0.0] xf_min = [m1, v_obj, q_obj, h_obj, 0.0] xf_max = [m0, v_obj, q_obj, h_obj, inf] xf_init = [m1, v_obj, q_obj, h_obj, 0.0] x_min = [m1, vel_eps, 0.0, 0.0, 0.0] x_max = [m0, inf, pi, inf, inf] x_init = [0.5 * (m0 + m1), 0.5 * v_obj, 0.5 * q_obj, 0.5 * h_obj, 0.0] # Useful variable block sizes np = 1 # Number of parameters nx = x.size1() # Number of states nu = u.size1() # Number of controls ns = nx + nu # Number of variables per shooting interval # Introduce symbolic variables and disassemble them into blocks V = MX.sym('X', N * ns + nx + np) P = V[0] X = [V[np+i*ns:np+i*ns+nx] for i in range(0, N+1)] U = [V[np+i*ns+nx:np+(i+1)*ns] for i in range(0, N)] # Nonlinear constraints and Lagrange objective G = [] F = 0.0 # Build DMS structure x0 = p_init + x0_init for i in range(0, N): Y = I({'x0': X[i], 'p': vertcat([U[i], P])}) G = G + [Y['xf'] - X[i+1]] F = F + Y['qf'] frac = float(i+1) / N x0 = x0 + u_init + [x0_init[i] + frac * (xf_init[i] - x0_init[i]) for i in range(0, nx)] # Lower and upper bounds for solver lbg = 0.0 ubg = 0.0 lbx = p_min + x0_min + u_min + (N-1) * (x_min + u_min) + xf_min ubx = p_max + x0_max + u_max + (N-1) * (x_max + u_max) + xf_max # Solve the problem using IPOPT nlp = MXFunction("nlp", nlpIn(x=V), nlpOut(f=m0 - X[-1][0], g=vertcat(G))) S = NlpSolver("S", "ipopt", nlp, {'tol': 1e-5}) r = S({ 'x0' : x0, 'lbx': lbx, 'ubx': ubx, 'lbg': lbg, 'ubg': ubg }) # Extract state sequences and parameters from result x = r['x'] f = r['f'] T = x[0] t = [i * (T / N) for i in range(0, N+1)] m = x[np ::ns].get() v = x[np+1::ns].get() q = x[np+2::ns].get() h = x[np+3::ns].get() d = x[np+4::ns].get() u = x[np+nx::ns].get() + [0.0]
Results
The solution is calculated using IPOPT (3.11.9, default settings with tolerance 1e-5, using linear solver MUMPS in sequential mode on Ubuntu 15.10 for x86-64 with Linux 4.2.0-19-generic, Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz, 16 GB RAM). The objective function value is . IPOPT finds the solution in 84 iterations (77.466 seconds proc time).
Solution
The following is a Gnuplot compatible tabular version of the solution:
# t m v beta h theta u 0 11.3 1e-06 2.77860819863e-06 0.0 0.0 0.999871890934 1.12681 11.0703034485 0.0483649064877 3.1715534546e-05 0.0274199153907 1.29929499744e-09 0.998958246276 2.25361 10.8408167849 0.0921925497448 3.72636082804e-05 0.107252362504 5.95514030718e-09 0.326196705112 3.38042 10.7658809267 0.090683693199 4.20453758593e-05 0.210227341355 1.27488341644e-08 0.36077660746 4.50722 10.6830011665 0.0916779384911 4.74523648979e-05 0.312965878384 2.04014332419e-08 0.348216995107 5.63403 10.6030066755 0.0920148841805 5.35065012386e-05 0.416440676184 2.90935384675e-08 0.348162975156 6.76084 10.5230245943 0.0925365990072 6.02966641843e-05 0.5204032739 3.89367692674e-08 0.344819131671 7.88764 10.4438106808 0.0930181089434 6.79018539473e-05 0.624930229321 5.0083520831e-08 0.342374770938 9.01445 10.3651583006 0.0935195865936 7.64151897145e-05 0.730011396396 6.26964446471e-08 0.339711745211 10.1413 10.2871176865 0.0940246707442 8.59376994215e-05 0.835659580289 7.69598912076e-08 0.337150529163 11.2681 10.2096654503 0.0945389717196 9.65812647273e-05 0.941881973673 9.30793785195e-08 0.334568141088 12.3949 10.1328064557 0.0950597343545 0.000108469263306 1.04868760273 1.11285346314e-07 0.332038336386 13.5217 10.056528623 0.0955892162114 0.000121737440866 1.15608504563 1.31834851487e-07 0.329509747357 14.6485 9.98083167285 0.0961262052325 0.000136535062263 1.26408339909 1.55014894122e-07 0.327010078582 15.7753 9.90570896159 0.0966714389773 0.000153026224658 1.37269153914 1.81145560812e-07 0.324528413444 16.9021 9.8311563533 0.0972248963531 0.000171391070942 1.48191873119 2.10583693434e-07 0.322070798124 18.0289 9.75716832309 0.0977869802566 0.000191827201329 1.59177446655 2.43726791529e-07 0.319627886638 19.1557 9.68374149313 0.0983574847092 0.000214551185091 1.70226833537 2.81017264632e-07 0.31721107001 20.2825 9.61086986874 0.098937003886 0.000239800140529 1.81341016432 3.22947209818e-07 0.314811149588 21.4093 9.53854956842 0.0995254924258 0.000267833415404 1.92521007587 3.70063587119e-07 0.312432454392 22.5361 9.46677571619 0.100123238775 0.000298934444328 2.03767833673 4.22973838873e-07 0.310073449285 23.6629 9.39554378872 0.100730432337 0.000333412654684 2.15082548065 4.8235212264e-07 0.307734103495 24.7897 9.32484926976 0.101347278805 0.000371605537268 2.26466226419 5.48946059076e-07 0.305415304594 25.9165 9.25468743916 0.101974058967 0.000413880815239 2.37919971927 6.23584148107e-07 0.303112723465 27.0433 9.18505457126 0.102610772129 0.000460638805631 2.49444902948 7.07183733168e-07 0.300842293289 28.1701 9.11594328017 0.103258535918 0.000512314669319 2.61042203018 8.00760182938e-07 0.29856639394 29.297 9.04735482228 0.10391580613 0.000569381363827 2.72713026137 9.05435602071e-07 0.296333057678 30.4238 8.97927941977 0.104584604775 0.00063235220542 2.84458560489 1.02244990183e-06 0.294107919546 31.5506 8.91171518929 0.105264330731 0.000701783418957 2.96280068854 1.15317229058e-06 0.291904654179 32.6774 8.84465710611 0.105955482276 0.000778277594739 3.08178810404 1.29911291511e-06 0.289719505221 33.8042 8.77810100842 0.106658275558 0.000862486607199 3.20156083904 1.46193653067e-06 0.287553332661 34.931 8.71204253685 0.107373013262 0.000955114979 3.32213217435 1.64347680043e-06 0.285405783978 36.0578 8.64647741301 0.108099987244 0.00105692329751 3.44351572451 1.84575192933e-06 0.283276805784 37.1846 8.58140137077 0.108839503086 0.00116873180087 3.56572543978 2.07098151567e-06 0.281166363371 38.3114 8.51681015199 0.109591868394 0.00129142446873 3.68877571076 2.32160626668e-06 0.279074591534 39.4382 8.45269946754 0.110357438748 0.00142595200563 3.8126811585 2.60030425935e-06 0.277000138296 40.565 8.3890653389 0.111136473076 0.00157333666297 3.93745682923 2.91001532601e-06 0.274947440837 41.6918 8.3259027682 0.111929592965 0.00173467569233 4.06311823087 3.25396235208e-06 0.272899557983 42.8186 8.2632106494 0.112736134768 0.00191114652647 4.1896808402 3.63567518946e-06 0.270895618686 43.9454 8.20097888752 0.113558538722 0.00210400962722 4.31716118699 4.05902022234e-06 0.26888554858 45.0722 8.13920889097 0.114395149167 0.00231461539834 4.44557643334 4.52823353859e-06 0.266904254414 46.199 8.07789404916 0.115247354064 0.00254440411962 4.5749430461 5.04792741452e-06 0.264938553658 47.3258 8.01703077989 0.116115365681 0.00279491448205 4.70527870185 5.62314930667e-06 0.262989088609 48.4527 7.9566153534 0.116999476021 0.00306778844827 4.83660152318 6.25941240849e-06 0.261061056952 49.5795 7.89664284586 0.117900465281 0.00336477191539 4.96892989716 6.96271718178e-06 0.25914680789 50.7063 7.83711009107 0.118818468407 0.00368772122835 5.10228276769 7.73960139672e-06 0.257251762341 51.8331 7.77801267749 0.119754108957 0.00403861111944 5.23667972676 8.59719297438e-06 0.255373633633 52.9599 7.71934671886 0.120707832067 0.00441953501588 5.37214086131 9.54324137038e-06 0.253513463423 54.0867 7.66110808965 0.121680196244 0.00483271074897 5.50868681957 1.0586170107e-05 0.251668719133 55.2135 7.60329324614 0.122671570262 0.00528048506647 5.64633876202 1.17351275208e-05 0.249848290104 56.3403 7.54589660248 0.12368304859 0.00576534128992 5.78511913141 1.30000721019e-05 0.248030023384 57.4671 7.48891766192 0.124713940463 0.00628989313982 5.92504970261 1.43917464287e-05 0.246246828699 58.5939 7.43234836752 0.125766448506 0.00685689740221 6.06615351629 1.59218157566e-05 0.244470147632 59.7207 7.37618722291 0.12684018476 0.00746925356802 6.20845460354 1.76029136875e-05 0.242710243883 60.8475 7.32043037392 0.127935789228 0.00813001041354 6.35197713654 1.94487007846e-05 0.240968981314 61.9743 7.26507353818 0.129054086829 0.00884236627962 6.49674609541 2.14739438826e-05 0.23925307835 63.1011 7.21011088994 0.130196491008 0.00960966899285 6.64278770638 2.36945990586e-05 0.237534777489 64.2279 7.15554298005 0.131361937783 0.0104354233221 6.79012832879 2.61278751366e-05 0.23585143399 65.3547 7.10136177789 0.132552890675 0.0113232895957 6.93879513148 2.87923294653e-05 0.2341728937 66.4816 7.04756618005 0.133768963387 0.0122770825344 7.08881637522 3.17079597105e-05 0.232515140152 67.6084 6.99415141127 0.135011367809 0.0133007756639 7.24022076771 3.489628693e-05 0.230886212442 68.7352 6.94111084951 0.136282024555 0.0143984921845 7.39303874282 3.83804791206e-05 0.229237770352 69.862 6.88844897772 0.137578371059 0.0155745192201 7.54730025492 4.2185403193e-05 0.227651747455 70.9888 6.8361514566 0.138905777722 0.0168332919058 7.70303688792 4.63377844701e-05 0.226040852646 72.1156 6.78422399988 0.140261077142 0.0181793935172 7.86028127533 5.08662980623e-05 0.224478472654 73.2424 6.73265546243 0.141648439305 0.019617556595 8.01906663398 5.58016805566e-05 0.222909371404 74.3692 6.6814473883 0.143066527127 0.0211526505188 8.1794276065 6.11768685792e-05 0.221365434305 75.496 6.63059399664 0.144517323094 0.0227896869811 8.34139913677 6.70270941747e-05 0.219834207182 76.6228 6.58009236763 0.146001557324 0.0245338029641 8.50501755198 7.33900464956e-05 0.218318672364 77.7496 6.52993889635 0.147520328785 0.0263902584024 8.67032007873 8.03059938452e-05 0.216817734448 78.8764 6.4801302295 0.149074677241 0.0283644260742 8.83734499171 8.7817928719e-05 0.215331337971 80.0032 6.43066302655 0.150665696403 0.0304617820826 9.0061315898 9.59717112317e-05 0.213859120912 81.13 6.3815340301 0.152294503944 0.0326878948441 9.17672021654 0.000104816219211 0.212400765796 82.2568 6.33274005571 0.153962249277 0.0350484130922 9.349152266 0.000114403502127 0.210955909902 83.3836 6.28427800226 0.155670111679 0.0375490527181 9.52347018919 0.000124788939302 0.209524141378 84.5104 6.23614486324 0.157419298224 0.0401955825251 9.69971749513 0.000136031401927 0.208105098379 85.6373 6.18833771526 0.159211052039 0.0429938088247 9.87793875239 0.000148193418971 0.206698051968 86.7641 6.14085380241 0.161046616871 0.045949559208 10.0581795713 0.00016134134535 0.20530314624 87.8909 6.09369033564 0.162927336993 0.0490686639898 10.2404865652 0.000175545513359 0.203918747031 89.0177 6.04684490133 0.16485448585 0.0523569342652 10.4249070234 0.000190880274873 0.20254508625 90.1445 6.0003150326 0.166829394827 0.0558201586963 10.6114900844 0.000207424693812 0.201181884102 91.2713 5.95409832682 0.168853490022 0.0594640652613 10.8002854138 0.000225262173161 0.199826900476 92.3981 5.90819289598 0.170928045658 0.0632943074249 10.9913435862 0.00024448081858 0.198484497102 93.5249 5.86259585008 0.173054917608 0.0673164378665 11.1847162704 0.000265173641721 0.197142365834 94.6517 5.8173071266 0.175234631536 0.0715359035273 11.3804566002 0.000287439171446 0.19581509709 95.7785 5.77232331123 0.177469601096 0.0759579928423 11.5786168176 0.00031138025671 0.194489552909 96.9053 5.7276440078 0.179760754068 0.0805878327051 11.7792510207 0.000337105653027 0.193171075564 98.0321 5.68326759288 0.182109772966 0.0854303660891 11.9824138038 0.000364729692297 0.191856546845 99.1589 5.63919315935 0.184518084562 0.0904903229932 12.1881604332 0.000394372482122 0.190545791715 100.286 5.59541984033 0.186987216792 0.0957721994977 12.3965466658 0.000426160059288 0.189237618706 101.413 5.55194704264 0.189518676343 0.101280234021 12.6076286856 0.000460224553006 0.187931319951 102.539 5.50877433572 0.192114007529 0.107018384704 12.8214630013 0.000496704337203 0.186625350468 103.666 5.46590164391 0.194774692175 0.112990307975 13.0381063103 0.000535744169706 0.185319524162 104.793 5.42332893434 0.197502324355 0.119199338779 13.2576151459 0.000577495120379 0.184011250854 105.92 5.38105676913 0.200298298116 0.125648469997 13.4800460779 0.000622114979592 0.182703979499 107.047 5.33908491813 0.203164545399 0.132340326049 13.7054557859 0.000669768442498 0.181380162161 108.173 5.29741718235 0.206100956716 0.139277171443 13.9338999237 0.000720626920245 0.180077851231 109.3 5.25604862124 0.209112305327 0.146460845822 14.1654345222 0.000774868910802 0.178745580145 110.427 5.2149861174 0.212196908766 0.153892770121 14.4001151769 0.000832680144635 0.177419731479 111.554 5.17422819546 0.215357926751 0.161573965652 14.6379957225 0.000894253129205 0.176078216333 112.681 5.13377845439 0.218595754562 0.169505013478 14.8791289352 0.000959787168053 0.174739532299 113.807 5.09363624383 0.221913262603 0.177686016434 15.1235675385 0.00102948975665 0.173382603066 114.934 5.05380575517 0.225310655964 0.186116626604 15.3713624067 0.0011035749808 0.172020176306 116.061 5.01428825134 0.228789934866 0.194796043809 15.622562415 0.00118226385685 0.170646289447 117.188 4.97508636501 0.2323523632 0.203722988155 15.877214973 0.00126578462411 0.169261847706 118.315 4.93620252092 0.235999394966 0.212895709018 16.1353655168 0.00135437257109 0.167861283163 119.441 4.89764042289 0.239731793973 0.222311993235 16.3970570287 0.00144826983087 0.166463174946 120.568 4.85939950665 0.243552876412 0.2319691275 16.6623309109 0.00154772567014 0.16501962689 121.695 4.8214902109 0.247459436029 0.241863982882 16.9312245581 0.00165299550398 0.16362238225 122.822 4.78390189855 0.251460958539 0.251992891186 17.2037747143 0.00176434218206 0.162134758871 123.949 4.74665533193 0.255547831018 0.262351785307 17.4800135557 0.00188203421959 0.160701829941 125.075 4.70973794632 0.25973094261 0.272936178367 17.7599695909 0.00200634617712 0.1592201533 126.202 4.67316094034 0.264006332803 0.283741056751 18.0436703171 0.00213755952957 0.15774077977 127.329 4.63692378489 0.268377382628 0.294761047554 18.3311381431 0.00227596081776 0.156236108649 128.456 4.60103229148 0.272843409621 0.30599036601 18.6223919461 0.00242184208841 0.154730045069 129.583 4.56548678002 0.27740713913 0.317422844501 18.917446631 0.00257550051171 0.15320882695 130.709 4.53029073188 0.282069160196 0.329051922806 19.2163136482 0.00273723839674 0.151675952961 131.836 4.49544682472 0.286830476898 0.340870703168 19.5189999704 0.00290736242692 0.150128335981 132.963 4.46095844539 0.29169151171 0.352871974521 19.8255078969 0.00308618325604 0.148583730647 134.09 4.42682490203 0.296655192076 0.365048192184 20.1358359994 0.00327401577339 0.147026119864 135.217 4.39304918234 0.301721844087 0.377391501787 20.4499789559 0.00347117871009 0.145455052239 136.344 4.35963437771 0.306891570574 0.389893822727 20.7679260117 0.00367799338258 0.143871593177 137.47 4.32658333476 0.312164464356 0.402546877792 21.0896608202 0.00389478318825 0.142322437674 138.597 4.29388817308 0.317547599096 0.415342068751 21.4151650655 0.00412187569805 0.140720554489 139.724 4.26156100558 0.323034257733 0.428270646039 21.7444147977 0.004359599761 0.139150738139 140.851 4.22959446569 0.328630866952 0.441323746735 22.0773802282 0.00460828504446 0.137562931199 141.978 4.19799268631 0.334335652626 0.45449231783 22.4140281884 0.00486826330112 0.135984178842 143.104 4.16675358736 0.340150931485 0.467767226546 22.7543201019 0.00513986653101 0.134403245922 144.231 4.13587766978 0.34607695491 0.481139244329 23.0982130354 0.00542342732277 0.132841183428 145.358 4.10536059853 0.352117124858 0.494599049822 23.4456603121 0.00571927898548 0.131254620191 146.485 4.07520800209 0.358267509454 0.508137339133 23.7966094594 0.00602775334751 0.129734325622 147.612 4.0454046568 0.364538840501 0.521744702397 24.1510059993 0.00634918370875 0.128123375957 148.738 4.01597138851 0.370915585821 0.535411879908 24.5087877147 0.0066838990939 0.126625614658 149.865 3.9868821949 0.377416005355 0.549129633693 24.8698886556 0.0070322276457 0.125095329084 150.992 3.95814454765 0.38403354431 0.562888599047 25.2342434182 0.00739450007803 0.123575720431 152.119 3.92975599399 0.390768746594 0.576679646841 25.6017788148 0.00777104140008 0.122097034422 153.246 3.90170713292 0.397627068094 0.590493700871 25.9724195437 0.00816217536324 0.120619204646 154.372 3.87399776775 0.404606826309 0.604321724176 26.3460879705 0.0085682257792 0.119139279377 155.499 3.84662837986 0.411705602273 0.618154958243 26.7226999116 0.00898950967799 0.11769779346 156.626 3.81959013874 0.418927817944 0.631984801492 27.102167955 0.00942634101953 0.116307720762 157.753 3.79287123344 0.426279963316 0.645802668576 27.4844056908 0.00987903516909 0.114909003327 158.88 3.76647364987 0.433757704622 0.659600164107 27.8693238297 0.0103479041381 0.11353757123 160.006 3.74039111988 0.441362919471 0.673369174971 28.2568283773 0.0108332540078 0.112204126528 161.133 3.71461491679 0.449099234279 0.687101746228 28.6468244024 0.011335389075 0.110874566231 162.26 3.68914414824 0.456963945772 0.700790170594 29.0392141934 0.011854609165 0.109607888423 163.387 3.6639643685 0.46496494706 0.71442692864 29.4338993462 0.0123912120755 0.108325298974 164.514 3.63907923287 0.473095554628 0.728004763443 29.8307792105 0.0129454910787 0.107108345847 165.64 3.614473663 0.481364007654 0.741516681812 30.2297512957 0.0135177352389 0.105909235044 166.767 3.59014356003 0.489769580849 0.754955869712 30.6307139452 0.0141082327998 0.104732160398 167.894 3.56608386169 0.498312231143 0.768315825754 31.0335630805 0.0147172662949 0.103616637213 169.021 3.54228042801 0.506999303827 0.781590244909 31.4381957311 0.0153451175064 0.102496160469 170.148 3.51873439695 0.515825473675 0.794773102357 31.844508028 0.0159920640523 0.10142878261 171.275 3.49543357031 0.524796440273 0.807858677026 32.2523948027 0.016658378763 0.100389183787 172.401 3.47237156654 0.533913028293 0.82084146703 32.6617521896 0.0173443334375 0.0993824292457 173.528 3.44954084044 0.543177025502 0.833716246083 33.0724762574 0.0180501964858 0.0984084054609 174.655 3.42693387291 0.55259019939 0.846478050455 33.4844635523 0.0187762336328 0.0974657610729 175.782 3.40454345529 0.56215406552 0.859122181762 33.897611163 0.0195227078568 0.0965315558344 176.909 3.38236764888 0.571865604518 0.871644264787 34.3118151219 0.0202898762821 0.0957068943634 178.035 3.36038128864 0.58174198669 0.884040049864 34.7269763292 0.0210780009442 0.094840281032 179.162 3.33859401199 0.591770161035 0.896305538814 35.1429969332 0.0218873420712 0.0940267110607 180.289 3.31699363351 0.601956170801 0.908437112046 35.5597765678 0.022718150726 0.0932459914327 181.416 3.29557260661 0.612302073589 0.920431342084 35.9772178831 0.0235706792513 0.0924960269957 182.543 3.27432386603 0.622809582236 0.932285045267 36.3952251234 0.0244451781258 0.0917746516192 183.669 3.25324084411 0.633480049347 0.943995276416 36.813704026 0.0253418962708 0.0910898900904 184.796 3.23231512971 0.644316588802 0.955559310576 37.2325624055 0.0262610820246 0.090427293703 185.923 3.21154163091 0.65531941454 0.966974650269 37.65170988 0.0272029824175 0.0897942524948 187.05 3.19091355812 0.666490384213 0.978239031418 38.0710575809 0.0281678424517 0.0891882862955 188.177 3.17042469152 0.677830948076 0.989350403076 38.4905186651 0.0291559061565 0.0886068954785 189.303 3.15006938549 0.689342139488 1.00030692804 38.9100081591 0.0301674161585 0.0880440118486 190.43 3.12984338845 0.701023799816 1.01110698963 39.3294425734 0.0312026126529 0.0875382504335 191.557 3.10973357796 0.712884233974 1.02174911633 39.7487422093 0.0322617389994 0.0870235258901 192.684 3.08974201306 0.724917596844 1.03223203689 40.1678295171 0.0333450363598 0.086537120412 193.811 3.06986218814 0.737126224337 1.04255469525 40.5866273714 0.0344527434626 0.0860741144014 194.937 3.05008872773 0.749511516905 1.05271620704 41.0050614044 0.0355850978481 0.0856278218239 196.064 3.03041779232 0.762073526423 1.06271585977 41.4230593906 0.0367423358393 0.0851942003027 197.191 3.01084647104 0.774811512158 1.07255312092 41.8405507482 0.037924691048 0.0847615596412 198.318 2.99137453856 0.787722194288 1.08222765337 42.2574657363 0.0391323919262 0.0842795697267 199.445 2.97201333168 0.800790909919 1.09173940723 42.6737319586 0.0403656510967 0.0841413216968 200.571 2.95268388397 0.814092598541 1.10108802381 43.0892950499 0.0416247262083 0.08371610095 201.698 2.93345212052 0.827558922074 1.1102732496 43.504104154 0.0429098783895 0.0833448165924 202.825 2.91430565073 0.841199067207 1.11929539622 43.9180955801 0.0442213211594 0.083004390475 203.952 2.89523738566 0.855017161026 1.12815479474 44.3312114251 0.0455592769976 0.0826886238479 205.079 2.87624166039 0.869016085433 1.13685183841 44.7433979617 0.0469239725813 0.082400617637 206.205 2.85731209763 0.883199637817 1.14538698132 45.1546055514 0.0483156386816 0.0821495834674 207.332 2.83844020394 0.897574012367 1.15376071386 45.5647894136 0.0497345129394 0.081960137606 208.459 2.81961183088 0.912151562027 1.16197350859 45.9739115478 0.0511808468384 0.0818687043771 209.586 2.80080446242 0.926953834018 1.17002573401 46.3819440838 0.0526549174148 0.0810184794884 210.713 2.7821924127 0.941795099108 1.17791881263 46.7888249923 0.0541568708428 0.0808831133172 211.84 2.76361146011 0.956845247323 1.18565429447 47.194492683 0.0556868390995 0.080827711652 212.966 2.74504323472 0.972122260061 1.19323269937 47.5989289316 0.0572451045916 0.080665896085 214.093 2.72651218257 0.987598527983 1.20065468508 48.0021159103 0.0588319415495 0.0805282595747 215.22 2.7080127491 1.00327843628 1.20792110878 48.4040336729 0.0604476050602 0.0804087415234 216.347 2.68954077204 1.01916507272 1.21503284984 48.8046665904 0.0620923559383 0.0803491591294 217.474 2.67108248259 1.03527228985 1.22199076032 49.2040052333 0.0637664684986 0.0803433226464 218.6 2.65262553394 1.05161283419 1.22879561977 49.602048146 0.0654702385192 0.0803953952452 219.727 2.63415662287 1.06820096584 1.23544813994 49.9988017719 0.0672039836808 0.080540416293 220.854 2.61565439668 1.08506048445 1.24194891972 50.3942823812 0.068968052689 0.0805576772919 221.981 2.5971482052 1.1021585369 1.24829866885 50.7885071579 0.070762786835 0.0809357330749 223.108 2.57855516449 1.11958948304 1.25449788852 51.1815072775 0.0725885777319 0.0813221356133 224.234 2.55987335707 1.13735738048 1.26054672644 51.5733337837 0.0744458978783 0.081861685112 225.361 2.54106760111 1.15550502874 1.26644523144 51.9640482138 0.0763352582841 0.0825189622963 226.488 2.52211085151 1.17406709133 1.27219323746 52.3537275816 0.0782572337327 0.08333224628 227.615 2.50296726944 1.19308971657 1.27779037303 52.7424646128 0.0802124655481 0.0843255209936 228.742 2.48359550637 1.21262710527 1.28323600719 53.1303706284 0.0822016777173 0.0853092321033 229.868 2.46399775929 1.23268330501 1.28852943771 53.5175683401 0.0842256421802 0.0865852876951 230.995 2.4441068691 1.2533461489 1.29366978064 53.9041972392 0.086285206336 0.0880049628389 232.122 2.42388984263 1.27466502015 1.2986558255 54.2904203274 0.088381330675 0.08961772197 233.249 2.4033023235 1.29670508795 1.30348615514 54.6764203172 0.090515069772 0.0913338227389 234.376 2.38232057143 1.31950856349 1.30815919766 55.062398376 0.0926875662421 0.092992792808 235.502 2.36095771083 1.34307353464 1.31267347541 55.448564208 0.0948999949359 0.0945613759594 236.629 2.33923450593 1.36738876182 1.31702778019 55.8351287069 0.0971535182586 0.0957450087677 237.756 2.31723938982 1.39235700939 1.32122145538 56.2222910007 0.0994492070068 0.0963657746638 238.883 2.29510166765 1.41782525856 1.32525478595 56.6102196094 0.101787922351 0.0958667702959 240.01 2.27307857975 1.44346922416 1.32912958793 56.99902255 0.104170127492 0.0936552761253 241.136 2.25156352952 1.46877367216 1.3328504636 57.3886979102 0.106595491136 0.0891234503347 242.263 2.23108955742 1.49302151497 1.33642465838 57.7790902667 0.109062846045 0.0820147491897 243.39 2.21224863867 1.51539195732 1.33986364857 58.1698477363 0.111569653825 0.0726437429166 244.517 2.19556048353 1.53513716256 1.34318258005 58.5604226279 0.114112074469 0.0620483143948 245.644 2.18130637361 1.55181548893 1.34639903708 58.9501221026 0.116685280201 0.0515336724654 246.771 2.16946775012 1.5653904307 1.34953108354 59.3382000056 0.119284054766 0.0421259894404 247.897 2.15979031585 1.57615646426 1.35259541422 59.7239485934 0.121903408703 0.0342634635051 249.024 2.15191910807 1.58456007861 1.35560628048 60.1067568268 0.124538977087 0.0279850460781 250.151 2.14549021589 1.59107322418 1.35857521301 60.4861313409 0.127187165729 0.0230792135946 251.278 2.1401883209 1.59611111225 1.36151121354 60.8616893756 0.129845133284 0.0192723655794 252.405 2.1357609578 1.60000920845 1.36442120929 61.2331403757 0.132510673329 0.0163117957553 253.531 2.13201371451 1.60302731013 1.36731051144 61.6002653035 0.13518208346 0.0139923731506 254.658 2.12879930286 1.60536293992 1.3701832064 61.9628986223 0.13785804842 0.0121567791781 255.785 2.12600657483 1.60716546747 1.37304245889 62.3209129774 0.140537547023 0.0106878969273 256.912 2.12355128722 1.60854820219 1.37589074779 62.6742103278 0.143219778877 0.00949910279089 258.039 2.1213690965 1.60959767837 1.3787300343 63.0227146189 0.145904111336 0.00852637828034 259.165 2.11941036589 1.61038059016 1.38156188516 63.366366434 0.148590040294 0.00772216183226 260.292 2.11763638468 1.61094886676 1.38438756316 63.7051190679 0.151277161136 0.00705083136461 261.419 2.11601662552 1.61134336818 1.38720809419 64.0389356246 0.153965147085 0.00648545165605 262.546 2.11452674878 1.61159658188 1.39002431743 64.3677868515 0.156653732907 0.00600544843009 263.673 2.11314714124 1.61173460131 1.3928369233 64.6916495096 0.15934270254 0.00559494427312 264.799 2.11186183718 1.61177858902 1.39564648239 65.0105051351 0.162031879596 0.00524156246773 265.926 2.1106577141 1.61174586829 1.39845346784 65.3243390889 0.164721120006 0.0049355610751 267.053 2.10952388748 1.61165074508 1.40125827282 65.6331398213 0.167410306268 0.00466920081916 268.18 2.10845125074 1.61150513299 1.4040612242 65.9368982974 0.170099342902 0.00443627863935 269.307 2.10743212228 1.61131903248 1.4068625935 66.2356075441 0.172788152832 0.0042317877004 270.433 2.10645997069 1.61110090401 1.40966260562 66.5292622914 0.175476674485 0.00405164403975 271.56 2.10552920279 1.61085795548 1.41246144586 66.817858684 0.178164859439 0.00389250219595 272.687 2.1046349939 1.61059637218 1.41525926568 67.1013940501 0.18085267051 0.00375160097148 273.814 2.10377315369 1.61032149834 1.4180561874 67.379866713 0.183540080182 0.00362664773641 274.941 2.10294001848 1.61003798262 1.42085230804 67.6532758377 0.186227069312 0.00351572859422 276.067 2.10213236428 1.60974989545 1.42364770256 67.9216213051 0.188913626059 0.00341723809927 277.194 2.1013473359 1.60946082434 1.42644242647 68.1849036078 0.191599744985 0.00332982387905 278.321 2.10058238884 1.60917395206 1.42923651814 68.4431237644 0.194285426312 0.00325234271182 279.448 2.09983524122 1.60889212094 1.43203000061 68.6962832473 0.196970675291 0.00318382547898 280.575 2.09910383379 1.60861788637 1.43482288316 68.9443839232 0.199655501671 0.00312344904682 281.701 2.09838629639 1.60835356155 1.43761516269 69.1874280027 0.202339919258 0.00307051360112 282.828 2.09768091964 1.60810125513 1.44040682481 69.4254179988 0.205023945532 0.00302442430625 283.955 2.0969861308 1.60786290323 1.44319784479 69.6583566909 0.207707601336 0.00298467642175 285.082 2.09630047308 1.60764029687 1.44598818834 69.8862470946 0.210390910607 0.00295084320681 286.209 2.09562258772 1.60743510565 1.44877781233 70.1090924367 0.213073900146 0.00292256609331 287.336 2.09495119836 1.60724889839 1.45156666531 70.3268961334 0.215756599439 0.00289954672403 288.462 2.09428509714 1.60708316141 1.454354688 70.5396617733 0.218439040499 0.00288154054241 289.589 2.09362313241 1.6069393148 1.45714181364 70.7473931018 0.221121257741 0.0028683516911 290.716 2.09296419751 1.60681872717 1.45992796832 70.9500940091 0.223803287887 0.00285982903328 291.843 2.09230722047 1.60672272922 1.46271307119 71.1477685198 0.226485169887 0.0028558631563 292.97 2.09165115451 1.60665262645 1.46549703464 71.340420785 0.22916694487 0.0028563851168 294.096 2.09099496863 1.60660971149 1.4682797644 71.5280550754 0.231848656114 0.00286136163324 295.223 2.09033763952 1.60659527504 1.47106115957 71.7106757767 0.234530349031 0.00287079990158 296.35 2.0896781422 1.60661061835 1.47384111263 71.8882873861 0.237212071177 0.00288474419941 297.477 2.08901544151 1.60665706472 1.47661950938 72.0608945098 0.239893872285 0.0029032778177 298.604 2.08834848316 1.60673597171 1.47939622876 72.2285018623 0.242575804306 0.00292652489455 299.73 2.08767618436 1.60684874391 1.4821711427 72.3911142667 0.245257921486 0.00295465315205 300.857 2.08699742376 1.60699684678 1.48494411586 72.5487366557 0.247940280455 0.00298787765288 301.984 2.08631103063 1.60718182171 1.48771500529 72.7013740746 0.250622940342 0.00302646932978 303.111 2.085615772 1.60740530388 1.49048366003 72.8490316847 0.253305962925 0.00307074734279 304.238 2.08491034155 1.60766903776 1.4932499206 72.991714768 0.255989412798 0.00312110771 305.364 2.08419334202 1.60797490196 1.49601361846 73.1294287337 0.25867335758 0.00317801996368 306.491 2.08346326826 1.60832493304 1.49877457522 73.2621791252 0.261357868163 0.0032420432986 307.618 2.08271848668 1.60872135469 1.50153260189 73.389971629 0.264043019002 0.00331384294045 308.745 2.08195721086 1.60916661232 1.50428749781 73.5128120856 0.266728888463 0.00339420586589 309.872 2.08117747359 1.60966341283 1.50703904951 73.6307065011 0.269415559229 0.00348407353736 310.998 2.08037709138 1.61021477528 1.5097870293 73.7436610617 0.272103118785 0.00358457365187 312.125 2.07955362168 1.6108240919 1.51253119359 73.8516821501 0.274791659998 0.00369705055319 313.252 2.07870431311 1.61149519938 1.51527128091 73.9547763649 0.277481281804 0.00382315648821 314.379 2.07782603473 1.61223247999 1.51800700947 74.0529505429 0.280172090043 0.00396487212457 315.506 2.07691520059 1.61304096988 1.52073807422 74.1462117852 0.28286419847 0.00412463871527 316.632 2.07596766391 1.61392651083 1.52346414329 74.2345674886 0.285557729986 0.00430549618982 317.759 2.07497857958 1.61489594764 1.52618485358 74.318025381 0.288252818156 0.00451120539865 318.886 2.07394223849 1.6159573663 1.52889980524 74.3965935655 0.290949609104 0.00474657027049 320.013 2.07285182797 1.61712043842 1.53160855475 74.4702805716 0.293648263889 0.00501780336077 321.14 2.07169910817 1.6183968867 1.53431060608 74.5390954184 0.296348961571 0.00533298325971 322.266 2.07047398336 1.6198011023 1.53700539906 74.6030476925 0.299051903182 0.00570291315691 323.393 2.06916387604 1.62135104651 1.53969229421 74.6621476446 0.301757316978 0.00614227240339 324.52 2.06775283648 1.6230695346 1.54237055211 74.7164063118 0.304465465541 0.0066716645716 325.647 2.06622018179 1.62498619896 1.54503930492 74.765835677 0.307176655608 0.00732079935734 326.774 2.06453840397 1.62714050912 1.5476975157 74.8104488804 0.30989125211 0.00813420296776 327.901 2.06266976621 1.62958668924 1.55034391851 74.8502605097 0.312609698912 0.00918179516576 329.027 2.0605604693 1.63240215293 1.55297692589 74.8852870155 0.315332550824 0.0105798682354 330.154 2.05812999869 1.63570292124 1.55559447858 74.9155473361 0.318060525751 0.0125376174011 331.281 2.05524978223 1.63967454228 1.55819378288 74.9410639077 0.320794595977 0.0154726723698 332.408 2.05169530738 1.64464154972 1.56077080581 74.9618644645 0.323536164085 0.0203575699604 333.535 2.04701864464 1.65125266715 1.5633191592 74.9779857295 0.326287452968 0.0301023710185 334.661 2.04010334791 1.66112886679 1.56582700453 74.9894825064 0.329052592004 0.0591823452511 335.788 2.02650762557 1.68074638777 1.56826352499 74.9964647039 0.331842397989 0.683565584967 336.915 1.86947485066 1.91808365925 1.57012747793 74.9994940577 0.334843797816 0.958845838661 338.042 1.64920304929 2.287 1.57079632679 75.0 0.338347434634 0.0