-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.py
65 lines (47 loc) · 1.76 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from Vehicles.AD_Skyhawk import Skyhawk
from Environment.atmosphere import ISA1976
from Environment.wind import NoWind
from Environment.gravity import VerticalConstant
from Environment.environment import Environment
from Utility.trim_solver import steady_state_trim
from Vehicle_Physics.position import EarthPosition
from Earth_Models.flat_earth import EulerFlatEarth
from Utility.Signal_Generator import Constant, Doublet
from simulator import Simulation
import matplotlib.pyplot as plt
aircraft = Skyhawk()
atmosphere = ISA1976()
gravity = VerticalConstant()
wind = NoWind()
environment = Environment(atmosphere, gravity, wind)
pos = EarthPosition(x=0, y=0, height=10000)
psi = 0.5 # rad
TAS = 600 # m/s, about mach 2 @ 10,000
controls0 = {'delta_elevator': 0, 'delta_aileron': 0, 'delta_rudder': 0, 'delta_t': 0.5}
trimmed_state, trimmed_controls = steady_state_trim(
aircraft,
environment,
pos,
psi,
TAS,
controls0
)
system = EulerFlatEarth(time0=0, tot_state=trimmed_state)
de0 = trimmed_controls['delta_elevator']
controls = controls = {
'delta_elevator': Doublet(t_init=2, T=1, A=0.1, offset=de0),
'delta_aileron': Constant(trimmed_controls['delta_aileron']),
'delta_rudder': Constant(trimmed_controls['delta_rudder']),
'delta_t': Constant(trimmed_controls['delta_t'])
}
sim = Simulation(aircraft, system, environment, controls, dt=0.3)
results_03 = sim.propagate(25)
#sim = Simulation(aircraft, system, environment, controls, dt=0.05)
#results_005 = sim.propagate(25)
kwargs = {'subplots': True,
'sharex': True,
'figsize': (12, 100)}
#ax = results_005.plot(marker='.', color='r', **kwargs)
#ax = resu lts_03.plot(ax=ax, marker='x', color='k', ls='', **kwargs)
results_03.to_excel("output.xlsx")
#plt.show()