summaryrefslogtreecommitdiff
path: root/R
diff options
context:
space:
mode:
authorSuraj Yerramilli2016-01-02 23:45:00 +0530
committerSuraj Yerramilli2016-01-02 23:45:00 +0530
commitd27528061368ba511f0a0bed9316d26554ca4fd9 (patch)
tree75d06e22c11d1a1e1b85f75e6eef6ef5901a5d1f /R
parent1bdf9d5bd4207d2e8f19f36ff0f3859305c242da (diff)
downloadSysID-R-code-d27528061368ba511f0a0bed9316d26554ca4fd9.tar.gz
SysID-R-code-d27528061368ba511f0a0bed9316d26554ca4fd9.tar.bz2
SysID-R-code-d27528061368ba511f0a0bed9316d26554ca4fd9.zip
adding nahead feature
Diffstat (limited to 'R')
-rw-r--r--R/estpoly.R20
1 files changed, 9 insertions, 11 deletions
diff --git a/R/estpoly.R b/R/estpoly.R
index ad6f6cf..2fa4351 100644
--- a/R/estpoly.R
+++ b/R/estpoly.R
@@ -63,21 +63,19 @@ print.summary.estpoly <- function(x,digits=4){
}
#' @export
-predict.estpoly <- function(x,newdata=NULL){
- if(is.null(newdata)){
+predict.estpoly <- function(x,newdata=NULL,nahead=1){
+ if(is.null(newdata)&&nahead=1){
return(fitted(x))
} else{
mod <- x$sys
- y <- outputData(newdata); u <- inputData(newdata)
- if(mod$type=="arx"){
- f1 <- signal::Ma(c(rep(0,mod$ioDelay),mod$B))
- f2 <- signal::Ma(c(0,-mod$A[-1]))
- ypred <- signal::filter(f1,u) + signal::filter(f2,y)
- } else if(mod$type=="armax"){
- f1 <- signal::Arma(b=c(rep(0,mod$ioDelay),mod$B),a=mod$C)
- f2 <- signal::Arma(b=mod$A,a=mod$C)
- ypred <- signal::filter(f1,u) + y - signal::filter(f2,y)
+ if(is.null(newdata)){
+ y <- fitted(mod)+resid(mod)
+ u <- mod$input
+ } else{
+ y <- outputData(newdata); u <- inputData(newdata)
}
+
+
return(ypred)
}
}