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.
In[39]:=
Out[39]=
Following an example in Franklin et al. (1990), we assume that these are the matrices and that lead to satisfactory behavior of the closedloop system.
In[40]:=
This is the optimal regulator matrix for the continuous case.
In[41]:=
Out[41]=
This is matrix for the corresponding closedloop system.
In[42]:=
Out[42]=
These are the poles of the system. We want the discrete emulation to have poles close to these.
In[43]:=
Out[43]=
First we decide on the sampling period. To find a suitable time scale, we compute the characteristic polynomial of the closedloop system.
In[44]:=
Out[44]=
Comparing the preceding result with its representation via natural frequency and damping coefficient , , we find the characteristic time .
In[45]:=
Out[45]=
We choose a sampling period several times smaller than the characteristic time.
In[46]:=
Out[46]=
This is the discrete regulator that emulates the continuous one.
In[47]:=
Out[47]=
These are the poles of the corresponding discretetime closedloop system. The poles are in the plane.
In[48]:=
Out[48]=
This maps the poles back to the plane.
In[49]:=
Out[49]=
As we can see, the poles of the emulation system match the ones found by the continuous design within a few percentage points.
In[50]:=
Out[50]=
The function DiscreteLQRegulatorGains should not be confused with LQRegulatorGains, which, given a discretetime StateSpace object as input, designs a discrete regulator. The difference between the two functions is that the former generates a discrete object from a continuoustype input, whereas the latter makes no type conversion; given continuous or discretetype 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 discretetime StateSpace object.
