R: Optimal Controller Design and Simulation

simcon {timsac} | R Documentation

## Optimal Controller Design and Simulation

### Description

Produce optimal controller gain and simulate the controlled process.

### Usage

    simcon(span, len, r, arcoef, impulse, v, weight)

### Arguments

`span` | span of control performance evaluation.
`len` | length of experimental observation.
`r` | dimension of control input, less than or equal to d (dimension of a vector).
`arcoef` | matrices of autoregressive coefficients. `arcoef[i,j,k]` shows the value of i-th row, j-th column, k-th order.
`impulse` | impulse response matrices.
`v` | covariance matrix of innovation.
`weight` | weighting matrix of performance.

### Details

The basic state space model is obtained from the autoregressive moving average model of a vector process y(t);

y(t) - A(1)y(t-1) - ... - A(p)y(t-p) = u(t) - B(1)u(t-1) - ... - B(p-1)u(t-p+1),

where A(i) (i=1,...,p) are the autoregressive coefficients of the ARMA representation of y(t).

### Value

`gain` | controller gain.
`ave` | average value of i-th component of `y`.
`var` | variance.
`std` | standard deviation.
`bc` | sub matrices (pd,r) of impulse response matrices, where p is the order of the process, d is the dimension of the vector and r is the dimension of the control input.
`bd` | sub matrices (pd,d-r) of impulse response matrices.

### References

H.Akaike, E.Arahata and T.Ozaki (1975) Computer Science Monograph, No.6, Timsac74, A Time Series Analysis and Control Program Package (2). The Institute of Statistical Mathematics.

### Examples

      x <- matrix(rnorm(1000*2),1000,2)
      ma <- array(0,dim=c(2,2,2))
      ma[,,1] <- matrix(c( -1.0,  0.0,
                            0.0, -1.0), 2,2,byrow=TRUE)
      ma[,,2] <- matrix(c( -0.2,  0.0,
                           -0.1, -0.3), 2,2,byrow=TRUE)
      y <- mfilter(x,ma,"convolution")
      ar <- array(0,dim=c(2,2,3))
      ar[,,1] <- matrix(c( -1.0,  0.0,
                            0.0, -1.0), 2,2,byrow=TRUE)
      ar[,,2] <- matrix(c( -0.5, -0.2,
                           -0.2, -0.5), 2,2,byrow=TRUE)
      ar[,,3] <- matrix(c( -0.3, -0.05,
                           -0.1, -0.30), 2,2,byrow=TRUE)
      y <- mfilter(y,ar,"recursive")
      z <- markov(y)
      weight <-  matrix(c(0.0002,  0.0,
                          0.0,    2.9 ), 2,2,byrow=TRUE)
      simcon(span=50, len=700, r=1, z$arcoef, z$impulse, z$v, weight)

[Package timsac version 1.3.5 Index]