ControlDesign - 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

Parameters

Options

Description

Examples

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

Options

• 

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).

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_aMatrixdJ,KJ,0,KL,RL,0,1,0,0:

sys_bMatrix0,1J,1L,0,0,0:

sys_cMatrix0,1,0,1,0,0,0,0,1:

sys_dMatrix0,0,0,0,0,0:

sys1StateSpacesys_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:

params1J=0.01,d=0.1,K=0.01,R=1,L=0.5:

• 

Extract a subsystem with the desired input and output.

subsys1Subsystemsys1,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:

p1ComputePolessubsys1,τ,'parameters'=params1

p1:=1.,1.,1.

(4)
• 

Use the previous results to compute the state feedback gain:

KcStateFeedback:-Ackermannsubsys1,p1,'parameters'=params1

Kc:=36.490000004.5000000000.5000000000

(5)

Use ReduceSystem

• 

Consider the following state-space system

AmMatrixδ,1,φ,σ,3,0,0,3,1,0,1,1,0,0,0,0:

BmMatrix5,z,1,1,3,x,0,2,y,0,0,z:

CmMatrix1,0,3,5,3,0,σ,7:

DmMatrix1,0,0,0,1,1:

sys2StateSpaceAm,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.

subsys2Subsystemsys2,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

rsysReduceSystemsubsys2: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:

p2ComputePolesrsys,τ,'parameters'=params2

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

(13)

KcStateFeedback:-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