Points of interest for linear analysis
AP = AnalysisPoint(name)
AP = AnalysisPoint(name,N)
AnalysisPoint
is a Control Design Block for
marking a location in a control system model as a point of interest
for linear analysis and controller tuning. You can combine an AnalysisPoint
block
with numeric LTI models, tunable LTI models, and other Control Design
Blocks to build tunable models of control systems. AnalysisPoint
locations
are available for analysis with commands such as getIOTransfer
or getLoopTransfer
.
Such locations are also available for specifying design goals for
control system tuning.
For example, consider the following control system.
Suppose that you are interested in the effects of disturbance
injected at u in this control system. Inserting
an AnalysisPoint
block at the location u associates
an implied input, implied output, and the option to open the loop
at that location, as in the following diagram.
Suppose that T
is a model of the control
system including the AnalysisPoint
block, AP_u
.
In this case, the command getIOTransfer(T,'AP_u','y')
returns
a model of the closed-loop transfer function from u to y.
Likewise, the command getLoopTransfer(T,'AP_u',-1)
returns
a model of the negative-feedback open-loop response, CG,
measured at the location u.
AnalysisPoint
blocks are also useful when
tuning a control system using tuning commands such as systune
.
You can use an AnalysisPoint
block to mark a
loop-opening location for open-loop tuning requirements such as TuningGoal.LoopShape
or TuningGoal.Margins
.
You can also use an AnalysisPoint
block to mark
the specified input or output for tuning requirements such as TuningGoal.Gain
.
For example, Req = TuningGoal.Margins('AP_u',5,40)
constrains
the gain and phase margins at the location u.
You can create AnalysisPoint
blocks explicitly
using the AnalysisPoint
command and connect them
with other block diagram components using model interconnection commands.
For example, the following code creates a model of the system illustrated
above. (See Construction and Examples below for more information.)
G = tf(1,[1 2]); C = tunablePID('C','pi'); AP_u = AnalysisPoint('u'); T = feedback(G*AP_u*C,1); % closed loop r->y
You can also create analysis points implicitly, using the connect
command.
The following syntax creates a dynamic system model with analysis
points, by interconnecting multiple models sys1,sys2,...,sysN
:
sys = connect(sys1,sys2,...,sysN,inputs,outputs,APs);
APs
lists the signal locations at which to
insert analysis points. The software automatically creates and inserts
an AnalysisPoint
block with channels corresponding
to these locations. See connect
for
more information.
creates
a single-channel analysis point. Insert AP
= AnalysisPoint(name
)AP
anywhere
in the generalized model of your control system to mark a point of
interest for linear analysis or controller tuning. name
specifies
the block name.
creates
a multi-channel analysis point with AP
= AnalysisPoint(name
,N
)N
channels.
Use this block to mark a vector-valued signal as a point of interest
or to bundle together several points of interest.
|
Analysis point name, specified as a character vector such as |
|
Number of channels for a multichannel analysis point, specified as a scalar integer. |
|
Names of channels in the By default, the analysis-point channels are named after the |
|
Loop-opening state, specified as a logical value or vector of logical values. This property tracks whether the loop is open or closed at the analysis point. For example, consider the feedback loop of the following illustration. You can model this feedback loop as follows. G = tf(1,[1 2]); C = tunablePID('C','pi'); X = AnalysisPoint('X'); T = feedback(G*C,X); You can get the transfer function from r to y with the feedback loop open at X as follows. Try = getIOTransfer(T,'r','y','X'); In the resulting generalized state-space ( For a multi-channel analysis point, then Default: 0 for all channels |
|
Sample time. For Default: |
|
Units for the time variable, the sample time
Changing this property has no effect on other properties, and
therefore changes the overall system behavior. Use Default: |
|
Input channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign input
names for multi-input models. For example, if sys.InputName = 'controls'; The input names automatically expand to You can use the shorthand notation Input channel names have several uses, including:
Default: |
|
Input channel units, specified as one of the following:
Use Default: |
|
Input channel groups. The sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; creates input groups named sys(:,'controls') Default: Struct with no fields |
|
Output channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign output
names for multi-output models. For example, if sys.OutputName = 'measurements'; The output names automatically expand to You can use the shorthand notation Output channel names have several uses, including:
Default: |
|
Output channel units, specified as one of the following:
Use Default: |
|
Output channel groups. The sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; creates output groups named sys('measurement',:) Default: Struct with no fields |
|
System name, specified as a character vector. For example, Default: |
|
Any text that you want to associate with the system, stored as a string or a cell array of
character vectors. The property stores whichever data type you
provide. For instance, if sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' Default: |
|
Any type of data you want to associate with system, specified as any MATLAB® data type. Default: |