Using the second approach, you search through the physical network states to find
conditions that can create a zero Jacobian. This approach can require some intuition
about the dynamics of the physical components in your model. As a starting point, search
for states that are zero and that interact directly with nonlinear physical elements, such
as the variable orifice in the preceding example.
To search the physical states, you can use the Linearization Advisor, which collects
diagnostic information during linearization. The Linearization Advisor does not provide
diagnostic information on a component-level basis for Simscape networks. Instead, it
groups diagnostic information for multiple Simscape components together.
1 Linearize your model with the Linearization Advisor enabled, and extract the
LinearizationAdvisor object.
opt = linearizeOptions('StoreAdvisor',true);
[linsys,linop,info] = linearize(mdl,io,op,opt);
advisor = info.Advisor;
(^2) Create a custom query object, and search the diagnostic information for Simscape
blocks.
qSS = linqueryIsBlockType('simscape');
advSS = find(advisor,qSS);
(^3) To find problematic state values, check the block operating point in each
BlockDiagnostic object.
advSS.BlockDiagnostics(i).OperatingPoint.States
Once you find a problematic state, you can change the value of the state in the model
operating point, or create an operating point using operpoint.
You can also search the Linearization Advisor in the Linear Analysis Tool. For more
information, see “Find Blocks in Linearization Results Matching Specific Criteria” on page
4-55.
See Also
Apps
Linear Analysis Tool
Functions
linearize | slLinearizer
See Also