Consultant evaluation and lab 3
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,94 @@
|
||||
---
|
||||
title: ECE09426 Lecture 6 Homework
|
||||
author: Aidan Sharpe
|
||||
date: March 3rd, 2025
|
||||
geometry: margin=1in
|
||||
---
|
||||
|
||||
# Required PDMS for a HAW System
|
||||
```python
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
P_TX = 7E3
|
||||
LOSS_TX = 10**(5/10)
|
||||
GAIN_TX = 10**(35/10)
|
||||
MAX_RANGE = 60E3
|
||||
TARGET_AREA = 1
|
||||
|
||||
def PDMS(tx_power, tx_gain, radar_cross_section, tx_loss, dist_source_target, dist_target_missile):
|
||||
tx_p_gain = (tx_power*tx_gain) / (4*np.pi*tx_loss)
|
||||
p_ref = radar_cross_section / (dist_source_target**2)
|
||||
p_rx = 1 / (4*np.pi*dist_target_missile**2)
|
||||
|
||||
return tx_p_gain * p_ref * p_rx
|
||||
|
||||
|
||||
def main():
|
||||
pd_min = PDMS(P_TX, GAIN_TX, TARGET_AREA, LOSS_TX, MAX_RANGE, MAX_RANGE)
|
||||
pd_min_db = 10*np.log10(pd_min)
|
||||
print(pd_min_db)
|
||||
```
|
||||
|
||||
PDMS required = -144.6592668956451
|
||||
|
||||
# PDMS for a non-HAW System
|
||||
```python
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
MAX_RANGE = 60E3
|
||||
|
||||
def main():
|
||||
illumination_percent = np.arange(0.1, 1.1, 0.1)
|
||||
max_range = MAX_RANGE/illumination_percent
|
||||
|
||||
plt.plot(100*illumination_percent, max_range)
|
||||
plt.xlabel("Illumination Percent")
|
||||
plt.ylabel("Max Range [km]")
|
||||
plt.show()
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
# Rocket Motor Math
|
||||
```python
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
g = 9.81
|
||||
I_SP = 250
|
||||
BURN_TIME = 14
|
||||
INITIAL_MASS = 1200
|
||||
FINAL_MASS = 700
|
||||
|
||||
def v_burnout(I_sp, t_burn, w_launch, w_burnout):
|
||||
return I_sp * g*np.log(w_launch/w_burnout)
|
||||
|
||||
|
||||
def main():
|
||||
t = np.linspace(0, BURN_TIME, 500)
|
||||
|
||||
m_propellant = INITIAL_MASS - FINAL_MASS
|
||||
w_propellant_0 = g*m_propellant
|
||||
w_rocket = g*FINAL_MASS
|
||||
|
||||
weight_flow_rate = w_propellant_0/BURN_TIME
|
||||
v_exit = I_sp*g
|
||||
w_propellant = w_propellant_0 - weight_flow_rate*t
|
||||
|
||||
thrust = weight_flow_rate*v_exit*g
|
||||
w_total = w_rocket + w_propellant
|
||||
|
||||
acceleration_g = thrust/w_total
|
||||
|
||||
plt.plot(t, acceleration_g)
|
||||
plt.show()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
```
|
||||
|
||||

|
||||
Binary file not shown.
35
8th-Semester-Spring-2025/weapon-systems/homework/pdms.py
Normal file
35
8th-Semester-Spring-2025/weapon-systems/homework/pdms.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
P_TX = 7E3
|
||||
LOSS_TX = 10**(5/10)
|
||||
GAIN_TX = 10**(35/10)
|
||||
MAX_RANGE = 60E3
|
||||
TARGET_AREA = 1
|
||||
|
||||
def PDMS(tx_power, tx_gain, radar_cross_section, tx_loss, dist_source_target, dist_target_missile):
|
||||
tx_p_gain = (tx_power*tx_gain) / (4*np.pi*tx_loss)
|
||||
p_ref = radar_cross_section / (dist_source_target**2)
|
||||
p_rx = 1 / (4*np.pi*dist_target_missile**2)
|
||||
|
||||
return tx_p_gain * p_ref * p_rx
|
||||
|
||||
|
||||
def main():
|
||||
pd_min = PDMS(P_TX, GAIN_TX, TARGET_AREA, LOSS_TX, MAX_RANGE, MAX_RANGE)
|
||||
pd_min_db = 10*np.log10(pd_min)
|
||||
print(pd_min_db)
|
||||
|
||||
illumination_percent = np.arange(0.1, 1.1, 0.1)
|
||||
max_range = MAX_RANGE/illumination_percent
|
||||
|
||||
plt.plot(100*illumination_percent, max_range)
|
||||
plt.xlabel("Illumination Percent")
|
||||
plt.ylabel("Max Range [km]")
|
||||
plt.savefig("illumination-percent-range.png")
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -10,8 +10,11 @@ g = 9.81
|
||||
def specific_impulse(v_burnout, w_launch, w_burnout):
|
||||
return v_burnout / (g*np.log(w_launch/w_burnout))
|
||||
|
||||
def v_burnout(I_sp, t_burn, w_launch, w_burnout):
|
||||
return I_sp * g*np.log(w_launch/w_burnout)
|
||||
|
||||
def main():
|
||||
|
||||
def exit_velocity():
|
||||
plt.figure(figsize=(16,9))
|
||||
v_burnout = 1000
|
||||
w_rocket = 300
|
||||
@@ -61,6 +64,32 @@ def main():
|
||||
plt.savefig("rocket_motor.png")
|
||||
plt.show()
|
||||
|
||||
def main():
|
||||
I_sp = 250
|
||||
t_burn = 14
|
||||
t = np.linspace(0, t_burn, 500)
|
||||
m_0 = 1200
|
||||
m_final = 700
|
||||
|
||||
m_propellant = m_0 - m_final
|
||||
w_propellant_0 = g*m_propellant
|
||||
w_rocket = g*m_final
|
||||
|
||||
weight_flow_rate = w_propellant_0/t_burn
|
||||
v_exit = I_sp*g
|
||||
w_propellant = w_propellant_0 - weight_flow_rate*t
|
||||
|
||||
thrust = weight_flow_rate*v_exit*g
|
||||
w_total = w_rocket + w_propellant
|
||||
|
||||
acceleration_g = thrust/w_total
|
||||
|
||||
plt.plot(t, acceleration_g)
|
||||
plt.savefig("timed_burn.png")
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
BIN
8th-Semester-Spring-2025/weapon-systems/homework/timed_burn.png
Normal file
BIN
8th-Semester-Spring-2025/weapon-systems/homework/timed_burn.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Reference in New Issue
Block a user