|
Раздел "Simulink" И.В.Черных. "Simulink: Инструмент
моделирования динамических систем"
\ \
13. Отладчик Simulink моделей
Отладчик Simulink является инструментом для поиска и диагностирования ошибок в моделях Simulink. Он дает возможность точно определить проблемы, выполняя моделирование постепенно с отображением значений входных и выходных сигналов любого из интересующих блоков модели. Simulink-отладчик имеет и графический, и интерфейс пользователя командной строки. Графический интерфейс позволяет наиболее удобно использовать основные возможности отладчика. Интерфейс командной строки дает способ обращаться ко всем возможностям отладчика. Пользователь, как правило, работает с графическим интерфейсом отладчика и обращается к интерфейсу командной строки по мере необходимости.
13.1. Графический интерфейс отладчика Simulink моделей
Запуск графического интерфейса отладчика возможен одним из двух способов:
1. С помощью команды меню Tools/Debugger окна Simulink модели.
2. С помощью кнопки панели инструментов окна Simulink модели.
После запуска отладчика на экране появится его окно (см. рис. 13.1).

Рис. 13.1 Окно отладчика Simulink модели.
[Скачать пример]
Окно отладчика содержит следующие элементы:
- Панель инструментов
- Список контрольных точек Break/Display points
- Панель задания точек прерывания по условию Break on conditions
- Главное окно отладчика
13.1.1. Панель инструментов
Общий вид панели инструментов показан на рис. 13.2.

Рис. 13.2 Панель инструментов отладчика
Эта панель имеет следующие кнопки:
- Next Block – Переход к следующему блоку. С помощью данной кнопки осуществляется режим отладки с остановкой моделирования после каждого выполненного блока.
- Next Time Step – Переход к следующему временному шагу. С помощью данной кнопки выполняется режим отладки с остановкой моделирования после каждого выполненного временного шага.
- Start/Continue – Начало/Продолжение отладки. Нажатие данной кнопки после запуска отладчика приводит к началу процесса моделирования и остановке его перед первым исполняемым блоком. Данная кнопка служит также для продолжения процесса отладки при установленных точках прерывания (остановки). Если точки прерывания установлены в модели, то нажатие данной кнопки позволяет продолжить моделирование и, затем, остановить его в заданной точке прерывания. Повторное нажатие кнопки возобновляет процесс моделирования и вызывает остановку на следующей точке прерывания. Если на текущем временном шаге все точки прерывания пройдены, то происходит переход на следующий временной шаг и остановка в первой точке прерывания на новом временном шаге.
- Stop –
Остановка отладки.
- Break before selected block – Установка точки прерывания перед выделенным блоком. Точка прерывания не может быть установлена для виртуального блока, т.е. такого блока, чья функция является исключительно графической. На рис. 13.1 таким блоком является мультиплексор Mux. Список невиртуальных блоков можно посмотреть на вкладке Execution Order окна отладчика или вывести его командой slist при работе с отладчиком в режиме командной строки. При попытке установить контрольную точку для виртуального блока отладчик выведет на экран предупреждающее сообщение.
Для установки точки прерывания достаточно выделить блок в окне модели и, затем, нажать данную кнопку. Название блока немедленно появится в окне Break/Display points отладчика, как это показано на рис. 13.3.

