В режиме 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 -----------------------------
Эти отображения включают индекс блока для каждой команды. Можно использовать их, чтобы определить блок IDs блоков моделей. Некоторые команды отладчика принимают блок IDs как аргументы.
Если блок принадлежит алгебраическому списку, 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
индекс блока. bshow
команда открывает систему, содержащую блок (при необходимости), и выбирает блок в системном окне.
systems
команда отображает список невиртуальных систем в модели, которую вы отлаживаете. Например, sldemo_clutch
модель содержит следующие системы:
open_system('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
команда не перечисляет подсистемы, которые являются чисто графическими. Таким образом, подсистемы, которые диаграмма модели представляет как блоки Subsystem, но которые решены как часть родительской системы. не перечислены. В моделях Simulink® корневая система и инициированные или включенные подсистемы являются истинными системами. Все другие подсистемы являются виртуальными (то есть, графическими), и не появляйтесь в листинге от systems
команда.
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)
Примечание
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