Query object for finding blocks that are potentially problematic for linearization
linqueryAdvise creates a custom query object for finding the
blocks in a linearization result that are potentially problematic for
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.
find function with a
object is equivalent to using the
query object for finding all the blocks in a
query = linqueryAdvise
LinearizationAdvisor object that are potentially
problematic for linearization.
QueryType — Query type
'Linearization Advice' (default) | character vector
Query type, specified as
Description — Query description
'Blocks that are Potentially Problematic for
Linearization' (default) | character vector
Query description, specified as
'Blocks that are Potentially
Problematic for Linearization'. You can add your own
description to the query object using this property.
After creating a
linqueryAdvise query object, you can:
Find all the blocks in a
LinearizationAdvisorobject that are potentially problematic for linearization by using the
linqueryAdvisequery directly with the
CompoundQueryobject by logically combining the
linqueryAdvisequery with other query objects.
|Find blocks in linearization results that match specific criteria|
Find Blocks with Potentially Problematic Linearizations
Load the Simulink model.
mdl = 'scdpendulum'; load_system(mdl)
Linearize the model and obtain the
opts = linearizeOptions('StoreAdvisor',true); io = getlinio(mdl); [sys,op,info] = linearize(mdl,io,opts); advisor = info.Advisor;
Create query object, and find all the linearized blocks that have potentially problematic linearizations.
qAdvise = linqueryAdvise; advAdvise = find(advisor,qAdvise)
advAdvise = LinearizationAdvisor with properties: Model: 'scdpendulum' OperatingPoint: [1x1 opcond.OperatingPoint] BlockDiagnostics: [1x3 linearize.advisor.BlockDiagnostic] QueryType: 'Linearization Advice'
linqueryAdvise object is equivalent to creating the
following custom query:
qPath = linqueryIsOnPath; qZero = linqueryIsZero; qBlkRep = linqueryIsBlockSubstituted; qDiags = linqueryHasDiagnostics; q = qPath & (qZero | qDiags | qBlkRep); advisor_new = find(advisor,q);
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