A = zeros((ndof, ndof)) x0 = [Xinit, -Xinit] sensorC = eye(ndof) Csurface = [[0, 1.0]] Brel = [[0], [2]] # Simple check if h > hControl: print("hControl must be bigger than h") exit(1) # Declaration of the Dynamical System processDS = FirstOrderLinearDS(x0, A) # Control Simulation sim = ControlZOHSimulation(t0, T, h) sim.setSaveOnlyMainSimulation(True) sim.addDynamicalSystem(processDS) # Actuator, Sensor & ControlManager sens = LinearSensor(processDS, sensorC) sim.addSensor(sens, hControl) act = ExplicitLinearSMC(sens) act.setCsurface(Csurface) act.setB(Brel) sim.addActuator(act, hControl) # Initialization sim.initialize() # Run simulation sim.run()
x0 = [Xinit, -Xinit] sensorC = eye(ndof) Csurface = [[0, 1.0]] Brel = [[0], [2]] # Simple check if h > hControl: print "hControl must be bigger than h" exit(1) # Declaration of the Dynamical System processDS = FirstOrderLinearDS(x0, A) processDS.setComputebFunction("RelayPlugin", "computeB") # Control simulation sim = ControlZOHSimulation(t0, T, h) sim.setSaveOnlyMainSimulation(True) sim.addDynamicalSystem(processDS) # Actuator, Sensor & ControlManager sens = LinearSensor(processDS, sensorC) sim.addSensor(sens, hControl) act = LinearSMCOT2(sens) act.setCsurface(Csurface) act.setB(Brel) sim.addActuator(act, hControl) # Initialization sim.initialize() # Run simulation sim.run()