Table of Contents

Class PlantSimulatorHelper

Namespace
TimeSeriesAnalysis.Dynamic
Assembly
TimeSeriesAnalysis.dll

Convenience functions for using PlantSimulator

public class PlantSimulatorHelper
Inheritance
PlantSimulatorHelper
Inherited Members

Methods

CreateFeedbackLoopNoDisturbance(UnitDataSet, PidModel, UnitModel, int)

Create a PlantSimulator and TimeSeriesDataSet from a UnitDataSet, PidModel and UnitModel to do closed-loop simulations

The feedback loop has NO disturbance signal added, but this can be added to the returned PlantSimulator as needed.

public static (PlantSimulator, TimeSeriesDataSet) CreateFeedbackLoopNoDisturbance(UnitDataSet unitDataSet, PidModel pidModel, UnitModel unitModel, int pidInputIdx = 0)

Parameters

unitDataSet UnitDataSet
pidModel PidModel
unitModel UnitModel
pidInputIdx int

Returns

(PlantSimulator, TimeSeriesDataSet)

a simulator object and a dataset object that is ready to be simulated with Simulate()

CreateFeedbackLoopWithEstimatedDisturbance(UnitDataSet, PidModel, UnitModel, int)

Create a feedback loop, where the process model has an additive disturbance that is to be estimated.

public static (PlantSimulator, TimeSeriesDataSet) CreateFeedbackLoopWithEstimatedDisturbance(UnitDataSet unitDataSet, PidModel pidModel, UnitModel unitModel, int pidInputIdx = 0)

Parameters

unitDataSet UnitDataSet
pidModel PidModel
unitModel UnitModel
pidInputIdx int

Returns

(PlantSimulator, TimeSeriesDataSet)

a simulator object and a dataset object that is ready to be simulated with Simulate()

GetUnitDataSetForLoop(TimeSeriesDataSet, PidModel, UnitModel)

Returns a unit data set for a given UnitModel.

public static (bool, UnitDataSet) GetUnitDataSetForLoop(TimeSeriesDataSet inputData, PidModel pidModel, UnitModel unitModel)

Parameters

inputData TimeSeriesDataSet
pidModel PidModel
unitModel UnitModel

Returns

(bool, UnitDataSet)

a tuple with a bool indicating if it was a success as item1, and the dataset as item2

SimulateSingle(UnitDataSet, ISimulatableModel, List<int>, bool, bool)

Simulates a single model given a unit data set

public static (bool, double[], int) SimulateSingle(UnitDataSet unitData, ISimulatableModel model, List<int> indToIgnore = null, bool enableSimulatorRestarting = true, bool doVariableTimeBase = false)

Parameters

unitData UnitDataSet
model ISimulatableModel
indToIgnore List<int>
enableSimulatorRestarting bool
doVariableTimeBase bool

Returns

(bool, double[], int)

tuple : true/false if simulation ran, the simulated output, and the number of simulation restarts

SimulateSingle(TimeSeriesDataSet, ISimulatableModel, bool, out TimeSeriesDataSet, bool, bool)

Simulate a single model to get the output including any additive inputs.

public static bool SimulateSingle(TimeSeriesDataSet inputData, ISimulatableModel model, bool doDetermineIndicesToIgnore, out TimeSeriesDataSet simData, bool enableSimulatorRestarting = true, bool doVariableTimeBase = false)

Parameters

inputData TimeSeriesDataSet
model ISimulatableModel
doDetermineIndicesToIgnore bool
simData TimeSeriesDataSet
enableSimulatorRestarting bool
doVariableTimeBase bool

Returns

bool

SimulateSingleToYmeas(UnitDataSet, ISimulatableModel, double, int)

Simulates a single model for a unit dataset and adds the output to unitData.Y_meas of the unitData, optionally with noise

public static bool SimulateSingleToYmeas(UnitDataSet unitData, ISimulatableModel model, double noiseAmplitude = 0, int noiseSeed = 123)

Parameters

unitData UnitDataSet

the dataset to be simualted over, and where the Y_meas is updated with result

model ISimulatableModel

the model to be simulated

noiseAmplitude double

the amplitude of noise to be added to Y_meas

noiseSeed int

a seed value of the randm noise(specify so that tests are repeatable)

Returns

bool

SimulateSingleToYsim(UnitDataSet, ISimulatableModel, bool)

Simulates a single model for a unit dataset and adds the output to unitData.Y_meas of the unitData, optionally with noise

public static (bool, double[], int) SimulateSingleToYsim(UnitDataSet unitData, ISimulatableModel model, bool enableSimulatorRestarting = true)

Parameters

unitData UnitDataSet

the dataset to be simualted over, and where the Y_meas is updated with result

model ISimulatableModel

the model to be simulated

enableSimulatorRestarting bool

Returns

(bool, double[], int)