summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuraj Yerramilli2016-01-04 19:07:05 +0530
committerSuraj Yerramilli2016-01-04 19:07:05 +0530
commit95f6c4a8eed9b192a956a609d3bbb2418e198574 (patch)
tree77207fbf9aeffed994cd5392f37a6cbf54127027
parent34a35434bff9407126221085407b5301b30d9d38 (diff)
downloadSysID-R-code-95f6c4a8eed9b192a956a609d3bbb2418e198574.tar.gz
SysID-R-code-95f6c4a8eed9b192a956a609d3bbb2418e198574.tar.bz2
SysID-R-code-95f6c4a8eed9b192a956a609d3bbb2418e198574.zip
Corrected errors for one step ahead predictions
-rw-r--r--R/predict.R12
1 files changed, 6 insertions, 6 deletions
diff --git a/R/predict.R b/R/predict.R
index a896c3d..2cbcf20 100644
--- a/R/predict.R
+++ b/R/predict.R
@@ -1,25 +1,25 @@
#' @export
predict.idpoly <- function(x,data,nahead=1){
- y <- outputData(x); u<- inputData(x)
+ y <- outputData(data); u<- inputData(data)
G <- signal::Arma(b=c(rep(0,x$ioDelay),x$B),
a= as.numeric(polynom::polynomial(x$A)*
polynom::polynomial(x$F1)))
- det_sys <- signal::filter(G,u)
+ det_sys <- as.numeric(signal::filter(G,u))
if(x$type=="oe" || nahead==Inf){
ypred <- det_sys
} else{
Hden <- as.numeric(polynom::polynomial(x$A)*polynom::polynomial(x$D))
Hinv <- signal::Arma(b=Hden,a=x$C)
- filtered <- signal::filter(Hinv,y-det_sys)
+ filtered <- as.numeric(signal::filter(Hinv,as.numeric(y)-det_sys))
if(nahead!=1){
H <- as.numeric(polynom::polynomial(x$C)*polyinv(Hden,nahead))
Hl <- signal::Ma(H[1:nahead])
- filtered <- signal::filter(Hl,filtered)
+ filtered <- as.numeric(signal::filter(Hl,filtered))
}
- ypred <- y[k] - filtered
+ ypred <- as.numeric(y) - filtered
}
- return(ypred)
+ ts(ypred,start=start(data),deltat=deltat(data))
}
#' @export