Query object for finding blocks with specified number of states
linqueryHasOrder creates a custom query object for finding
all the blocks in a linearization result that have a specified number of
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
with custom query objects. Alternatively, you can analyze linearization diagnostics using the
Linearization Advisor in the Model Linearizer. For more information on finding
specific blocks in linearization results, see Find Blocks in Linearization Results Matching Specific Criteria.
creates a query object for finding all the blocks in a
query = linqueryHasOrder(
LinearizationAdvisor object that have the specified number
of states. This syntax sets the
NumStates property of the
NumStates — Number of block states
Number of block states, specified as a nonnegative integer.
QueryType — Query type
Query type, specified as a character vector of the form
<N> States', where
<N> is equal to
Description — Query description
Query description, specified as a character vector of the form
'Blocks with <N> States, where
<N> is equal to
You can add your own description to the query object using this
After creating a
linqueryHasOrder query object, you can:
Find all the blocks in a
LinearizationAdvisorobject that have the specified number of states by using the
linqueryHasOrderquery directly with the
CompoundQueryobject by logically combining the
linqueryHasOrderquery with other query objects.
|Find blocks in linearization results that match specific criteria|
Find All Blocks with Two States
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 linearized blocks with two states.
qOrder = linqueryHasOrder(2); advOrder = find(advisor,qOrder)
advOrder = LinearizationAdvisor with properties: Model: 'scdspeed' OperatingPoint: [1x1 opcond.OperatingPoint] BlockDiagnostics: [1x1 linearize.advisor.BlockDiagnostic] QueryType: 'Has 2 States'
You can also create custom queries for finding specific blocks in linearization results using the Linearization Advisor in the Model Linearizer. For more information, see Find Blocks in Linearization Results Matching Specific Criteria.
Introduced in R2017b