Documentation |
Estimate general input-output models using recursive prediction-error minimization method
thm = rpem(z,nn,adm,adg) [thm,yhat,P,phi,psi] = rpem(z,nn,adm,adg,th0,P0,phi0,psi0)
The parameters of the general linear model structure
$$A(q)y(t)=\frac{{B}_{1}(q)}{{F}_{1}(q)}{u}_{1}(t-n{k}_{1})+\mathrm{...}+\frac{{B}_{nu}(q)}{{F}_{nu}(q)}{u}_{nu}(t-n{k}_{nu})+\frac{C(q)}{D(q)}e(t)$$
are estimated using a recursive prediction error method.
The input-output data is contained in z, which is either an iddata object or a matrix z = [y u] where y and u are column vectors. (In the multiple-input case, u contains one column for each input.) nn is given as
nn = [na nb nc nd nf nk]
where na, nb, nc, nd, and nf are the orders of the model, and nk is the delay. For multiple-input systems, nb, nf, and nk are row vectors giving the orders and delays of each input. See What Are Polynomial Models? for an exact definition of the orders.
The estimated parameters are returned in the matrix thm. The kth row of thm contains the parameters associated with time k; that is, they are based on the data in the rows up to and including row k in z. Each row of thm contains the estimated parameters in the following order.
thm(k,:) = [a1,a2,...,ana,b1,...,bnb,... c1,...,cnc,d1,...,dnd,f1,...,fnf]
For multiple-input systems, the B part in the above expression is repeated for each input before the C part begins, and the F part is also repeated for each input. This is the same ordering as in m.par.
yhat is the predicted value of the output, according to the current model; that is, row k of yhat contains the predicted value of y(k) based on all past data.
The actual algorithm is selected with the two arguments adg and adm. These are described under rarx.
The input argument th0 contains the initial value of the parameters, a row vector consistent with the rows of thm. The default value of th0 is all zeros.
The arguments P0 and P are the initial and final values, respectively, of the scaled covariance matrix of the parameters. See rarx. The default value of P0 is 10^{4} times the unit matrix. The arguments phi0, psi0, phi, and psi contain initial and final values of the data vector and the gradient vector, respectively. The sizes of these depend on the chosen model orders. The normal choice of phi0 and psi0 is to use the outputs from a previous call to rpem with the same model orders. (This call could be a dummy call with default input arguments.) The default values of phi0 and psi0 are all zeros.
Note that the function requires that the delay nk be larger than 0. If you want nk = 0, shift the input sequence appropriately and use nk = 1.