idpar

Create parameter for initial states and input level estimation

Syntax

``p = idpar(value)``
``p = idpar(name,value)``

Description

````p = idpar(value)` creates an estimable parameter with initial value `value`. The parameter, `p`, is either scalar or array-valued, with the same dimensions as `value`. You can configure attributes of the parameter, such as which elements are fixed and which are estimated, and lower and upper bounds.You can create estimable parameters for:Initial state estimation for state-space model estimation (`ssest`), prediction (`predict`), and forecasting (`forecast`)Explicit initial state estimation with `findstates` Input level estimation for process model estimation with `pem` Specifying estimable state values or input levels gives you explicit control over the behavior of individual state values during estimation.```
````p = idpar(name,value)` sets the `Name` property of `p` to `name`.```

example

Examples

collapse all

Create and configure a parameter for estimating the initial state values of a 4-state system. Fix the first state value to 1. Limit the second and third states to values between 0 and 1.

```paramvalue = [1; nan(3,1)]; p = idpar('x0',paramvalue); p.Free(1) = 0; p.Minimum([2 3]) = 0; p.Maximum([2 3]) = 1;```

The column vector `paramvalue` specifies an initial value of 1 for the first state. `paramvalue` further specifies unknown values for the remaining 3 states.

Setting `p.Free(1)` to false fixes `p.Value(1)` to 1. Estimation using `p` does not alter that value.

Setting `p.Minimum` and `p.Maximum` for the second and third entries in `p` limits the range that those values can take when `p` is used in estimation.

You can now use `p` in initial state estimation, such as with the `findstates` command. For example, use `opt = findstatesOptions('InitialState',p)` to create a `findstates` options set that uses `p`. Then, call `findstates` with that options set.

Input Arguments

collapse all

`value` is a numeric scalar or array that determines both the dimensions and initial values of the estimable parameter `p`.

`value` should be:

• A column vector of length Nx, the number of states to estimate, if you are using `p` for initial state estimation.

• An Nx-by-Ne array, if you are using `p` for initial state estimation with multi-experiment data. Ne is the number of experiments.

• A column vector of length Nu, the number of inputs to estimate, if you are using `p` for input level estimation.

• An Nu-by-Ne array, if you are using `p` for input level estimation with multi-experiment data.

If the initial value of a parameter is unknown, use `NaN`.

You can optionally assign a name for convenience. The `Name` property is not used in state estimation or input level estimation.

Output Arguments

collapse all

Estimable parameter, specified as a `param.Continuous` object.

`p` contains the following fields:

 Field Description Default Values `Value` Scalar or array value of the parameter.The dimension and initial value of `p.Value` are taken from `value` when `p` is created. No default values `Minimum` Lower bound for the parameter value. When you use `p` in state estimation or input value estimation, the estimated value of the parameter does not drop below `p.Minimum`.The dimensions of `p.Minimum` must match the dimensions of `p.Value`. For array-valued parameters, you can:Specify lower bounds on individual array elements.`p.Minimum([1 4]) = -5;`Use scalar expansion to set the lower bound for all array elements.`p.Minimum = -5;` `-Inf` `Maximum` Upper bound for the parameter value. When you use `p` in state estimation or input value estimation, the estimated value of the parameter does not exceed `p.Maximum`.The dimensions of `p.Maximum` must match the dimensions of `p.Value`. For array-valued parameters, you can:Specify upper bounds on individual array elements.`p.Maximum([1 4]) = 5;`Use scalar expansion to set the upper bound for all array elements.`p.Maximum = 5;` `Inf` `Free` Boolean specifying whether the parameter is a free estimation variable.The dimensions of `p.Free` must match the dimensions of `p.Value`.If you want to estimate `p.Value(k)`, set `p.Free(k)` to `true`. To fix `p.Value(k)`, set `p.Free(k)` to `false`. Doing so allows you to control which states or input values are estimated and which are not.For array-valued parameters, you can:Fix individual array elements.```p.Free([1 4]) = false; p.Free = [1 0; 0 1];```Use scalar expansion to fix all array elements.`p.Free = false;` All elements are free (`p.Free = true`). `Scale` Scaling factor for normalizing the parameter value.`p.Scale` is not used in initial state estimation or input value estimation. `1` `Info` Structure array for storing parameter units and labels. The structure has `Label` and `Unit` fields.Use these fields for your convenience, to store parameter units and labels.```p.Info(1,1).Unit = 'rad/m'; p.Info(1,1).Label = 'engine speed';```The dimensions of `p.Info` must match the dimensions of `p.Value`. `''` for both `Label` and `Unit` fields `Name` Parameter name.This property is read-only. It is set to the `name` input argument when you create the parameter. `''`

Version History

Introduced in R2012a