Search Results for

    Show / Hide Table of Contents

    Class UnitIdentifier

    Identifier of the "Default" process model - a dynamic process model with time-constant, time-delay, linear process gain and optional (nonlinear) curvature process gains.

    This model class is sufficent for real-world linear or weakly nonlinear dynamic systems, yet also introduces the fewest possible parameters to describe the system in an attempt to avoid over-fitting/over-parameterization.

    The "default" process model is identified using a linear-in-parameters parameterization (parameters a,b,c), so that it can be solved by linear regression and identification should thus be both fast and stable. The issue with the parameterization (a,b,c) is that the meaning of each parameter is less intuitive, for instance the time constant depends on a, but linear gain depends on both a and b, while curvature depends on a and c. Looking at the unceratinty of each parameter to determine if the model should be dynamic or static or what the uncertainty of the time constant is, is very hard, and this observation motivates re-parameterizing the model after identification.

    When assessing and simulating the model, parameters are converted into the more intuitive parameters "time constant", "linear gains" and "curvature gain" which are a different parameterization. The UnitIdentifier, UnitModel and UnitParameters classes handle this transition seamlessly to the user. Uncertainty is expressed in terms of this more intuitive parameterization, to allow for a more intuitive assessment of the parameters.

    Another advantage of the parameterization is that the model internally separates between steady-state and transient state. You can at any instance "turn off" dynamics and request the steady-state model output for the current input. This is useful if you have transient data that you want to analyze in the steady-state, as you can then fit the model to all available data-points without having to select what data points you believe are at steady state, then you can disable dynamic terms to do a static analysis of the dynamic model.

    Time-delay is an integer parameter, and finding the time-delay alongside continuous parameters turns the identification problem into a linear mixed-integer problem. The time delay identification is done by splitting the time-delay estimation from continuous parameter identification, turning the solver into a sequential optimization solver. This logic to re-run estimation for multiple time-delays and selecting the best estimate of time delay is deferred to TimeSeriesAnalysis.Dynamic.UnitTimeDelayIdentifier.

    Since the aim is to identify transients/dynamics, the regression is done on model differences rather than absolute values.

    Inheritance
    object
    UnitIdentifier
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: TimeSeriesAnalysis.Dynamic
    Assembly: TimeSeriesAnalysis.dll
    Syntax
    public static class UnitIdentifier

    Methods

    | Edit this page View Source

    Identify(ref UnitDataSet, FittingSpecs, bool)

    Identifies the "Default" process model that best fits the dataSet given

    Declaration
    public static UnitModel Identify(ref UnitDataSet dataSet, FittingSpecs fittingSpecs = null, bool doEstimateTimeDelay = true)
    Parameters
    Type Name Description
    UnitDataSet dataSet

    The dataset containing the ymeas and U that is to be fitted against, a new y_sim is also added

    FittingSpecs fittingSpecs

    optional fitting specs object for tuning data

    bool doEstimateTimeDelay

    (default:true) if set to false, time delay estimation is disabled (can drastically speeed up identification)

    Returns
    Type Description
    UnitModel

    the identified model parameters and some information about the fit

    | Edit this page View Source

    IdentifyLinear(ref UnitDataSet, FittingSpecs, bool)

    Identifies the "Default" process model that best fits the dataSet given, but disables curvatures

    Declaration
    public static UnitModel IdentifyLinear(ref UnitDataSet dataSet, FittingSpecs fittingSpecs, bool doEstimateTimeDelay = true)
    Parameters
    Type Name Description
    UnitDataSet dataSet

    The dataset containing the ymeas and U that is to be fitted against, a new y_sim is also added

    FittingSpecs fittingSpecs

    optionally set constraints on the identification

    bool doEstimateTimeDelay

    if set to false, estimation of time delays are disabled

    Returns
    Type Description
    UnitModel

    the identified model parameters and some information about the fit

    | Edit this page View Source

    IdentifyLinearAndStatic(ref UnitDataSet, FittingSpecs, bool)

    Identifies the "Default" process model that best fits the dataSet given, but disables curvatures and time-constants

    Declaration
    public static UnitModel IdentifyLinearAndStatic(ref UnitDataSet dataSet, FittingSpecs fittingSpecs, bool doEstimateTimeDelay = true)
    Parameters
    Type Name Description
    UnitDataSet dataSet

    The dataset containing the ymeas and U that is to be fitted against, a new y_sim is also added

    FittingSpecs fittingSpecs

    object of specifications for

    bool doEstimateTimeDelay

    set to false to disable time delay estimation (this speeds up identification manyfold)

    Returns
    Type Description
    UnitModel

    the identified model parameters and some information about the fit

    | Edit this page View Source

    IdentifyLinearAndStaticDiff(ref UnitDataSet, FittingSpecs, bool)

    Identifies the process model that best fits the dataSet given by minimizing differences y[k]-y[k-1], but disables curvatures and time-constants.

    Declaration
    public static UnitModel IdentifyLinearAndStaticDiff(ref UnitDataSet dataSet, FittingSpecs fittingSpecs, bool doEstimateTimeDelay = true)
    Parameters
    Type Name Description
    UnitDataSet dataSet

    The dataset containing the ymeas and U that is to be fitted against, a new y_sim is also added

    FittingSpecs fittingSpecs

    Optionally sets the local working point, constraints etc. for id.

    bool doEstimateTimeDelay

    if set to false, modeling does not identify time-delays

    Returns
    Type Description
    UnitModel

    the identified model parameters and some information about the fit

    | Edit this page View Source

    IdentifyLinearAndStaticWhileKeepingLinearGainFixed(UnitDataSet, int, double, double, double)

    Freezed one input to a given pre-determined value, but re-identifies other static paramters. This is useful if doing a "global search" where varying a single gain.

    Declaration
    public static UnitModel IdentifyLinearAndStaticWhileKeepingLinearGainFixed(UnitDataSet dataSet, int inputIdxToFix, double inputProcessGainValueToFix, double u0_fixedInput, double uNorm_fixedInput)
    Parameters
    Type Name Description
    UnitDataSet dataSet
    int inputIdxToFix

    the index of the value to freeze

    double inputProcessGainValueToFix

    the linear gain to freeze the at

    double u0_fixedInput
    double uNorm_fixedInput
    Returns
    Type Description
    UnitModel

    identified model, to check if identification suceeded, check .modelParameters.Fitting.WasAbleToIdentify

    | Edit this page View Source

    IdentifyLinearDiff(ref UnitDataSet, FittingSpecs, bool)

    Identifies the process model based on differences y[k]-y[k-1] that best fits the dataSet given, but disables curvatures

    Declaration
    public static UnitModel IdentifyLinearDiff(ref UnitDataSet dataSet, FittingSpecs fittingSpecs, bool doEstimateTimeDelay = true)
    Parameters
    Type Name Description
    UnitDataSet dataSet

    The dataset containing the ymeas and U that is to be fitted against, a new y_sim is also added

    FittingSpecs fittingSpecs

    optionally set constraints on the identification

    bool doEstimateTimeDelay

    if set to false, estimation of time delays are disabled(default is true)

    Returns
    Type Description
    UnitModel

    the identified model parameters and some information about the fit

    | Edit this page View Source

    IdentifyStatic(ref UnitDataSet, FittingSpecs)

    Identifies the "Default" process model that best fits the dataSet given, but no time-constants

    Declaration
    public static UnitModel IdentifyStatic(ref UnitDataSet dataSet, FittingSpecs fittingSpecs = null)
    Parameters
    Type Name Description
    UnitDataSet dataSet

    The dataset containing the ymeas and U that is to be fitted against, a new element y_sim is also added to this dataset

    FittingSpecs fittingSpecs
    Returns
    Type Description
    UnitModel

    the identified model parameters and some information about the fit

    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX