exponenta event banner

Отладка функции MATLAB в диаграмме

Проверка функций MATLAB на наличие синтаксических ошибок

Перед созданием приложения моделирования для модели необходимо исправить синтаксические ошибки. Выполните следующие действия для проверки функции MATLAB ®meanstats для синтаксических нарушений:

  1. Откройте функцию meanstats внутри диаграммы в call_stats_function_stateflow модель, которая была создана в окне «Program a MATLAB Function in a Chart».

    Редактор автоматически проверяет код функции на наличие ошибок и рекомендует исправления.

  2. На вкладке Приложения щелкните Кодер Simulink. На вкладке C Code нажмите кнопку Build.

    При отсутствии ошибок или предупреждений появляется окно Построитель (Builder), в котором сообщается об успехе. В противном случае перечисляются ошибки. Например, при изменении имени локальной функции avg несуществующей локальной функции aug в meanstatsошибки отображаются в средстве просмотра диагностики.

  3. Диагностическое сообщение содержит сведения о типе ошибки и ссылку на код, в котором произошла ошибка. Диагностическое сообщение также содержит ссылку на диагностический отчет, который предоставляет ссылки на функции MATLAB и информацию о типе времени компиляции для переменных и выражений в этих функциях. Если модель не создается, эта информация упрощает поиск источников сообщений об ошибках и помогает понять правила распространения типов. Дополнительные сведения об этом отчете см. в разделе Отчеты о функциях MATLAB (Simulink).

  4. В диагностическом сообщении щелкните ссылку после имени функции. meanstats для отображения нарушающей строки кода.

    Строка-нарушитель выделяется в редакторе.

  5. Исправьте ошибку, изменив aug назад в avg и перекомпилировать. Ошибки не найдены, компиляция успешно завершена.

Отладка во время выполнения для функций MATLAB в диаграммах

Моделирование используется для тестирования функций MATLAB на наличие ошибок времени выполнения, которые не могут быть обнаружены Stateflow ®. При моделировании модели функции MATLAB проходят диагностические тесты на отсутствие или неопределенность информации и возможные логические конфликты, как описано в разделе Проверка функций MATLAB на наличие синтаксических ошибок. Если ошибок не обнаружено, начинается моделирование модели.

Выполните следующие действия для моделирования и отладки meanstats функция во время выполнения условий:

  1. В редакторе функций щелкните на тире (-) символ в левом поле этой строки:

    len = length(vals);

    В поле этой линии появляется небольшой красный шарик, указывающий на то, что вы установили точку останова.

  2. Запустите моделирование для модели.

    При появлении ошибок или предупреждений внесите исправления перед повторной попыткой моделирования. В противном случае моделирование приостанавливается, когда выполнение достигает заданной точки останова. Небольшая зеленая стрелка в левом поле указывает на эту паузу.

  3. Для перехода к следующей строке выберите Шаг.

    Обратите внимание, что эта строка вызывает локальную функцию. avg. Если выбрать здесь Шаг, выполнение переходит за пределы выполнения локальной функции avg. Отслеживание выполнения строк в локальной функции avgвместо этого выберите «Шаг».

  4. Переход выполнения к первой строке вызываемой локальной функции avgвыберите «Шаг».

    Находясь в локальной функции, с помощью инструмента Шаг (Step) можно перейти по одной строке. Если локальная функция вызывает другую локальную функцию, используйте инструмент Шаг в (Step In), чтобы перейти к ней. Для продолжения прохождения оставшихся строк локальной функции и возврата к линии после вызова локальной функции выберите Step Out.

  5. Выберите Шаг для выполнения единственной строки в avg.

    Когда avg завершает его выполнение, вы видите зеленую стрелку, направленную вниз под его последней строкой.

  6. Выберите Step для возврата к функции meanstats.

    Выполнение переходит на линию после вызова на avg.

  7. Отображение значения переменной len, поместите указатель на текст len в редакторе функций не менее секунды.

    Значение len появляется рядом с указателем.

    Таким образом можно просмотреть значение для любых данных в функции MATLAB независимо от того, где они отображаются в функции. Например, можно отобразить значения вектора vals наведением указателя на него в качестве аргумента функции lengthили в качестве аргумента в заголовке функции.

    Значения для данных функции MATLAB также можно сообщить в окне команд MATLAB во время моделирования. Когда вы достигаете точки останова, debug>> появится командная строка в окне команд MATLAB (для просмотра может потребоваться нажать клавишу Enter). В этом запросе можно проверить данные, определенные для функции, путем ввода имени данных, как показано в следующем примере:

    debug>> len
    len =
         4
    debug>>
    

    В качестве другой альтернативы отладки можно отобразить результат выполнения строки функции, пропустив завершающую точку с запятой. В этом случае результаты выполнения отображаются в окне команд MATLAB во время моделирования.

  8. Чтобы оставить функцию до ее повторного вызова и достижения точки останова, выберите Продолжить.

    В любой точке функции можно перейти к выполнению остальных строк функции с помощью инструмента Продолжить (Continue). Если вы находитесь в конце функции, выбор Step делает то же самое.

  9. Щелкните точку останова, чтобы удалить ее, и выберите Выход из отладки, чтобы завершить моделирование.

    В модели вычисленные значения mean и stdev теперь отображаются в блоках отображения.

Проверка нарушений диапазона данных

Чтобы управлять проверкой диапазона данных, установите проверку диапазона моделирования на панели Диагностика: валидность данных (Diagnostics: Data Validity) диалогового окна Параметры конфигурации модели (Model Configuration Parameters).

Задать диапазон

Чтобы задать диапазон входных и выходных данных, выполните следующие действия.

  1. В обозревателе моделей выберите интересующий ввод или вывод функции MATLAB.

    Диалоговое окно Свойства данных (Data properties) откроется на панели Диалоговое окно (Dialog) Обозревателя моделей (Model Explorer).

  2. В диалоговом окне «Свойства данных» перейдите на вкладку «Общие» и введите предельный диапазон, как описано в разделе «Предельный диапазон».