Section 7.0 - Cost Assessment

[1]:
import numpy as np
import matplotlib.pyplot as plt
[2]:
chem_data = np.loadtxt('../../../cost-data/cost-dataset-chem.csv', delimiter=",")
sep_data = np.loadtxt('../../../cost-data/cost-dataset-sep.csv', delimiter=",")
[3]:
chem_DV = [0.1, 0.5, 1.0, 1.5, 2.0]
sep_DV = [5.0, 10.0, 15.0]
[4]:
fig = plt.figure()
fig.set_size_inches([6.25, 3.25])

plt.rc('font',family='Times New Roman')
params = {'mathtext.default': 'regular' }
plt.rcParams.update(params)

plt.plot(chem_DV, chem_data[1][1:], label=r'$m_{PL}$' +' = '+str(chem_data[1][0])+ ' kg', color='r', marker='^', mfc='w', markeredgewidth=1, markersize=8, linestyle='solid')
plt.plot(chem_DV, chem_data[4][1:], label=r'$m_{PL}$' +' = '+str(chem_data[4][0])+ ' kg', color='b', marker='o', mfc='w', markeredgewidth=1, markersize=7, linestyle='solid')
plt.plot(chem_DV, chem_data[9][1:], label=r'$m_{PL}$' +' = '+str(chem_data[9][0])+ ' kg', color='m', marker='s', mfc='w', markeredgewidth=1, markersize=7, linestyle='solid')
plt.plot(chem_DV, chem_data[19][1:], label=r'$m_{PL}$' +' = '+str(chem_data[19][0])+ ' kg', color='g', marker='D', mfc='w', markeredgewidth=1, markersize=7, linestyle='solid')

plt.xlabel(r'$\Delta V$'+', km/s', fontsize=12)
plt.ylabel('Mission cost ($M)', fontsize=12)

plt.yticks(fontsize=12)
plt.xticks(fontsize=12)
ax = plt.gca()
ax.tick_params(direction='in')
ax.yaxis.set_ticks_position('both')
ax.xaxis.set_ticks_position('both')

ax.set_zorder(1)
ax=plt.gca()
ax.xaxis.set_tick_params(direction='in', which='both')
ax.yaxis.set_tick_params(direction='in', which='both')
ax.xaxis.set_tick_params(width=1, length=4)
ax.yaxis.set_tick_params(width=1, length=4)
ax.xaxis.set_tick_params(width=1, length=4, which='minor')
ax.yaxis.set_tick_params(width=1, length=4, which='minor')
ax.xaxis.grid(which='major', color='k', linestyle='dotted', linewidth=0.5)
ax.xaxis.grid(which='minor', color='k', linestyle='dotted', linewidth=0.0)
ax.yaxis.grid(which='major', color='k', linestyle='dotted', linewidth=0.5)
ax.yaxis.grid(which='minor', color='k', linestyle='dotted', linewidth=0.0)

plt.legend(loc='upper left', fontsize=12)


for axis in ['top', 'bottom', 'left', 'right']:
    ax.spines[axis].set_linewidth(2)

plt.savefig('../../../data/acta-astronautica/smallsat-mission-concepts/cost-assessment.png', dpi= 300,bbox_inches='tight')
plt.savefig('../../../data/acta-astronautica/smallsat-mission-concepts/cost-assessment.pdf', dpi=300,bbox_inches='tight')
plt.savefig('../../../data/acta-astronautica/smallsat-mission-concepts/cost-assessment.eps', dpi=300,bbox_inches='tight')

plt.show()
The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.
../../_images/mdpi-aerospace-notebooks_smallsat-mission-concepts_section-7-0-cost-assessment_4_1.png
[18]:
def compute_mf(md, dV, Isp = 320, g0=9.80661):
    return md*(np.exp(dV/(Isp*g0)) - 1)
[19]:
compute_mf(25, 1770)
[19]:
18.94367304665004
[20]:
compute_mf(25, 2100)
[20]:
23.816448679794295
[21]:
compute_mf(25, 3130)
[21]:
42.781535086974834
[22]:
(43-25)*100/25
[22]:
72.0
[23]:
compute_mf(25, 3500)
[23]:
51.263540652454544
[24]:
(51-25)*100/25
[24]:
104.0