Skip to content

Commit 96b7b73

Browse files
committed
documentation updates
1 parent 9ed4817 commit 96b7b73

File tree

3 files changed

+32
-7
lines changed

3 files changed

+32
-7
lines changed

control/statefbk.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,7 @@ def create_statefbk_iosystem(
610610
611611
where :math:`\mu` represents the scheduling variable.
612612
613-
Alternatively, a control of the form
613+
Alternatively, a controller of the form
614614
615615
.. math:: u = k_f r - K_p x - K_i \int(C x - r)
616616
@@ -652,7 +652,8 @@ def create_statefbk_iosystem(
652652
653653
feedfwd_pattern : str, optional
654654
If set to 'refgain', the reference gain design pattern is used to
655-
create the controller instead of the trajectory generation pattern.
655+
create the controller instead of the trajectory generation
656+
('trajgen') pattern.
656657
657658
integral_action : ndarray, optional
658659
If this keyword is specified, the controller can include integral

control/tests/statesp_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def test_constructor(self, sys322ABCD, dt, argfun):
127127
((1, 2), TypeError, "1, 4, or 5 arguments"),
128128
((np.ones((3, 2)), np.ones((3, 2)),
129129
np.ones((2, 2)), np.ones((2, 2))), ValueError,
130-
"A is the wrong shape; expected \(3, 3\)"),
130+
"A is the wrong shape; expected \(3, 3\)"),
131131
((np.ones((3, 3)), np.ones((2, 2)),
132132
np.ones((2, 3)), np.ones((2, 2))), ValueError,
133133
"B is the wrong shape; expected \(3, 2\)"),

doc/iosys.rst

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,29 @@ closed loop systems `clsys`, both as I/O systems. The input to the
470470
controller is the vector of desired states :math:`x_\text{d}`, desired
471471
inputs :math:`u_\text{d}`, and system states :math:`x`.
472472

473+
The above design pattern is referred to as the "trajectory generation"
474+
('trajgen') pattern, since it assumes that the input to the controller is a
475+
feasible trajectory :math:`(x_\text{d}, u_\text{d})`. Alternatively, a
476+
controller using the "reference gain" pattern can be created, which
477+
implements a state feedback controller of the form
478+
479+
.. math::
480+
481+
u = k_\text{f}\, r - K x,
482+
483+
where :math:`r` is the reference input and :math:`k_\text{f}` is the
484+
feedforward gain (normally chosen so that the steady state output
485+
:math:`y_\text{ss}` will be equal to :math:`r`).
486+
487+
A reference gain controller can be created with the command::
488+
489+
ctrl, clsys = ct.create_statefbk_iosystem(sys, K, kf, feedfwd_pattern='refgain')
490+
491+
This reference gain design pattern is described in more detail in Section
492+
7.2 of FBS2e (Stabilization by State Feedback) and the trajectory
493+
generation design pattern is described in Section 8.5 (State Space
494+
Controller Design).
495+
473496
If the full system state is not available, the output of a state
474497
estimator can be used to construct the controller using the command::
475498

@@ -507,10 +530,11 @@ must match the number of additional columns in the `K` matrix. If an
507530
estimator is specified, :math:`\hat x` will be used in place of
508531
:math:`x`.
509532

510-
Finally, gain scheduling on the desired state, desired input, or
511-
system state can be implemented by setting the gain to a 2-tuple
512-
consisting of a list of gains and a list of points at which the gains
513-
were computed, as well as a description of the scheduling variables::
533+
Finally, for the trajectory generation design pattern, gain scheduling on
534+
the desired state, desired input, or system state can be implemented by
535+
setting the gain to a 2-tuple consisting of a list of gains and a list of
536+
points at which the gains were computed, as well as a description of the
537+
scheduling variables::
514538

515539
ctrl, clsys = ct.create_statefbk_iosystem(
516540
sys, ([g1, ..., gN], [p1, ..., pN]), gainsched_indices=[s1, ..., sq])

0 commit comments

Comments
 (0)