diff options
author | Suraj Yerramilli | 2016-01-02 23:45:00 +0530 |
---|---|---|
committer | Suraj Yerramilli | 2016-01-02 23:45:00 +0530 |
commit | d27528061368ba511f0a0bed9316d26554ca4fd9 (patch) | |
tree | 75d06e22c11d1a1e1b85f75e6eef6ef5901a5d1f /R | |
parent | 1bdf9d5bd4207d2e8f19f36ff0f3859305c242da (diff) | |
download | SysID-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.R | 20 |
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) } } |