10.4 Discrete Regulator by Emulation of Continuous Design
If the optimal regulator has been designed for a continuous system so that matrices and (and possibly ) are constructed to meet the design specifications, this knowledge can be applied to find a discrete equivalent of the optimal regulator. The procedure starts with computation of the discrete equivalent of the continuous cost function and then the discrete regulator is designed based on the discrete equivalent cost (see Franklin et al. (1990), Section 9.4.4). This algorithm is implemented in DiscreteLQRegulatorGains. Its syntax closely resembles that for LQRegulatorGains, and it accepts the same set of options. In addition, DiscreteLQRegulatorGains accepts the options related to the function ToDiscreteTime.
Finding the discrete equivalent of a continuous optimal regulator.
This is the model for the satellite system.
Following an example in Franklin et al. (1990), we assume that these are the matrices and that lead to satisfactory behavior of the closed-loop system.
This is the optimal regulator matrix for the continuous case.
This is matrix for the corresponding closed-loop system.
These are the poles of the system. We want the discrete emulation to have poles close to these.
First we decide on the sampling period. To find a suitable time scale, we compute the characteristic polynomial of the closed-loop system.
Comparing the preceding result with its representation via natural frequency and damping coefficient , , we find the characteristic time .
We choose a sampling period several times smaller than the characteristic time.
This is the discrete regulator that emulates the continuous one.
These are the poles of the corresponding discrete-time closed-loop system. The poles are in the -plane.
This maps the poles back to the -plane.
As we can see, the poles of the emulation system match the ones found by the continuous design within a few percentage points.
The function DiscreteLQRegulatorGains should not be confused with LQRegulatorGains, which, given a discrete-time StateSpace object as input, designs a discrete regulator. The difference between the two functions is that the former generates a discrete object from a continuous-type input, whereas the latter makes no type conversion; given continuous- or discrete-type input, it returns output of the same type. To reinforce the difference, DiscreteLQRegulatorGains generates an error message if a meaningless attempt is made to feed it a discrete-time StateSpace object.