compute the poles used in an Ackermann pole placement design based on a desired time constant of the closed-loop system - MapleSim Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : MapleSim Toolboxes : MapleSim Control Design Toolbox : ControlDesign Package : State Feedback : ControlDesign/ComputePoles

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

ComputePoles(sys, Tc, opts)

Parameters

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

Description

• 

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.

Examples

withControlDesign:

withDynamicSystems:

Use parameters option

• 

Consider a state-space system corresponding to a DC Motor:

sys_a:=MatrixdJ,KJ,0,KL,RL,0,1,0,0:

sys_b:=Matrix0,1J,1L,0,0,0:

sys_c:=Matrix0,1,0,1,0,0,0,0,1:

sys_d:=Matrix0,0,0,0,0,0:

sys1:=StateSpacesys_a,sys_b,sys_c,sys_d,'inputvariable'=Vt,Tt,'outputvariable'=i_outt,omega_outt,theta_outt,'statevariable'=ωt,it,θt:

PrintSystemsys1

State Spacecontinuous3 output(s); 2 input(s); 3 state(s)inputvariable=Vt,Ttoutputvariable=i_outt,omega_outt,theta_outtstatevariable=ωt,it,θta=dJKJ0KLRL0100b=01J1L000c=010100001d=000000

(1)
• 

The numeric values of the model parameters are as follows:

params1:=J=0.01,d=0.1,K=0.01,R=1,L=0.5:

• 

Extract a subsystem with the desired input and output.

subsys1:=Subsystemsys1,1,2:PrintSystemsubsys1

State Spacecontinuous1 output(s); 1 input(s); 3 state(s)inputvariable=Vtoutputvariable=omega_outtstatevariable=ωt,it,θta=dJKJ0KLRL0100b=01L0c=100d=0

(2)
• 

Check if the subsystem is controllable:

Controllablesubsys1

true

(3)
• 

Compute the poles for a desired time constant of 1 second:

τ:=1:

p1:=ComputePolessubsys1,τ,'parameters'=params1

p1:=1.,1.,1.

(4)
• 

Use the previous results to compute the state feedback gain:

Kc:=StateFeedback:-Ackermannsubsys1,p1,'parameters'=params1

Kc:=36.490000004.5000000000.5000000000

(5)

Use ReduceSystem

• 

Consider the following state-space system

Am:=Matrixδ,1,φ,σ,3,0,0,3,1,0,1,1,0,0,0,0:

Bm:=Matrix5,z,1,1,3,x,0,2,y,0,0,z:

Cm:=Matrix1,0,3,5,3,0,σ,7:

Dm:=Matrix1,0,0,0,1,1:

sys2:=StateSpaceAm,Bm,Cm,Dm:PrintSystemsys2

State Spacecontinuous2 output(s); 3 input(s); 4 state(s)inputvariable=u1t,u2t,u3toutputvariable=y1t,y2tstatevariable=x1t,x2t,x3t,x4ta=δ1φσ300310−110000b=5z−113x02y00zc=1035−30σ7d=100011

(6)
• 

Extract a subsystem with the desired input and output.

subsys2:=Subsystemsys2,1:PrintSystemsubsys2

State Spacecontinuous2 output(s); 1 input(s); 4 state(s)inputvariable=u1toutputvariable=y1t,y2tstatevariable=x1t,x2t,x3t,x4ta=δ1φσ300310−110000b=5100c=1035−30σ7d=10

(7)
• 

The numeric values of the system parameters are:

params2:=δ=2,φ=7,σ=3,z=4:

• 

Check if the system is controllable:

Controllablesubsys2

false

(8)

Observablesubsys2

true

(9)
• 

The subsystem is uncontrollable. Try removing structural uncontrollable states

rsys:=ReduceSystemsubsys2:PrintSystemrsys

State Spacecontinuous2 output(s); 1 input(s); 3 state(s)inputvariable=u1toutputvariable=y1t,y2tstatevariable=x1t,x2t,x3ta=δ1φ30010−1b=510c=103−30σd=10

(10)

Controllablersys

true

(11)

Observablersys

true

(12)
• 

Compute the poles for a desired time constant of 1 second:

τ:=1:

p2:=ComputePolesrsys,τ,'parameters'=params2

p2:=1.049223528+0.2188673555I,1.0492235280.2188673555I,0.043808373

(13)

Kc:=StateFeedback:-Ackermannrsys,p2,'parameters'=params2

Kc:=0.58984464030.19303222701.400163308

(14)

See Also

ControlDesign, ControlDesign[StateFeedback][Ackermann]


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam