В режиме GUI на панели отладЧик отсортированный список (debugger Sorted List) отображаются списки блоков для корневой системы моделей и каждой невиртуальной подсистемы. В каждом списке перечислены блоки, которые содержат подсистемы, отсортированные в соответствии с их вычислительными зависимостями, алфавитным порядком и другими правилами сортировки блоков. В режиме командной строки можно использовать slist для отображения отсортированных списков модели.
---- Sorted list for 'vdp' [11 nonvirtual block(s), directFeed=0]
Total number of tasks = 2
- Sorted list of task index [0], 10 nonvirtual block(s)
(0)0:1 'vdp/x1' (Integrator)
Input ports: [0]
Output ports: [0]
(0)0:2 'vdp/Out1' (Outport)
Input ports: [0]
Output ports: []
(0)0:3 'vdp/x2' (Integrator)
Input ports: [0]
Output ports: [0]
(0)0:4 'vdp/Out2' (Outport)
Input ports: [0]
Output ports: []
(0)0:5 'vdp/Scope' (Scope)
Input ports: [0]
Output ports: []
(0)0:6 'vdp/Square' (Math)
Input ports: [0]
Output ports: [0]
(0)0:7 'vdp/Sum1' (Sum)
Input ports: [0 1]
Output ports: [0]
(0)0:8 'vdp/Product' (Product)
Input ports: [0 1]
Output ports: [0]
(0)0:9 'vdp/Mu' (Gain)
Input ports: [0]
Output ports: [0]
(0)0:10 'vdp/Sum' (Sum)
Input ports: [0 1]
Output ports: [0]
- Sorted list of task index [1], 1 nonvirtual block(s)
(1)0:1 'vdp/Constant' (Constant)
Input ports: []
Output ports: [0]
----- Task Index Legend -----
Task Index [0]: Cont
Task Index [1]: Constant
-----------------------------На этих экранах отображается индекс блока для каждой команды. Их можно использовать для определения идентификаторов блоков блоков моделей. Некоторые команды отладчика принимают идентификаторы блоков в качестве аргументов.
Если блок принадлежит алгебраическому списку, slist отображает идентификатор алгебраического цикла в записи для блока в отсортированном списке. Идентификатор имеет форму
algId=s#n
где s - индекс подсистемы, содержащей алгебраический цикл и n - индекс алгебраического цикла в подсистеме. Например, следующая запись для блока интегратора указывает, что он участвует в первом алгебраическом цикле на корневом уровне модели.
0:1 'test/ss/I1' (Integrator, tid=0) [algId=0#1, discontinuity]
Когда отладчик запущен, можно использовать ashow в интерфейсе командной строки отладчика для выделения блоков и строк, составляющих алгебраический цикл. Дополнительные сведения см. в разделе Отображение алгебраических циклов.
Для определения блока на диаграмме моделей, соответствующего определенному индексу, введите bshow s:b в командной строке, где s:b является индексом блока. bshow открывает систему, содержащую блок (при необходимости), и выбирает блок в окне системы.
systems отображает список невиртуальных систем в отлаживаемой модели. Например, sldemo_clutch модель содержит следующие системы:
openExample('sldemo_clutch')
set_param(gcs, 'OptimizeBlockIOStorage','off')
sldebug sldemo_clutch
(sldebug @0): %----------------------------------------------------------------%
[TM = 0 ] simulate(sldemo_clutch)
(sldebug @0): >> systems
0 'sldemo_clutch'
1 'sldemo_clutch/Locked'
2 'sldemo_clutch/Unlocked'Примечание
systems не перечисляет подсистем, которые являются чисто графическими. То есть подсистемы, которые схема модели представляет как блоки подсистемы, но которые решаются как часть родительской системы. не перечислены. В моделях Simulink ® корневая система и запущенные или включенные подсистемы являются истинными системами. Все остальные подсистемы являются виртуальными (то есть графическими) и не отображаются в списке из systems команда.
slist отображает список невиртуальных блоков в модели. Классификатор группирует блоки по системе. Например, следующая последовательность команд создает список невиртуальных блоков в Van der Pol (vdp) пример модели.
sldebug vdp %----------------------------------------------------------------% [TM = 0 ] simulate(vdp) sldebug @0): >> slist ---- Sorted list for 'vdp' [9 nonvirtual blocks, directFeed=0] 0:0 'vdp/x1' (Integrator) 0:1 'vdp/Out1' (Outport) 0:2 'vdp/x2' (Integrator) 0:3 'vdp/Out2' (Outport) 0:4 'vdp/Scope' (Scope) 0:5 'vdp/Fcn' (Fcn) 0:6 'vdp/Product' (Product) 0:7 'vdp/Mu' (Gain) 0:8 'vdp/Sum' (Sum)
Примечание
slist не перечисляет блоки, которые являются чисто графическими. То есть блоки, которые указывают взаимосвязи между или группировки между вычислительными блоками.
zclist команда отображает список блоков, в которых во время моделирования могут возникать неклассифицированные пересечения нулей. Например, zclist отображает следующий список для модели образца сцепления:
(sldebug @0): >> zclist 0 0:4:0 F HitCross 'sldemo_clutch/Friction Mode Logic/Lockup Detection/Velocities Match' 1 0:4:1 F 2 0:10:0 F Abs 'sldemo_clutch/Friction Mode Logic/Lockup Detection/Required Friction for Lockup/Abs' 3 0:12:0 F RelationalOperator 'sldemo_clutch/Friction Mode Logic/Lockup Detection/Required Friction for Lockup/Relational Operator' 4 0:19:0 F Abs 'sldemo_clutch/Friction Mode Logic/Break Apart Detection/Abs' 5 0:20:0 F RelationalOperator 'sldemo_clutch/Friction Mode Logic/Break Apart Detection/Relational Operator' 6 2:3:0 F Signum 'sldemo_clutch/Unlocked/slip direction'
ashow команда выделяет указанный алгебраический цикл или алгебраический цикл, содержащий указанный блок. Чтобы выделить указанный алгебраический цикл, введите ashow s#n, где s - индекс системы (см. раздел Идентификация блоков в алгебраических циклах), содержащий цикл и n - индекс цикла в системе. Для отображения контура, содержащего выбранный в данный момент блок, введите ashow gcb. Для отображения цикла, содержащего указанный блок, введите ashow s:b, где s:b - индекс блока. Чтобы очистить подсветку алгебраического цикла от диаграммы модели, введите ashow clear.
В режиме GUI отладчик отображает настройки различных параметров отладки, таких как условные точки останова, на панели «Состояние». В режиме командной строки status отображает настройки отладчика. Например, следующая последовательность команд отображает начальные настройки отладки для vdp модель:
sim('vdp', 'StopTime', '10', 'debug', 'on')
%----------------------------------------------------------------%
[TM = 0 ] simulate(vdp)
(sldebug @0): >> status
%----------------------------------------------------------------%
Current simulation time : 0.0 (MajorTimeStep)
Solver needs reset : no
Solver derivatives cache needs reset : no
Zero crossing signals cache needs reset : no
Default command to execute on return/enter : ""
Break at zero crossing events : disabled
Break on solver error : disabled
Break on failed integration step : disabled
Time break point : disabled
Break on non-finite (NaN,Inf) values : disabled
Break on solver reset request : disabled
Display level for disp, trace, probe : 1 (i/o, states)
Solver trace level : 0
Algebraic loop tracing level : 0
Animation Mode : off
Execution Mode : Normal
Display level for etrace : 0 (disabled)
Break points : none installed
Display points : none installed
Trace points : none installed