Newer
Older
import numpy as np
from inputs import Input
from MMAE.mmae import MMAE
from System.system_simulator import SystemSimulator
from testbench_tools import simulation_configuration_setup
from testbench_tools import mmae_simulator_simulation_and_plot
def __init__(self, λ, λs, k, b, dt, H, Q, R, x0, true_system_noisy, estimator_noisy, max_time, max_steps, amplitude):
# Synthetic system simulator initialization
self.TrueSystem = SystemSimulator(λ, k, b, dt, H, Q, R, x0, true_system_noisy)
# Input initialization
self.input_signal = Input(self.TrueSystem.model, max_time).step_function(max_steps, amplitude)
# MMAE initialization
self.MMAE = MMAE(λs, k, b, dt, H, Q, R, x0, estimator_noisy)
def update(self, t: int) -> float:
u = self.input_signal[t, :].reshape(-1, 1)
_, z = self.TrueSystem.update(u)
λ_hat = self.MMAE.update(u, z)
return λ_hat
# Load configuration from JSON file
λs, λ, k, b, dt, H, Q, R, x0, max_time, max_steps, amplitude = simulation_configuration_setup()
# MMAE simulator initialization
MMAESimulator = MMAESimulator(λ, λs, k, b, dt, H, Q, R, x0, True, False, max_time, max_steps, amplitude)
mmae_simulator_simulation_and_plot(MMAESimulator, max_steps, dt)