public static ControlSystemDataSample FromCloseSample(CloseLoopDataSample closeLoopSample) { var data = new ControlSystemDataSample(); data.time = closeLoopSample.time; data.mode = ControlSystemMode.CloseLoop; data.input = closeLoopSample.input; data.error = closeLoopSample.error; data.controllerOutput = closeLoopSample.controllerOutput; data.systemOutput = closeLoopSample.systemOutput; return(data); }
public CloseLoopDataSample Initialize(double currentTime, double dt) { controller.Initialize(dt); double systemOutput = system.Initialize(dt); CloseLoopDataSample dataSample = new CloseLoopDataSample() { time = currentTime, input = 0d, error = 0d, controllerOutput = 0d, systemOutput = systemOutput }; return(dataSample); }
public CloseLoopDataSample NextIteration(double input, double previousSystemOutput, double currentTime, double dt) { double error = input - previousSystemOutput; double controllerOutput = controller.NextIteration(error, previousSystemOutput, dt); double systemOutput = system.NextIteration(controllerOutput, currentTime, dt); CloseLoopDataSample dataSample = new CloseLoopDataSample() { time = currentTime, input = input, error = error, controllerOutput = controllerOutput, systemOutput = systemOutput }; return(dataSample); }