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
unitDataSetUnitDataSetpidModelPidModelunitModelUnitModelpidInputIdxint
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
unitDataSetUnitDataSetpidModelPidModelunitModelUnitModelpidInputIdxint
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
inputDataTimeSeriesDataSetpidModelPidModelunitModelUnitModel
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
unitDataUnitDataSetmodelISimulatableModelindToIgnoreList<int>enableSimulatorRestartingbooldoVariableTimeBasebool
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
inputDataTimeSeriesDataSetmodelISimulatableModeldoDetermineIndicesToIgnoreboolsimDataTimeSeriesDataSetenableSimulatorRestartingbooldoVariableTimeBasebool
Returns
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
unitDataUnitDataSetthe dataset to be simualted over, and where the Y_meas is updated with result
modelISimulatableModelthe model to be simulated
noiseAmplitudedoublethe amplitude of noise to be added to Y_meas
noiseSeedinta seed value of the randm noise(specify so that tests are repeatable)
Returns
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
unitDataUnitDataSetthe dataset to be simualted over, and where the Y_meas is updated with result
modelISimulatableModelthe model to be simulated
enableSimulatorRestartingbool