Query object for finding blocks of the specified type
linqueryIsBlockType creates a custom query object for finding
all the blocks of a specified type in a linearization result.
When you linearize a Simulink® model, you can create a
LinearizationAdvisor object that contains diagnostic information about individual block linearizations. To find block linearizations that satisfy specific criteria, you can use the
find function with custom query objects. Alternatively, you can analyze linearization diagnostics using the Linearization Advisor in the Linear Analysis Tool. For more information on finding specific blocks in linearization results, see Find Blocks in Linearization Results Matching Specific Criteria.
Type— Block type
Block type, specified as a character vector or string. To specify a
block type, use the corresponding
of the block. To get the
blocktype parameter for the
currently selected block in the Simulink model, at the MATLAB® command line, type:
Also, to find:
MATLAB Function blocks, specify
Stateflow charts, specify
Simscape networks, specify
LinearizationAdvisor object does not
provide diagnostic information on a component-level basis for
Simscape™ networks. Instead, it groups diagnostic
information together for multiple Simscape components connected to a single Solver
QueryType— Query type
Query type, specified as a character vector of the form
'<type> Blocks', where
<type> is equal the block type specified in
Description— Query description
Query description, specified as a character vector of the form
'Blocks with <type> Block types', where
<type> is equal to
can add your own description to the query object using this property.
After creating a
linqueryIsBlockType query object, you can:
|Find blocks in linearization results that match specific criteria|
Load the Simulink model.
mdl = 'scdspeed'; load_system(mdl)
Linearize the model and obtain the
opts = linearizeOptions('StoreAdvisor',true); io(1) = linio('scdspeed/throttle (degrees)',1,'input'); io(2) = linio('scdspeed/rad//s to rpm',1,'output'); [sys,op,info] = linearize(mdl,io,opts); advisor = info.Advisor;
Create query object, and find all the integrator blocks.
qInteg = linqueryIsBlockType('Integrator'); advInteg = find(advisor,qInteg)
advInteg = LinearizationAdvisor with properties: Model: 'scdspeed' OperatingPoint: [1x1 opcond.OperatingPoint] BlockDiagnostics: [1x2 linearize.advisor.BlockDiagnostic] QueryType: 'Integrator Blocks'
You can also create custom queries for finding specific blocks in linearization results using the Linearization Advisor in the Linear Analysis Tool. For more information, see Find Blocks in Linearization Results Matching Specific Criteria.