Примеры запуска Gymnasium сред¶
Ниже приведены короткие, запускаемые примеры для ключевых сред TensorAeroSpace на базе Gymnasium. Все примеры используют единый шаблон с корректным API reset() и step().
Общая подготовка¶
import numpy as np
import gymnasium as gym
from tensoraerospace.utils import generate_time_period
from tensoraerospace.signals.standard import unit_step
dt = 0.01
tp = generate_time_period(tn=20, dt=dt)
number_time_steps = len(tp)
reference_signals = np.reshape(
unit_step(degree=5, tp=tp, time_step=10, output_rad=True),
[1, -1]
)
Шаблон использования среды¶
env = gym.make(
'ENV_ID',
number_time_steps=number_time_steps,
initial_state=INITIAL_STATE,
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
LinearLongitudinalF16-v0¶
env = gym.make(
'LinearLongitudinalF16-v0',
number_time_steps=number_time_steps,
# По умолчанию state_space=["alpha", "q"], задаём начальное состояние под него
initial_state=[[0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
LinearLongitudinalB747-v0¶
env = gym.make(
'LinearLongitudinalB747-v0',
number_time_steps=number_time_steps,
# Полное начальное состояние модели: [u, w, q, theta]
initial_state=[[0], [0], [0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
LinearLongitudinalF4C-v0¶
env = gym.make(
'LinearLongitudinalF4C-v0',
number_time_steps=number_time_steps,
# state_space=['theta','q','alpha','V']
initial_state=[[0], [0], [0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
LinearLongitudinalUAV-v0¶
env = gym.make(
'LinearLongitudinalUAV-v0',
number_time_steps=number_time_steps,
# Полное начальное состояние модели: [u, w, q, theta]
initial_state=[[0], [0], [0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
LinearLongitudinalX15-v0¶
env = gym.make(
'LinearLongitudinalX15-v0',
number_time_steps=number_time_steps,
# Рекомендуем полное начальное состояние
initial_state=[[0], [0], [0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
LinearLongitudinalELVRocket-v0¶
env = gym.make(
'LinearLongitudinalELVRocket-v0',
number_time_steps=number_time_steps,
# Модель с 2 отслеживаемыми состояниями, используйте подходящее начальное состояние
initial_state=[[0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
LinearLongitudinalMissileModel-v0¶
env = gym.make(
'LinearLongitudinalMissileModel-v0',
number_time_steps=number_time_steps,
initial_state=[[0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
GeoSat-v0¶
env = gym.make(
'GeoSat-v0',
number_time_steps=number_time_steps,
initial_state=[[0], [0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
ComSat-v0¶
env = gym.make(
'ComSat-v0',
number_time_steps=number_time_steps,
initial_state=[[0], [0], [0]],
reference_signal=reference_signals,
)
state, info = env.reset()
for _ in range(5):
action = env.action_space.sample()
state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()