1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/estpoly.R
\name{oe}
\alias{oe}
\title{Estimate Output-Error Models}
\usage{
oe(x, order = c(1, 1, 0))
}
\arguments{
\item{x}{an object of class \code{idframe}}
\item{order:}{Specification of the orders: the four integer components
(nb,nf,nk) are order of polynomial B + 1, order of the polynomial F,
and the input-output delay respectively}
}
\value{
An object of class \code{estpoly} containing the following elements:
\tabular{ll}{
\code{sys} \tab an \code{idpoly} object containing the
fitted OE coefficients \cr
\code{fitted.values} \tab the predicted response \cr
\code{residuals} \tab the residuals \cr
\code{input} \tab the input data used \cr
\code{call} \tab the matched call \cr
\code{stats} \tab A list containing the following fields:
\tabular{ll}{
\code{vcov} \tab the covariance matrix of the fitted coefficients\cr
\code{sigma} \tab the standard deviation of the innovations
} \cr
\code{options} \tab Option set used for estimation. If no
custom options were configured, this is a set of default options. \cr
\code{termination} \tab Termination conditions for the iterative
search used for prediction error minimization.
\tabular{ll}{
\code{WhyStop} \tab Reason for termination \cr
\code{iter} \tab Number of Iterations \cr
\code{iter} \tab Number of Function Evaluations
}
}
}
\description{
Fit an output-error model of the specified order given the input-output data
}
\details{
SISO OE models are of the form
\deqn{
y[k] + f_1 y[k-1] + \ldots + f_{nf} y[k-nf] = b_{nk} u[k-nk] +
\ldots + b_{nk+nb} u[k-nk-nb] + f_{1} e[k-1] + \ldots f_{nf} e[k-nf]
+ e[k]
}
The function estimates the coefficients using non-linear least squares
(Levenberg-Marquardt Algorithm)
\\
The data is expected to have no offsets or trends. They can be removed
using the \code{\link{detrend}} function.
}
\examples{
data(oesim)
z <- dataSlice(data,end=1533) # training set
mod_oe <- oe(z,c(2,1,2))
summary(mod_oe) # obtain estimates and their covariances
plot(mod_oe) # plot the predicted and actual responses
}
\references{
Arun K. Tangirala (2015), \emph{Principles of System Identification:
Theory and Practice}, CRC Press, Boca Raton. Sections 14.4.1, 17.5.2,
21.6.3
}
|