Рис. 13.3 Окно отладчика с установленной точкой прерывания для блока Transfer Fcn
- Display I/O of selected block with executed – Отображать значения входных и выходных сигналов. Данная кнопка позволяет установить режим просмотра входных и выходных сигналов какого-либо невиртуального блока. Режим может быть установлен как для блока, для которого установлена точка прерывания, так и для блока для которого контрольная точка не установлена. Значения входных и выходных сигналов отображаются на вкладке Outputs окна отладчика. Входные сигналы отображаются идентификаторами U1, U2, U3 и т.д., а выходные – Y1, Y2, Y3 и т.д. Дополнительно здесь же отображаются значения переменных состояния – CSTATE (см. рис. 13.3).
- Display current I/O of selected block – Показать значения входных и выходных сигналов для выделенного блока. Данной кнопкой удобно пользоваться, когда необходимо просмотреть значения сигналов какого-либо блока в момент остановки. Например, если для модели на рис. 13.1 установлена точка прерывания перед выполнением блока Transfer Fcn и остановка моделирования в этой точке произошла, то просмотреть значения сигналов сумматора можно выделив этот блок в окне модели и нажав кнопку
отладчика.
- Help –
Вызов справки по отладчику.
13.1.2. Список контрольных точек Break/Display points
Окно списка контрольных точек (рис. 13.4) содержит список блоков, для которых установлены контрольные точки (графа Blocks), а также свойства этих точек указанные с помощью флажков. Пользователь снимая или устанавливая флажки может изменять свойства контрольной точки, а именно: задавать/убирать точку прерывания на входе блока (графа ) или включать/выключать режим отображения значений сигналов блока (графа ).
Удалить контрольную точку можно выделив ее в списке, и нажав кнопку Remove selected point (убрать выделенную точку).

Рис. 13.4 Окно списка контрольных точек Break/Display points
13.1.3. Панель задания точек прерывания по условию Break on conditions
Панель (рис. 13.5) содержит список условий, при наступлении которых расчет должен быть остановлен.

Рис. 13.5 Список условий прерывания расчетов
Список включает в себя:
- Zero crossings –
Переход сигнала через нулевой уровень при его скачкообразном изменении. На рис. рис. 13.6 показан пример модели, в которой имеет место такая ситуация. На рисунке хорошо видно, что в момент времени t = 5 с происходит скачкообразное изменение сигнала с пересечением нулевого уровня.

Рис. 13.6 Пример модели с изменением полярности сигнала
[Скачать пример]
- Step size limited by state – Состояние ограничивающее шаг расчета. Опция заставляет отладчик останавливать моделирование, когда модель использует решатель с переменным шагом и решатель сталкивается с состоянием требующим ограничения размера шага расчета. Эта опция полезна при отладке моделей, требующих, как кажется, чрезмерно много расчетных шагов.
- Minor time steps – режим отладки с использованием внутренних (малых) шагов. При выполнении расчетов Simulink может уменьшать заданный шаг расчета для достижения нужной точности. Для того, чтобы увидеть и эти малые (внутренние) шаги необходимо установить опцию Minor time steps.
- NaN values – Не числовое значение. Расчет будет прерван, когда вычисленное значение бесконечно или лежит вне диапазона значений, которые могут быть представлены компьютером, выполняющим моделирование (слишком малые или слишком большие значения). Эта опция полезна для точного определения вычислительных погрешностей в модели Simulink.
- Break at time – Остановка в заданный момент времени. Параметр позволяет задать время до которого модель рассчитывается в обычном режиме. По достижении заданного времени расчет будет остановлен. Далее расчет необходимо возобновить с использованием возможностей отладчика. Данный режим удобен, если ошибка возникает не в начале интервала моделирования, а в какой-либо более поздний момент. В этом случае можно установить время остановки непосредственно перед появлением ошибки, а затем продолжить расчет в пошаговом режиме.
13.1.4. Главное окно отладчика
Главное окно содержит три вкладки:
- Outputs – Отображение результатов работы в режиме отладки. На данной вкладке (рис. 13.7) отображается текущее модельное время Tm (или Ti для внутренних шагов), индекс контролируемого блока в виде @s:b, где s – номер модели (подсистемы), b – номер блока, а также имя блока с указанием полного пути к блоку. На этой же вкладке выводятся значения входных (U) и выходных (Y) сигналов блока, если соответствующая опция установлена.

Рис. 13.7 Вкладка Outputs главного окна отладчика
- Execution Order – Порядок выполнения. На вкладке отображается список невиртуальных блоков в порядке их выполнения. Блоки, расположенные в начале списка выполняются раньше, чем блоки, расположенные в конце списка. На рис. 13.8 показан пример данной вкладки для модели, изображенной на рис. 13.1.

Рис. 13.8 Вкладка Execution Order главного окна отладчика
- Status – Статус отладчика. На данной вкладке (рис. 13.9) отображается информация о настройках и текущем состоянии отладчика: значение текущего временного шага, количество точек прерывания, информация об установке точек прерывания по условию и т.п.

