ReduceSystem - MapleSim Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


ControlDesign

  

ReduceSystem

  

remove the structural unobservable and uncontrollable states for a given state-space system

 

Calling Sequence

Parameters

Options

Description

Examples

Calling Sequence

ReduceSystem(sys, opts)

Parameters

sys

-

System; system object

opts

-

(optional) equation(s) of the form option = value; specify options for the ReduceSystem command

Options

• 

reducedtype = minimal, controllable, or observable

  

Specifies how sys is reduced. If equal to minimal, both structural unobservable and uncontrollable states are removed and the resulting system is structurally minimal (both controllable and observable). This is the default. If equal to controllable, structural uncontrollable states are removed and the resulting system is controllable. If equal to observable, structural unobservable states are removed and the resulting system is observable.

• 

output = reducedsys or states, or list of these names

  

Specifies the returned values. If equal to reducedsys, then the reduced system object is returned. This is the default. If equal to states, then a list of the remaining states in the reduced system is returned. If a list of these names, then the output is a sequence/list (see returnlist) with each name replaced with the corresponding value.

• 

returnlist = truefalse

  

True means return a list; false means return an expression sequence. The default is false.

Description

• 

The ReduceSystem command detects and removes the structural unobservable and uncontrollable states of system sys.

• 

The system sys is a continuous or discrete time linear system object created using the DynamicSystems package. The system object must be in state-space (SS) form. The state-space system can be either single-input/single-output (SISO) or multiple-input/multiple-output (MIMO).

• 

The structural unobservable and uncontrollable states are removed by analyzing the zero entries of the system matrix (sys:-a), the control matrix (sys:-b) and the output matrix (sys:-c).

• 

The resulting state-space system will contain a subset of the states of sys, preserving the state structure and variable names. The input/output response or transfer function of the resulting system will be equivalent to the transfer function of sys.

• 

Structural uncontrollable and/or unobservable states may occur, for example, as a result of extracting a subsystem from a subset of its inputs and/or outputs (see DynamicSystems[Subsystem]).

• 

The ReduceSystem command returns a system object in state-space (SS) form of the resulting (reduced/structurally minimal) system. Depending on the value of the output option, either the reduced state-space system or the remaining states list (or both), is returned.

Examples

withControlDesign:

withDynamicSystems:

Here is a state-space system corresponding to a DC motor model:

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:

sysStateSpacesys_a,sys_b,sys_c,sys_d,inputvariable=Vt,Tt,outputvariable=i_outt,omega_outt,theta_outt,statevariable=ωt,it,θt,parameters=J=0.01,K=0.01,L=0.5,R=1,d=0.1:PrintSystemsys

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)

This system is observable and controllable:

Controllablesys

true

(2)

Observablesys

true

(3)

Extract a subsystem with the two first outputs only (ignore the angular position output):

sys_subSubsystemsys,all,1,2,all:

PrintSystemsys_sub

State Spacecontinuous2 output(s); 2 input(s); 3 state(s)inputvariable=Vt,Ttoutputvariable=i_outt,omega_outtstatevariable=ωt,it,θta=dJKJ0KLRL0100b=01J1L000c=010100d=0000

(4)

This subsystem still has 3 states, but one of them is not observable anymore:

Controllablesys_sub

true

(5)

Observablesys_sub

false

(6)

Reduce this subsystem to remove the structural unobservable state:

sys_minReduceSystemsys_sub:

PrintSystemsys_min

State Spacecontinuous2 output(s); 2 input(s); 2 state(s)inputvariable=Vt,Ttoutputvariable=i_outt,omega_outtstatevariable=ωt,ita=dJKJKLRLb=01J1L0c=0110d=0000

(7)

Optionally, the indices of the states of the reduced system can be obtained along with the reduced system:

sys_min,kept_statesReduceSystemsys_sub,:-output=reducedsys,states

sys_min,kept_statesState Spacecontinuous2 output(s); 2 input(s); 2 state(s)inputvariable=Vt,Ttoutputvariable=i_outt,omega_outtstatevariable=ωt,it,1,2

(8)

The resulting system has two states and is now controllable and observable:

Controllablesys_min

true

(9)

Observablesys_min

true

(10)

See Also

ControlDesign

ControlDesign[Kalman]

ControlDesign[LQR]

ControlDesign[LQRContinuous]

ControlDesign[LQRDiscrete]

ControlDesign[LQROutput]

ControlDesign[StateFeedback][Ackermann]

ControlDesign[StateFeedback][Observer]

ControlDesign[StateFeedback][PolePlacement]

ControlDesign[StateObserver][PolePlacement]

DynamicSystems[Subsystem]