В режиме GUI на панели «Сортированный список» отладчика отображаются списки блоков для корневой системы моделей и каждой невиртуальной подсистемы. В каждом списке перечислены блоки, которые содержат подсистемы, отсортированные в соответствии с их вычислительными зависимостями, алфавитным порядком и другими правилами сортировки блоков. В режиме командной строки можно использовать 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
- индекс алгебраического цикла в подсистеме. Для примера следующая запись для блока Integrator указывает, что он участвует в первом алгебраическом цикле на корневом уровне модели.
0:1 'test/ss/I1' (Integrator, tid=0) [algId=0#1, discontinuity]
Когда отладчик работает, можно использовать ashow
команда в интерфейсе командной строки отладчика для подсветки блоков и линий, образующих алгебраический цикл. Смотрите Отображение Алгебраических циклов для получения дополнительной информации.
Чтобы определить блок в схеме моделей, которая соответствует конкретному индексу, введите bshow s:b
в командной строке, где s:b
- индекс блока. The bshow
команда открывает систему, содержащую блок (при необходимости), и выбирает блок в окне систем.
The 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'
Примечание
The systems
команда не содержит список подсистем, которые являются чисто графическими. То есть подсистемы, которые диаграмма модели представляет как блоки Subsystem, но которые решаются как часть родительской системы. не указаны. В Simulink® модели, корневая система и срабатывающие или активированные подсистемы являются истинными системами. Все другие подсистемы являются виртуальными (то есть графическими) и не появляются в листинге от systems
команда.
The slist
команда отображает список невиртуальных блоков в модели. Листинг группирует блоки по системам. Например, следующая последовательность команд создает список невиртуальных блоков в ван дер Поль (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)
Примечание
The slist
команда не содержит список блоков, которые являются чисто графическими. То есть блоки, которые указывают отношения между или группировки среди вычислительных блоков.
The 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'
The 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