Рис. 13.9 Вкладка Status главного окна отладчика
Таким образом, запустив отладчик в графическом режиме, пользователь может провести пошаговую (по блокам или по временным шагам) отладку модели, установив при необходимости нужные контрольные точки.
13.2 Интерфейс командной строки отладчика Simulink моделей
Интерфейс командной строки дает пользователю доступ ко всем возможностям отладчика.
Запуск отладчика в режиме командной строки возможен с помощью команды, задаваемой в рабочем окне MATLAB:
sldebug('My_model') , где My_model – имя отлаживаемой модели.
Для работы с отладчиком требуется вводить команды в главном окне MATLAB. Список команд приведен в Таблице 13.1.
Таблица 13.1
Команда |
Краткая
форма |
Повтор |
Назначение |
step |
s |
да |
Переход к следующему блоку |
next |
n |
да |
Переход к следующему временному шагу |
disp [s:b | gcb] |
d |
да |
Показ входных и выходных сигналов блока при остановке |
undisp <s:b | gcb> |
und |
да |
Удаление блока из списка отображаемых |
trace <s:b | gcb> |
tr |
да |
Показ входных и выходных сигналов блока во время выполнения |
untrace <s:b | gcb> |
unt |
да |
Удаление блока из списка трассировки |
probe [s:b | gcb] |
p |
нет |
Показ входных и выходных сигналов указанного блока |
break <s:b | gcb> |
b |
нет |
Вставка точки остановки при входе в блок |
bafter <s:b | gcb> |
ba |
нет |
Вставка точки остановки при выходе из блока |
bshow s:b |
bs |
нет |
Показ указанного с помощью индекса блока |
clear <s:b | gcb> |
cl |
нет |
Удаление точки останова |
zcbreak |
zcb |
нет |
Прерывание при обнаружении скачкообразного перехода сигналом нулевого уровня (непредусмотренное пересечение нуля) |
zclist |
zcl |
нет |
Список блоков дающих непредусмотренное пересечение нуля |
xbreak |
x |
нет |
Прерывание при переменном шаге расчета в состоянии требующем ограничения шага расчета |
tbreak [t] |
tb |
нет |
Установка/удаление остановки в указанный момент времени |
nanbreak |
na |
нет |
Установка/удаление остановки при обнаружении не числового (NaN, Inf) значения |
continue |
c |
да |
Продолжение моделирования |
run |
r |
нет |
Окончание режима отладки и продолжение расчета в обычном режиме |
stop |
sto |
нет |
Остановка моделирования |
quit |
q |
нет |
Прерывание моделирования |
status [all] |
stat |
нет |
Показ параметров отладчика |
states |
state |
нет |
Показ текущих значений переменных состояния |
systems |
sys |
нет |
Показ списка невиртуальных подсистем |
slist |
sli |
нет |
Список невиртуальных блоков |
minor |
m |
нет |
Режим отладки с использованием внутренних (малых) шагов |
ishow |
i |
нет |
Включение/выключение режима показа информации об интегрирующих блоках |
emode |
e |
нет |
Вывод информации о текущем режиме моделирования (обычный или ускоренный) |
probe level {all} | io |
|
нет |
Установить уровень подробности показа сигналов блоков (все либо только входные и выходные) |
atrace level |
at |
нет |
Установка уровня отображения информации при трассировке алгебраических контуров (0 –ничего, 4 - все) |
ashow <gcb | s:b> |
as |
нет |
Показ алгебраического контура, содержащего указанный блок |
ashow s#n |
as |
нет |
Показ алгебраического контура с номером n в подсистеме (модели) s |
ashow clear |
as |
нет |
Отменить показ алгебраического контура |
Часть команд приведенных в таблице требуют указания индекса блока (см. п. 13.1.4). При использовании таких команд вместо имени блока можно указывать команду gcb (получить путь текущего блока), предварительно выделив нужный блок в окне модели.
Пример командного окна MATLAB в процессе отладки модели показан на рис. 13.10.

Рис. 13.10. Командное окно MATLAB в процессе отладки модели
\ \ |
|