def add_model(self, model: XModModel): self.models[model.name] = model
class XModModel(ABC): """Base class for an xmod co-simulation component.""" xmod co-simulation
def __init__(self, dt: float): self.dt = dt self.models: Dict[str, XModModel] = {} self.connections: List[tuple] = [] # (from_model, from_port, to_model, to_port) def add_model(self, model: XModModel): self
def step(self, t: float, dt: float, inputs: Dict[str, np.ndarray]) -> XModStep: x_meas = inputs.get("x_measured", np.array([0.0]))[0] F_cmd = self.Kp * (self.x_ref - x_meas) return XModStep( outputs={"F_cmd": np.array([F_cmd])}, new_time=t + dt ) to_port) def step(self
def __init__(self, name: str): self.name = name self.input_ports: List[XModPort] = [] self.output_ports: List[XModPort] = []
def get_state(self): return {} # stateless