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
|
#' @export
idpoly <- function(A,B,C,D,F1,ioDelay=0){
out <- list(A= A,B=B,C=C,D=D,F1=F1,ioDelay = ioDelay)
class(out) <- "idpoly"
return(out)
}
#' @export
arx <- function(A,B,ioDelay=0){
out <- idpoly(A=A,B=B,C=1,D=1,F1=1,ioDelay = ioDelay)
class(out) <- c("arx","idpoly")
return(out)
}
#' @export
print.arx <- function(obj){
cat("Discrete-time ARX model: A(q^{-1})y[k] = B(q^{-1})u[k] + e[k] \n\n")
cat("A(q^{-1}) = ")
for(i in seq_along(obj$A)){
if(i-1==0){
cat(obj$A[i])
} else{
if(obj$A[i]>0) cat(" + ") else cat("- ")
if(!(abs(obj$A[i])==1)) cat(abs(obj$A[i]))
cat("q^{-",i-1,"}",sep="")
}
cat("\t")
}
cat("\n")
cat("B(q^{-1}) = ")
for(i in seq_along(obj$B)){
if(i+obj$ioDelay-1==0){
cat(obj$B[i])
} else{
if(!((obj$ioDelay!=0) && (i==1))){
if(obj$B[i]>0) cat(" + ") else cat("- ")
} else{
if(obj$B[i]<0) cat("-")
}
if(!(abs(obj$B[i])==1)) cat(abs(obj$B[i]))
cat("q^{-",i+obj$ioDelay-1,"}",sep="")
}
cat("\t")
}
}
#' @export
armax <- function(A,B,C,ioDelay=0){
out <- idpoly(A=A,B=B,C=C,D=1,F1=1,ioDelay = ioDelay)
class(out) <- c("armax","idpoly")
return(out)
}
|