Прежде чем можно будет создать приложение симуляции для модели, необходимо зафиксировать синтаксические ошибки. Выполните эти шаги, чтобы проверять функцию MATLAB® meanstats
для нарушений синтаксиса:
Откройте функциональный meanstats
в графике в call_stats_function_stateflow
модель, что вы создали в Программе функцию MATLAB в Графике.
Редактор автоматически проверяет ваш функциональный код на наличие ошибок и рекомендует коррекции.
Во вкладке Apps нажмите Simulink Coder. Во вкладке C Code нажмите Build.
Если нет никаких ошибок или предупреждений, окно Builder появляется и сообщает об успехе. В противном случае это перечисляет ошибки. Например, если вы меняете имя локальной функции avg
к несуществующей локальной функции aug
в meanstats
, ошибки появляются в Диагностическом Средстве просмотра.
Диагностическое сообщение предоставляет подробную информацию типа ошибки и ссылки на код, где ошибка произошла. Диагностическое сообщение также содержит ссылку на диагностический отчет, который обеспечивает ссылки на ваши функции MATLAB и информацию о типе времени компиляции для переменных и выражений в этих функциях. Если вашей модели не удается создать, эта информация упрощает источники открытия понимания сообщений об ошибке и средств правил распространения типа. Для получения дополнительной информации об этом отчете, см. Отчеты функции MATLAB.
В диагностическом сообщении щелкните по ссылке после имени функции meanstats
отобразить незаконную строку кода.
Незаконная линия кажется подсвеченной в редакторе.
Откорректируйте ошибку путем изменения aug
назад к avg
и перекомпилируйте. Никакие ошибки не найдены, и компиляция завершается успешно.
Вы используете симуляцию, чтобы протестировать ваши функции MATLAB на ошибки времени выполнения, которые не обнаруживаемы Stateflow®. Когда вы симулируете свою модель, ваши функции MATLAB проходят диагностические тесты для того, чтобы избегать или неопределенной информации и возможных логических конфликтов как описано в функциях MATLAB Проверки для Синтаксических ошибок. Если никакие ошибки не найдены, симуляция вашей модели начинается.
Выполните эти шаги, чтобы симулировать и отладить meanstats
функция во время условий во время выполнения:
В функциональном редакторе кликните по тире (-
) символ в левом поле этой линии:
len = length(vals);
Маленький красный мяч появляется в поле этой линии, указывая, что вы установили точку останова.
Запустите симуляцию для модели.
Если вы получаете какие-либо ошибки или предупреждения, сделайте коррекции, прежде чем вы попытаетесь симулировать снова. В противном случае симуляция делает паузу, когда выполнение достигает точки останова, вы устанавливаете. Маленькая зеленая стрелка в левом поле указывает на эту паузу.
Чтобы усовершенствовать выполнение к следующей строке, выберите Step.
Заметьте, что эта линия вызывает локальную функцию avg
. Если вы выбираете Step здесь, выполнение совершенствует мимо выполнения локальной функции avg
. Отслеживать выполнение линий в локальной функции avg
, выберите Step In вместо этого.
Усовершенствовать выполнение к первой линии вызванной локальной функции avg
, выберите Step In.
Если вы находитесь в локальной функции, можно совершенствоваться через одну линию за один раз с инструментом Step. Если локальная функция вызывает другую локальную функцию, используйте инструмент Step In, чтобы продвинуться в него. Чтобы продолжиться через остающиеся линии локальной функции и вернуться к линии после вызова локальной функции, выберите Step Out.
Выберите Step, чтобы выполнить единственную линию в avg
.
Когда avg
закончил его выполнение, вы видите, что зеленая стрела указывает вниз под его последней линией.
Выберите Step, чтобы возвратиться к функциональному meanstats
.
Выполнение переходит к линии после вызова avg
.
Отобразить значение переменной len
, поместите указатель по тексту len
в функциональном редакторе, по крайней мере, в течение секунды.
Значение len
кажется смежным с указателем.
Можно отобразить значение для любых данных в функции MATLAB таким образом, неважно, где это появляется в функции. Например, можно отобразить значения для векторного vals
путем размещения указателя по нему в качестве аргумента к функциональному length
, или в качестве аргумента в функциональном заголовке.
Можно также сообщить о значениях для данных о функции MATLAB в командном окне MATLAB в процессе моделирования. Когда вы достигаете точки останова, debug>>
командная строка появляется в командном окне MATLAB (вам, вероятно, придется нажать Enter, чтобы видеть его). В этой подсказке можно смотреть данные, заданные для функции путем ввода имени данных, как показано в этом примере:
debug>> len len = 4 debug>>
Как другая альтернатива отладки, можно отобразить результат выполнения функциональной линии путем исключения завершающей работу точки с запятой. Если вы делаете, результаты выполнения появляются в командном окне MATLAB в процессе моделирования.
Чтобы оставить функцию, пока это не называется снова и точка останова достигнута, выберите Continue.
В любой точке в функции можно совершенствоваться посредством выполнения остающихся линий функции с инструментом Continue. Если вы в конце функции, выбор Step делает то же самое.
Кликните по точке останова, чтобы удалить его и выбрать Quit Debugging, чтобы завершить симуляцию.
В модели, вычисленных значениях mean
и stdev
теперь появитесь в блоках Отображения.
Чтобы управлять проверкой диапазона данных, установите Simulation range checking в панели Diagnostics: Data Validity диалогового окна Model Configuration Parameters.
Чтобы указать диапазон для входных и выходных данных, выполните эти шаги:
В Model Explorer выберите ввод или вывод функции MATLAB интереса.
Диалоговое окно Свойств данных открывается в панели Dialog Model Explorer.
В диалоговом окне Свойств данных кликните по вкладке General и введите предельную область значений, как описано в Предельной Области значений.