ControlDesign
ComputePoles
compute the poles used in an Ackermann pole placement design based on a desired time constant of the closed-loop system
Calling Sequence
Parameters
Options
Description
Examples
ComputePoles(sys, Tc, opts)
sys
-
System; system object
Tc
And(positive, numeric); desired closed-loop time constant (in seconds)
opts
(optional) equation(s) of the form option = value; specify options for the ComputePoles command
parameters = {list, set}(name = complexcons)
Specifies numeric values for the parameters of sys. These values override any parameters previously specified for sys. The numeric value on the right-hand side of each equation is substituted for the name on the left-hand side in the sys equations. The default is the value of sys given by DynamicSystems:-SystemOptions(parameters).
The ComputePoles command returns a list of poles needed to design a state feedback controller for sys by pole placement with the Ackermann command. The returned list will contain as many poles as the number of states of sys.
The computation of the poles is done based on the desired time constant, Tc (seconds), of the closed-loop system.
The system sys is a continuous or discrete-time linear system object created using the DynamicSystems package. The system object must have a single input and must be controllable and in state-space (SS) form.
If sys is uncontrollable, try the ReduceSystem command to remove any structurally uncontrollable states of sys.
Use parameters option
Consider a state-space system corresponding to a DC Motor:
The numeric values of the model parameters are as follows:
Extract a subsystem with the desired input and output.
Check if the subsystem is controllable:
Compute the poles for a desired time constant of 1 second:
Use the previous results to compute the state feedback gain:
Use ReduceSystem
Consider the following state-space system
The numeric values of the system parameters are
Create the state-space model, using the parameters option so that they do not have to be later passed to subsequent function calls as was done in the previous example.
Check if the system is controllable:
The subsystem is observable but uncontrollable. Try removing structural uncontrollable states
See Also
ControlDesign[StateFeedback][Ackermann]
Download Help Document