exponenta event banner

Проверки Simulink

Обзор проверки Simulink

Используйте проверки Simulink ® Model Advisor для настройки модели для моделирования.

См. также

Обзор перехода в упрощенный режим инициализации

Для повышения согласованности результатов моделирования был введен упрощенный режим инициализации в R2008b. Этот режим особенно важен для моделей, не задающих начальных условий для условно выполняемых выходных портов подсистемы. Дополнительные сведения см. в разделах Упрощенный режим инициализации и Классический режим инициализации.

Используйте проверки Model Advisor в разделе Перенос в упрощенный режим инициализации, чтобы помочь перенести модель в упрощенный режим инициализации.

См. также

Идентификация несвязанных линий, портов ввода и портов вывода

Код чека: mathworks.design.UnconnectedLinesPorts

Проверьте наличие неподключенных линий или портов.

Описание

Эта проверка содержит список несвязанных линий или портов. Они могут иметь трудности с распространением атрибутов сигнала, таких как тип данных, время выборки и размеры.

Примечание

Порты, подключенные к блокам заземления/оконечного устройства, пройдут этот тест.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Линии, входные порты или выходные порты не подключены.Подключите сигналы. Дважды щелкните список не подключенных элементов, чтобы найти ошибку.

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check™.

Совет

Используйте PortConnectivity для получения массива структур, описывающих входные или выходные порты блока.

См. также

Общие свойства блока для получения информации о PortConnectivity команда.

Обзор исключения Model Advisor (Simulink Check)

Проверка спецификации блока ввода корневой модели

Код чека: mathworks.design.RootInportSpec

Убедитесь, что блоки ввода корневой модели полностью определяют размеры, время выборки и тип данных.

Описание

Использование блоков ввода корневой модели, которые не полностью определяют размеры, время выборки или тип данных, может привести к нежелательным результатам моделирования. Программное обеспечение Simulink обеспечивает обратное распространение размеров, времени выборки и типов данных из нижестоящих блоков, если только они не назначены явно.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Блоки ввода корневого уровня имеют неопределенные атрибуты.Полностью определите атрибуты блоков ввода корневого уровня.

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

Совет

Следующие конфигурации проходят эту проверку:

  • Параметры конфигурации > Решатель > Временное ограничение периодической выборки установлено на Ensure sample time independent

  • Для моделей с функцией экспорта наследуемое время выборки не отмечается.

См. также

Проверка параметров оптимизации

Код чека: mathworks.design.OptimizationSettings

Проверка оптимизации, которая может привести к неоптимальному созданию кода и моделированию.

Описание

В этой проверке рассматривается состояние оптимизаций, которые могут повысить эффективность кода и время моделирования.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Указанные оптимизации отключены.

Установите следующие флажки оптимизации на панели Оптимизация (Optimization) в диалоговом окне Параметры конфигурации (Configuration Parameters).

Установите следующие флажки оптимизации на панели Оптимизация (Optimization) в диалоговом окне Параметры конфигурации (Configuration Parameters).

Установите следующие флажки оптимизации в диалоговом окне Параметры конфигурации (Configuration Parameters).

Установите следующие флажки оптимизации на панели Оптимизация (Optimization) в диалоговом окне Параметры конфигурации (Configuration Parameters).

Примечание

Model Advisor проверяет эти параметры только при наличии в модели диаграммы Stateflow ®.

Срок службы приложения (дней) устанавливается как бесконечный. Это может привести к дорогостоящему использованию 64-разрядных счетчиков. Выберите время остановки, если оно не предназначено.
Для указанной диагностики, которая может увеличить время, необходимое для моделирования модели, устанавливается значение warning или error.

Выбрать none для:

  • Несогласованность данных решателя

  • Превышены границы массива

  • Диагностика > Валидность данных > Проверка диапазона моделирования

Указанные параметры Embedded Coder ® выключены.

Если у вас есть лицензия Embedded Coder и вы используете целевой системный файл на основе ERT:

Совет

Если система содержит блоки модели, а ссылочная модель находится в режиме ускорителя, для моделирования модели требуется генерация и компиляция кода.

проверить

См. также

Проверка параметров диагностики, игнорируемых при ускоренном моделировании привязок модели

Код чека: mathworks.design.ModelRefSIMConfigCompliance

Проверка ссылочных моделей, для которых Simulink изменяет настройки параметров конфигурации во время ускоренного моделирования.

Описание

Для моделей, на которые имеются ссылки в режиме ускорения, Simulink игнорирует настройки следующих параметров конфигурации, для которых задано значение, отличное от None.

  • Превышены границы массива

  • Диагностика > Валидность данных > Вывод блока Inf или NaN

  • Диагностика > Валидность данных > Разделение по сингулярной матрице

  • Диагностика > Валидность данных > Перенос при переполнении

Кроме того, для моделей, на которые имеются ссылки в режиме ускорения, Simulink игнорирует следующие параметры конфигурации > Диагностика > Валидность данных > Параметры блока памяти хранилища данных, если для них задано значение, отличное от Disable all. Дополнительные сведения см. в разделе Диагностика хранилища данных.

  • Обнаружение чтения перед записью

  • Обнаружение записи после чтения

  • Обнаружение записи после записи

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Необходимо просмотреть результаты выполнения идентифицированной диагностики с настройками для создания предупреждений или ошибок.

Моделирование модели в обычном режиме и устранение диагностических предупреждений или ошибок.

Проверка информации о настройке параметров, игнорируемой для ссылочных моделей

Код чека: mathworks.design.ParamTunabilityIgnored

Проверяет, включена ли информация о настройке параметров в диалоговое окно Конфигурация параметров модели (Model Parameter Configuration).

Описание

Программа Simulink игнорирует информацию о настройке, указанную в диалоговом окне Конфигурация параметров модели (Model Parameter Configuration). Эта проверка определяет модели, содержащие информацию о настройке параметров, которую программное обеспечение Simulink будет игнорировать, если на модель ссылаются другие модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Модель содержит пропущенные сведения о настройке параметров.Щелкните ссылки для преобразования в эквивалентные объекты параметров Simulink в рабочей области MATLAB ®.

См. также

Проверка неявного разрешения сигнала

Код чека: mathworks.design.ImplicitSignalResolution

Определение моделей, которые пытаются разрешить именованные сигналы и состояния Simulink.Signal объекты.

Описание

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

Результаты и рекомендуемые действия

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

См. также

Разрешить сигнальные объекты для выходных данных.

Проверка оптимальной виртуальности шины

Код чека: mathworks.design.OptBusVirtuality

Определите виртуальные шины, которые могут быть сделаны не виртуальными. Создание этих шин, не являющихся виртуальными, повышает эффективность генерируемого кода.

Описание

Эта проверка идентифицирует блоки, включающие виртуальные шины, которые пересекают границу подсистемы. Изменение этих параметров на невиртуальные повышает эффективность генерируемого кода.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Блоки, определяющие виртуальную шину, пересекающую границу подсистемы.Измените выделенную шину на невиртуальную.

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

См. также

Проверка блоков интегратора дискретного времени с неопределенностью исходного состояния

Код чека: mathworks.design.DiscreteTimeIntegratorInitCondition

Идентифицируйте блоки интегратора дискретного времени с портами состояния и портами начального состояния, которые не питаются ни блоком начального состояния, ни блоком константы.

Описание

Блоки интегратора дискретного времени с портом состояния и портами начального состояния могут не быть соответствующим образом инициализированы, если только они не подаются из блока начального состояния или константы. Это, скорее всего, произойдет, когда блоки интегратора дискретного времени будут использоваться для моделирования динамических систем второго или более высокого порядка.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Блоки интегратора дискретного времени не инициализируются на этапе инициализации модели.Добавьте блок «Constant» или «Initial Condition» для подачи внешнего порта «Initial Condition».

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

См. также

Определение отключенных ссылок на библиотеки

Код чека: mathworks.design.DisabledLibLinks

Модель поиска отключенных ссылок на библиотеки.

Описание

Отключенные связи с библиотекой могут привести к неожиданным результатам моделирования. Разрешить отключенные связи перед сохранением модели.

Примечание

Эта проверка может перекрываться с моделью проверки для проблем обновления блоков.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Ссылки на библиотеки отключены.Выберите в контекстном меню пункт «Ссылка на библиотеку» > «Разрешить ссылку».

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

Совет

  • Для поиска ссылок на библиотеки используйте браузер модели.

  • Чтобы включить разорванную связь, щелкните правой кнопкой мыши блок в модели, чтобы отобразить контекстное меню. Выберите «Ссылка на библиотеку» > «Разрешить ссылку».

См. также

Восстановить отключенные связи

Обзор исключения Model Advisor (Simulink Check)

Проверка большого количества аргументов функции из виртуальной шины через границу привязки модели

Код чека: mathworks.design.CheckVirtualBusAcrossModelReferenceArgs

Проверяет сигналы виртуальной шины, которые пересекают границы привязки модели, и помечает случаи, когда использование виртуальных шин через границу привязки модели значительно увеличивает число аргументов функции.

Описание

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

Результаты и рекомендуемые действия

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

СостояниеРекомендуемое действие
Перечислены методы, генерирующие большое количество аргументов для текущей конфигурации модели, которую эта проверка может уменьшить путем изменения модели.Щелкните Обновить модель (Update Model).

Щелкните Обновить модель (Update Model), чтобы сбросить параметры блока Ввод (Inport) и Вывод (Outport) и вставить блоки преобразования сигнала (Signal Conversion blocks), если необходимо, чтобы уменьшить количество сгенерированных аргументов функции для модели.

См. также

Использование шин в интерфейсах модели

Определение связей параметризованной библиотеки

Код чека: mathworks.design.ParameterizedLibLinks

Поиск модели для параметризованных связей библиотеки.

Описание

Непреднамеренные параметризованные связи библиотеки могут привести к неожиданным настройкам параметров в модели. Это может привести к неправильной работе модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Перечисляются параметризованные связи.Убедитесь, что связи предназначены для параметризации.

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

Совет

  • Щелкните правой кнопкой мыши блок в модели, чтобы открыть контекстное меню. Выбирать Link Options и нажмите Go To Library Block для просмотра исходного блока из библиотеки.

  • Для параметризации связи с библиотекой выберите Look Under Mask, в контекстном меню и выберите параметр.

См. также

Восстановить отключенные связи

Обзор исключения Model Advisor (Simulink Check)

Определение неразрешенных ссылок на библиотеки

Код чека: mathworks.design.UnresolvedLibLinks

Найдите в модели неразрешенные связи с библиотекой, где указанный блок библиотеки не найден.

Описание

Проверьте наличие неразрешенных ссылок на библиотеки. Модели не моделируются при наличии неразрешенных библиотечных связей.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Связи с библиотекой не разрешены.Найдите отсутствующий блок библиотеки или альтернативу.

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

См. также

Исправить неразрешенные связи с библиотекой

Обзор исключения Model Advisor (Simulink Check)

Определение конфигурируемых блоков подсистемы для преобразования в блоки подсистемы исполнения

Код чека: mathworks.design.CSStoVSSConvert

Выполните поиск в модели для определения конфигурируемых блоков подсистемы на уровне модели или подсистемы.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Определяются конфигурируемые блоки подсистем.Преобразуйте эти блоки в блоки подсистем исполнения, чтобы избежать проблем совместимости. См. раздел Конфигурируемая подсистема.

Возможности и ограничения

Эту проверку можно выполнить на моделях библиотек.

См. также

Преобразовать в исполнительную подсистему

Определение блоков исполнительной модели и преобразование их в исполнительную подсистему, содержащую варианты блоков модели

Код чека: mathworks.design.ConvertMdlrefVarToVSS

Выполните поиск в модели для определения блоков модели исполнения.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Список блоков исполнительной модели, доступных в модели.

Преобразуйте эти блоки в блоки исполнительной подсистемы.

См. также

Преобразовать в исполнения

Идентификация блоков исполнения с использованием объектов исполнения с пустыми условиями

Код чека: mathworks.design.emptyVariantObjects

Выполните поиск в модели для определения блоков исполнения или библиотеки, имеющих пустые объекты исполнения.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Отображаются блоки исполнения в модели или библиотеке, имеющие пустые объекты исполнения.Используйте допустимые условия в объектах вариантов.

См. также

Введение в элементы управления исполнениями

Проверка использования функциональных соединений

Код чека: mathworks.design.CheckForProperFcnCallUsage

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

Описание

Проверьте параметры диагностики подключения, которые могут привести к выполнению недетерминированной модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Диагностика > Связность > Контекстно-зависимые входные данные имеют значение Disable All или Use local settings. Это может привести к выполнению недетерминированной модели.Задать диагностику > Связность > Контекстно-зависимые входы в Enable all as errors.

См. также

Подсистема вызова функций

Проверка блоков памяти хранилища данных на наличие проблем многозадачности, строгой типизации и затенения

Код чека: mathworks.design.DataStoreMemoryBlkIssue

Поиск проблем моделирования, связанных с блоками памяти хранилища данных.

Описание

Проверка целостности многозадачных данных, строгой типизации и затенения хранилищ данных более высокой области.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Флажок Дублировать имена хранилищ данных имеет значение none или warning. Попробуйте установить флажок Дублировать имена хранилищ данных в значение error в диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Диагностика (Diagnostics) > Валидность данных (Data Validity).

Имена переменных хранилища данных не имеют строгой типизации в одном из следующих типов:

  • Панель «Атрибуты сигнала» диалогового окна «Параметры блока» для блока памяти хранилища дат

  • Имя глобального хранилища данных

Укажите тип данных, отличный от автоматического, выполнив одно из следующих действий.

  • Выберите тип данных, отличный от Inherit: auto на панели Атрибуты сигнала (Signal Attributes) диалогового окна Параметры блока (Block Parameters) для блока памяти хранилища данных.

  • Если используется имя глобального хранилища данных, укажите его тип данных в Simulink.Signal объект.

Для проверки многозадачного хранилища данных установлено значение none или warning. Попробуйте установить проверку многозадачного хранилища данных на error в диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Диагностика (Diagnostics) > Валидность данных (Data Validity).

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

См. также

Проверьте, включена ли диагностика чтения/записи для блоков хранения данных

Код чека: mathworks.design.DiagnosticDataStoreBlk

Для блоков хранения данных в модели включите проверку порядка диагностики чтения и записи для обнаружения проблем во время выполнения.

Описание

Проверьте порядок диагностики для чтения и записи. Включив диагностику «чтение и запись», можно обнаружить потенциальные проблемы во время выполнения.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Проверка «Обнаружить чтение перед записью» отключена.Перед записью в диалоговом окне Параметр конфигурации (Configuration Parameter) Диагностика (Diagnostics) > панель Валидность данных (Data Validity) включите функцию Обнаружить чтение (Detect re
Проверка обнаружения записи после чтения отключена.Рекомендуется включить функцию обнаружения записи после прочтения в диалоговом окне Параметр конфигурации (Configuration Parameter) Диагностика (Diagnostics) > панель Валидность данных (Data Validity).
Проверка обнаружения записи после записи отключена.Рекомендуется включить функцию обнаружения записи после записи в диалоговом окне Параметр конфигурации (Configuration Parameter) Диагностика (Diagnostics) > панель Валидность данных (Data Validity).

Возможности и ограничения

Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

Совет

.

  • Диагностика во время выполнения может значительно замедлить моделирование. После проверки того, что Simulink не генерирует предупреждения или ошибки во время моделирования, установите для них значение Disable all.

См. также

Проверка времени блока хранилища данных на наличие ошибок моделирования

Код чека: mathworks.design.DataStoreBlkSampleTime

Выявление ошибок моделирования из-за времени выборки блоков хранилища данных.

Описание

Проверьте блоки хранения данных на непрерывное или фиксированное время выборки на второстепенном шаге.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Блоки хранения данных в модели имеют непрерывное или фиксированное время выборки на малом шаге.Попробуйте сделать перечисленные блоки дискретными или заменить их блоками «Память» или «Перейти к» и «Из».

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

См. также

Проверка потенциальных проблем заказа, связанных с доступом к хранилищу данных

Код чека: mathworks.design.OrderingDataStoreAccess

Поиск проблем чтения/записи, которые могут привести к неточностям в результатах.

Описание

Во время схемы обновления определите потенциальные проблемы, связанные с условиями чтения-перед-записью, записи-после-чтения и записи-после-записи для блоков хранения данных.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Чтение и запись (условие чтения-перед-записью или записи-после-чтения) происходят в неправильном порядке.Рассмотрите возможность реструктуризации модели таким образом, чтобы блок чтения хранилища данных выполнялся перед блоком записи хранилища данных.
Несколько операций записи выполняются в течение одного временного шага.Измените модель на запись данных только один раз за шаг времени или обратитесь к следующему разделу «Советы».

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

Совет

Эта проверка выполняет статический анализ, который может не идентифицировать каждый экземпляр неправильного использования. В частности, Function-Call Subsystems, Stateflow Charts, MATLAB для генерации кода, For Iterator Subsystems и For Each Subsystems могут вызывать как пропущенные обнаружения, так и ложные срабатывания. Для более полной проверки рекомендуется включить на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) диалогового окна Параметры конфигурации (Configuration Parameters) следующие функции диагностики: Обнаружение чтения перед записью, Обнаружение записи после чтения и Обнаружение записи после записи.

См. также

Проверка использования параметров структуры по сигналам шины

Код чека: mathworks.design.MismatchedBusParams

Идентификация блоков и Simulink.Signal объекты, инициализирующие сигналы шины с использованием несовпадающих структур.

Описание

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

Выполните эту проверку для создания эффективного и читаемого кода путем сопоставления типов формы и числовых данных структур исходных условий с типами сигналов шины. Сопоставление этих признаков позволяет избежать ненужных явных типоразмеров и заменяет назначения структуры «поле за полем», например, вызовами memcpy.

Частичные структуры

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

  • Создание удобочитаемого и эффективного кода.

  • Поддержка стиля моделирования, который явно инициализирует неуказанные сигналы. При использовании частичных структур Simulink неявно инициализирует неуказанные сигналы.

Дополнительные сведения о полных и частичных структурах см. в разделах Создание полных структур для инициализации и Создание частичных структур для инициализации.

Несовпадения типов данных

Эта проверка содержит список блоков и Simulink.Signal объекты, структуры исходных условий которых приводят к несоответствиям типов данных. Поля этих структур имеют числовые типы данных, которые не соответствуют типам данных соответствующих элементов сигнала шины.

Эта проверка не обнаруживает несоответствие для блоков, таких как блок единичной задержки, которые неявно преобразуют тип данных начального условия во входной сигнал.

При настройке структуры начального условия для отображения в создаваемом коде в качестве настраиваемой глобальной структуры избегайте ненужных явных типов путем сопоставления типов данных. См. раздел Создание настраиваемой структуры начальных условий для сигнала шины (Simulink Coder).

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Блок или сигнальный объект использует частичную структуру

Рассмотрите возможность использования функции Simulink.Bus.createMATLABStructure для создания полной структуры начального условия.

Типы данных полей структуры не соответствуют типам данных соответствующих сигнальных элементов

Рассмотрите возможность определения структуры как Simulink.Parameter объект и создание Simulink.Bus объект для использования в качестве типа данных сигнала шины и объекта параметра. Для управления числовыми типами данных используйте Simulink.BusElement объектов в объекте шины.

См. также

Блоки проверочной задержки, единичной задержки и удержания нулевого порядка для изменения скорости

Код чека: mathworks.design.ReplaceZOHDelayByRTB

Определите блоки задержки, единичной задержки или удержания нулевого порядка, которые используются для изменения скорости. Замените эти блоки фактическими блоками Rate Transition.

Описание

Если модель использует блоки задержки, единичной задержки или удержания нулевого порядка для обеспечения перехода скорости между входным и выходным сигналами, Simulink выполняет скрытую замену этих блоков встроенными блоками перехода скорости. В скомпилированной блок-схеме в левом верхнем углу блока замены появляются желтый символ и буквы «RT». Эта замена может повлиять на поведение модели следующим образом:

  • Эти блоки теряют свои алгоритмические конструктивные свойства, задерживая сигнал или реализуя удержание нулевого порядка. Вместо этого они приобретают поведение перехода скорости.

  • Этот метод моделирования работает только в определенных конфигурациях перехода (медленный-быстрый для блоков задержки и единичной-задержки и быстрый-медленный для блока удержания нулевого порядка). Установите время выборки блока равным более низкой скорости (источник для блоков задержки и единичной задержки и адресат для блока удержания нулевого порядка).

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

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

Альтернативой является замена блоков задержки, единичной задержки или удержания нулевого порядка блоками фактического перехода скорости.

  • Метод обеспечивает однозначные результаты в поведении блока. Блоки задержки, единичной задержки или удержания нулевого порядка действуют в соответствии с их алгоритмической конструкцией для задержки и удержания сигналов соответственно. Только блоки Rate Transition выполняют фактический переход скорости.

  • Использование фактического блока Rate Transition для rate transition предлагает настраиваемое решение для обработки передачи данных, если требуется указать детерминированное поведение или тип реализуемых буферов памяти.

Эта проверка используется для определения экземпляров модели, в которых блоки Задержка (Delay), Задержка единицы измерения (Unit Delay) или Удержание нулевого порядка (Zero-Order Hold) подвергаются скрытой замене для обеспечения перехода скорости между сигналами. Щелкните Обновить модель (Upgrade Model), чтобы заменить эти блоки фактическими блоками изменения скорости.

Результаты и рекомендуемые действия

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

Проверка идентифицирует эти экземпляры и позволяет обновить модель.

  1. Щелкните Обновить модель (Upgrade Model), чтобы заменить фактическими блоками изменения скорости.

  2. Сохраните изменения в модели.

Если вы не решили заменить блоки задержки, единичной задержки и/или удержания нулевого порядка блоками фактического перехода скорости, Simulink продолжает выполнять скрытую замену этих блоков встроенными блоками перехода скорости.

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

См. также

Проверка вызовов slDataTypeAndScale

Код чека: mathworks.design.CallslDataTypeAndScale

Определение вызовов внутренней функции slDataTypeAndScale.

Описание

В некоторых предыдущих версиях Simulink открытие модели, сохраненной в более ранней версии, запускает автоматическое обновление кода для обработки типов данных. При автоматическом обновлении выполняется вставка вызовов внутренней функции. slDataTypeAndScale. Несмотря на то, что Simulink продолжает поддерживать некоторые виды использования функции, если устранить вызовы, вы получите более чистый и быстрый код.

Simulink не поддерживает вызовы slDataTypeAndScale когда:

  • Первым аргументом является Simulink.AliasType объект.

  • Первым аргументом является Simulink.NumericType объект со свойством IsAlias значение равно true.

Выполнение проверки вызовов slDataTypeAndScale определяет вызовы slDataTypeAndScale которые необходимы или рекомендованы для замены. В большинстве случаев выполнение проверки и выполнение рекомендуемого действия приводит к удалению вызовов. Оставшиеся вызовы можно игнорировать. Запустите проверку, если вы не уверены, что нет вызовов slDataTypeAndScale.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Необходимые варианты заменыВручную или автоматически заменять вызовы slDataTypeAndScale. Перечисленные случаи требуют замены вызовов slDataTypeAndScale.
Рекомендуемые варианты заменыДля перечисленных случаев рекомендуется вручную или автоматически заменять вызовы slDataTypeAndScale.
Случаи ручной проверкиПроверьте каждый из перечисленных вариантов, чтобы определить необходимость его обновления вручную.

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

Совет

  • Не вставлять вызов вручную в slDataTypeAndScale в модель. Функция предназначена только для внутреннего использования.

  • Выполнение проверки вызовов slDataTypeAndScale вызывает функцию Simulink slRemoveDataTypeAndScale. Вызов этой функции непосредственно обеспечивает более широкий диапазон опций преобразования. Однако очень редко требуются дополнительные варианты преобразования.

См. также

  • Для получения дополнительной информации об обновлении типов и масштабов данных в окне команд MATLAB выполните следующее:

    • help slDataTypeAndScale

    • help slRemoveDataTypeAndScale

  • Обзор исключения Model Advisor (Simulink Check)

Проверка сигналов шины, обрабатываемых как векторы

Код чека: mathworks.design.BusTreatedAsVector

Определите сигналы шины, которые Simulink рассматривает как векторы.

Описание

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

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Сигналы шины неявно преобразуются в векторы.

Использовать Simulink.BlockDiagram.addBusToVector или вставьте блок «Bus to Vector».

Модель не настроена для идентификации сигналов шины, которые Simulink рассматривает как векторы.

В диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Диагностика (Diagnostics) > Связность (Connectivity) установите значение Сигнал шины (Bus signal), обрабатываемый как вектор error.

Результаты действий

При нажатии кнопки «Изменить» блок Bus to Vector вставляется на входные порты блоков, которые неявно преобразуют сигналы шины в векторы.

Совет

См. также

Проверка потенциально отложенных значений возврата подсистемы вызова функции

Код чека: mathworks.design.DelayedFcnCallSubsys

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

Описание

Чтобы сигналы находились в непрерывной памяти, программное обеспечение Simulink может автоматически вставлять неявный блок преобразования сигналов перед входными портами блока инициатора функционального вызова. Это может привести к одношаговой задержке при возврате значений сигналов от подсистем вызова функций. Задержки можно избежать, гарантируя, что сигнал исходит из сигнального блока в системе функционального вызова. Или, если задержка допустима, вставьте блок единичной задержки перед затронутыми портами ввода.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Перечисленные входные порты блока могут иметь неявный блок преобразования сигнала.

Решите, допустима ли одношаговая задержка при возврате значений сигнала для перечисленных сигналов.

  • Если задержка неприемлема, переработайте модель таким образом, чтобы входной сигнал исходил из вызывающей подсистемы.

  • Если задержка допустима, вставьте блок Unit Delay перед каждым из перечисленных входных портов.

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

См. также

Блок преобразования сигналов

Блок единичной задержки

Обзор исключения Model Advisor (Simulink Check)

Определение блочных выходных сигналов с непрерывным временем выборки и типом данных без плавающей точки

Код чека: mathworks.design.OutputSignalSampleTime

Поиск непрерывных отсчетов выходных сигналов без плавающей точки.

Описание

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

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Сигналы с непрерывным временем выборки имеют тип данных без плавающей точки.По идентифицированным сигналам измените время выборки на дискретное или на фиксированный шаг ([0 1]).

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

См. также

Что такое примерное время?.

Обзор исключения Model Advisor (Simulink Check)

Проверка использования блоков объединения

Код чека: mathworks.design.MergeBlkUsage

Определите блоки объединения с параметрами, которые могут привести к неожиданному поведению, и помогите перенести модель в упрощенный режим инициализации.

Примечание

Выполните эту проверку вместе с другими проверками в окне Обзор переноса в упрощенный режим инициализации.

Описание

Для повышения согласованности результатов моделирования был введен упрощенный режим инициализации в R2008b. Дополнительные сведения см. в разделах Упрощенный режим инициализации и Классический режим инициализации.

Эта проверка Model Advisor определяет настройки в блоках объединения в модели, которые могут вызвать проблемы при использовании классического режима инициализации. Он также рекомендует параметры для согласованного поведения блоков объединения. Результаты подчек содержат два типа операторов: Failed и Warning. Неуспешные инструкции определяют проблемы, которые необходимо устранить вручную перед переносом модели в упрощенный режим инициализации. Предупреждения определяют проблемы или изменения в поведении, которые могут произойти после миграции.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Проверьте параметры диагностики во время выполнения блока слияния.
  1. В диалоговом окне «Параметры конфигурации» установите для параметра «Обнаружение нескольких управляющих блоков, выполняемых одновременно» значение error.

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

Проверьте блоки модели, использующие режим моделирования PIL.Упрощенный режим инициализации не поддерживает моделирование процессора в цикле (PIL) для привязок модели.
Проверьте наличие блоков библиотеки с экземплярами, которые не могут быть перенесены.Проверьте результаты неудавшейся подконтроля для каждого блока, чтобы определить корректирующие действия.
Проверьте наличие блоков объединения с одним входом.

Замените блок Mux, используемый для формирования входного сигнала, и блок Merge на один блок Merge с несколькими входами.

Блоки слияния с одним входом не поддерживаются в упрощенном режиме инициализации.

Проверьте наличие корневых блоков объединения с неопределенным начальным выходным значением.

Если явное значение параметра Initial output корневого блока Merge не задано, Simulink использует исходное значение по умолчанию для типа выходных данных.

Корневой блок объединения - это блок объединения с выходным портом, который не подключается к другому блоку объединения. Сведения о исходном значении по умолчанию см. в разделе Инициализация значений сигналов.

Проверьте наличие блоков объединения с ненулевыми смещениями входных портов.

Снимите флажок «Разрешить неравную ширину порта» для блока «Объединение».

Примечание

Рекомендуется использовать блоки объединения только для сигнальных элементов, требующих истинного объединения. Другие элементы можно объединить с объединенными элементами с помощью блока «Конкатенат».

Проверьте наличие блоков объединения, которые имеют неподключенные входы или которые имеют входы от не условно выполненных подсистем.

Задайте для параметра «Количество входов» блока «Объединение» число входов блока «Объединение». Необходимо подключить каждый вход к сигналу.

Убедитесь, что каждый вход блока объединения управляется условно выполненной подсистемой. Блоки объединения не могут управляться непосредственно подсистемой итератора или блоком, не являющимся условно выполняемой подсистемой.

Проверьте наличие блоков объединения с входами, которые объединяются или переупорядочиваются вне условно выполняемых подсистем.

Убедитесь, что комбинации или переупорядочивание входных сигналов блока слияния происходит в условно выполняемой подсистеме. В таких конструкциях могут использоваться блоки Mux, Bus Creator или Selector.

Проверьте наличие блоков объединения с несогласованными временами ввода образцов.

Убедитесь, что входные сигналы для каждого блока слияния имеют одинаковое время выборки.

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

Проверьте наличие блоков объединения с несколькими входными портами, управляемыми одним источником.Убедитесь, что блок объединения не имеет нескольких входных сигналов, управляемых одной и той же условно выполняемой подсистемой или условно исполняемым блоком модели.
Проверьте наличие блоков объединения, которые используют сигнальные объекты для задания начального выходного значения.

Убедитесь, что следующие действия допустимы.

В упрощенном режиме инициализации сигнальные объекты не могут задавать параметр Initial output блока Merge. Хотя вы все еще можете инициализировать выходной сигнал для блока слияния с помощью объекта сигнала, результат инициализации может быть перезаписан на результат блока слияния.

Примечание

Simulink генерирует предупреждение о том, что начальное значение сигнального объекта было проигнорировано.

См. также

Проверка использования блоков исходящего порта

Код чека: mathworks.design.InitParamOutportMergeBlk

Определите блоки Outport и условные подсистемы с параметрами, которые могут привести к неожиданному поведению, и помогите перенести модель в упрощенный режим инициализации.

Примечание

Выполните эту проверку вместе с другими проверками в окне Обзор переноса в упрощенный режим инициализации.

Описание

Для повышения согласованности результатов моделирования был введен упрощенный режим инициализации в R2008b. Этот режим особенно важен для моделей, не задающих начальных условий для условно выполняемых выходных портов подсистемы. Дополнительные сведения см. в разделах Упрощенный режим инициализации и Классический режим инициализации.

Эта проверка Model Advisor идентифицирует блоки Outport и условные подсистемы в модели, которые могут вызвать проблемы при использовании упрощенного режима инициализации. Он также рекомендует параметры для согласованного поведения блоков Outport. Результаты подчек содержат два типа операторов: Failed и Warning. Неуспешные инструкции определяют проблемы, которые необходимо устранить вручную перед переносом модели в упрощенный режим инициализации. Предупреждающие инструкции определяют проблемы или изменения в поведении, которые могут произойти после миграции.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Проверьте наличие блоков внутри подсистемы итератора, для которых требуется истекшее время.

В иерархии Iterator Subsystem не используйте блоки, для которых требуется служба, поддерживающая время, прошедшее между двумя последовательными выполнениями.

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

Проверьте наличие блоков Outport с конфликтующими требованиями к буферу сигналов.

Блок Outport имеет триггер функционального вызова или сигнал зависимости данных функционального вызова, проходящий через него, вместе со стандартными сигналами данных. Некоторые из стандартных сигналов данных требуют явного буфера сигналов для инициализации выходного сигнала соответствующей подсистемы. Однако буферизация сигналов, связанных с вызовом функции, приводит к нарушению зависимости данных вызова функции.

Рассмотрите возможность изменения модели для передачи связанных с функциональными вызовами сигналов через отдельный блок Outport. Примеры нарушений зависимости данных вызова функции см. в примере модели sl_subsys_semantics.

Стандартный сигнал данных может потребовать дополнительной копии сигнала по одной из следующих причин:

  • Блок Outport управляется блоком с выводом, который не может быть перезаписан. В качестве примеров таких блоков можно привести блок Ground и блок Constant.

  • Блок Outport совместно использует тот же источник сигнала с другим блоком Outport в той же подсистеме или в одной, вложенной в текущую подсистему, но имеющей другое начальное выходное значение.

  • Блок Outport подключается к входу блока Merge

  • Один из входных сигналов блока Outport определяет Simulink.Signal с явным начальным значением.

Проверьте наличие блоков Outport, которые управляются сигналом шины и начальное выходное значение которых не является скалярным.Для блоков Outport, управляемых сигналами шины, классический режим инициализации не поддерживает структуры Initial Condition (IC), в то время как упрощенный режим инициализации не поддерживает. Поэтому при переносе модели из классического режима в упрощенный укажите скаляр для параметра Начальный вывод (Initial Output). После завершения миграции для определения различных начальных значений для различных элементов сигнала шины используйте структуры ИС. Для получения дополнительной информации см. Создание структур начальных условий.

Проверьте наличие блоков Outport, требующих явной копии сигнала.

Явная копия сигнала шины, управляющего блоком Outport, необходима для инициализации выходного сигнала соответствующей подсистемы. Вставьте блок преобразования сигнала перед блоком Outport, а затем установите для параметра Output блока преобразования сигнала значение Bus copy.

Стандартный сигнал данных может потребовать дополнительной копии сигнала по одной или нескольким из следующих причин:

  • Блок с выводом, который не может быть перезаписан, управляет блоком Outport. В качестве примеров таких блоков можно привести блок Ground и блок Constant.

  • Блок Outport совместно использует тот же источник сигнала с другим блоком Outport в той же подсистеме или в одной, вложенной в текущую подсистему, но имеющей другое начальное выходное значение.

  • Блок Outport подключается к входу блока Merge

  • Один из входных сигналов блока Outport определяет Simulink.Signal с явным начальным значением.

Проверьте наличие объединенных блоков Outport, которые наследуют значение Initial Output от блоков Outport, настроенных на сброс при отключении блоков.Если блоки Outport управляют блоком Merge, не устанавливайте для них значение Output при отключенных параметрах reset.
Проверьте наличие объединенных блоков Outport, управляемых вложенными условно выполненными подсистемами.

Определите, допустимо ли новое поведение блоков Outport. Если это неприемлемо, измените модель для учета нового поведения перед переходом в упрощенный режим инициализации.

Проверьте наличие объединенных блоков Outport, которые сбрасываются при отключении блоков.

Установите параметр Output when disabled блока Outport в значение held. Этот параметр необходим, поскольку блок Outport соединяется с блоком Merge.

Дополнительные сведения см. в разделе Исходящий порт.

Проверьте наличие блоков Outport, которые имеют неопределенное начальное выходное значение с недопустимыми начальными источниками условий.

Убедитесь, что следующие действия допустимы.

Если параметр Initial output не указан ([]), он наследует начальный вывод из исходных блоков. Если хотя бы один из источников блока Outport не является допустимым источником для наследования начального значения, блок использует исходное значение по умолчанию для этого типа данных.

Для упрощенного режима инициализации допустимыми источниками блоков Outport могут наследовать значение Initial output от: Constant, Initial Condition, Merge (с начальным выходом), Stateflow chart, function-call model reference или условно исполняемые блоки подсистем.

Проверьте блоки Outport с автоматическими переходами скорости.

Simulink вставил блок Rate Transition на вход блока Outport. Укажите параметр Initial output для каждого блока Outport.

В противном случае выполните следующую процедуру:

  1. В диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Решатель (Solver) снимите флажок Автоматически обрабатывать переход скорости для передачи данных.

  2. Запустите эту проверку Model Advisor еще раз.

Проверьте блоки Outport, которые имеют особые требования к хранению сигналов и неопределенное начальное выходное значение.

Убедитесь, что следующие действия допустимы.

Укажите параметр Initial output для блока Outport. Задайте для этого значения значение [] (пустая матрица), чтобы использовать исходное значение по умолчанию для типа выходных данных.

Проверьте параметр Initial output для блоков Outport, которые сбрасываются при их отключении.

Укажите параметр Initial output блока Outport.

Необходимо указать начальное выходное значение для блоков, которые настроены на сброс при отключении.

Проверьте параметр Initial output для блоков Outport, которые проходят через сигнал зависимости данных вызова функции.

Невозможно указать начальное выходное значение для блока Outport, поскольку через него проходят сигналы зависимости данных вызова функции. Чтобы задать начальное выходное значение:

  1. Установите для параметра Initial output блока Outport значение [].

  2. Укажите начальное значение в источнике сигнала зависимости данных, а не в блоке Outport.

Проверьте наличие блоков Outport, которые используют сигнальные объекты для задания начального выходного значения.

Убедитесь, что следующие действия допустимы.

В упрощенном режиме инициализации сигнальные объекты не могут задавать параметр Initial output блока Outport. Можно по-прежнему инициализировать входные или выходные сигналы для блока Outport с помощью сигнальных объектов, но результаты инициализации могут быть перезаписаны сигналами блока Outport.

Примечание

При работе с условно выполненным блоком Outport подсистемы Simulink генерирует предупреждение о том, что начальное значение сигнального объекта было проигнорировано.

Проверьте наличие блоков библиотеки с экземплярами с предупреждениями.

Перед переходом в упрощенный режим инициализации проверьте результаты проверки предупреждений для каждого блока.

Проверьте наличие объединенных блоков Outport, которые либо не подключены, либо подключены к блоку Ground.

Убедитесь, что следующие действия допустимы.

Блок Outport управляет блоком Merge, но его входы либо не подключены, либо подключены к блокам Ground. В классическом режиме инициализации несвязанные или заземленные выходы не обновляют сигнал слияния даже при выполнении родительских условно выполняемых подсистем. В упрощенном режиме инициализации, однако, эти выходы обновят сигнал слияния с нулевым значением, когда выполняются их родительские условно выполненные подсистемы.

Проверьте наличие блоков Outport, которые получают начальное выходное значение из входного сигнала при их переносе.

Убедитесь, что следующие действия допустимы.

Параметр Initial output блока Outport не указан. В результате упрощенный режим инициализации предполагает, что начальное выходное значение для блока Outport выводится из входного сигнала. Это предположение может привести к различному поведению инициализации.

Если это поведение неприемлемо, измените модель перед переходом в упрощенный режим инициализации.

Проверьте наличие внешних блоков Outport, имеющих явный начальный вывод.

Убедитесь, что следующие действия допустимы.

В классическом режиме инициализации параметры Initial output и Output при отключении блока Outport должны совпадать с параметрами исходных блоков Outport.

В упрощенном режиме инициализации Simulink устанавливает для параметра Initial output внешних блоков Outport значение [] (пустая матрица) и Output when disabled parameter to held.

Проверка блоков, считывающих входные данные из условно выполненных подсистем при инициализации.

Убедитесь, что следующие действия допустимы.

Некоторые блоки, такие как блок интегратора дискретного времени, считывают свои входные данные из условно выполненных подсистем во время инициализации в классическом режиме инициализации. Simulink выполняет этот шаг как метод оптимизации.

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

Проверьте наличие конфликта миграции для блоков Outport, использующих Dialog в качестве источника начального выходного значения.

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

Блок Outport сохранит свои текущие настройки и будет использовать указанное начальное выходное значение.

Проверьте наличие конфликта миграции для используемых блоков Outport Input signal в качестве источника начального выходного значения.

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

Блок Outport в настоящее время задает начальный выход [] (пустая матрица) и Вывод при отключении как held. Это означает, что каждый выходной порт не выполняет инициализацию, а неявно полагается на исходные блоки для инициализации своего входного сигнала.

После миграции параметру Source of initial output value будет присвоено значение Input signal для отражения этого поведения.

Проверьте наличие конфликта миграции для блоков Outport, имеющих семантику SimEvents ®.

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

Блоки Outport будут продолжать использовать начальное выходное значение, равное [] (пустая матрица) и параметр Output when disabled для held. Simulink будет поддерживать эти настройки, поскольку их родительские условно выполненные подсистемы подключены к блокам SimEvents.

Проверьте наличие конфликта миграции для самых внутренних блоков Outport с переменным размером входа и неопределенным начальным выходом.

Для этих блоков Outport размер сигнала изменяется только при повторном включении родительской подсистемы блока. Поэтому Simulink неявно предполагает, что параметр Initial output равен 0, даже если параметр не указан, []. Следовательно, если параметр не указан, при переносе модели в упрощенный режим инициализации помощник по модели явно установит значение 0.

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

Проверьте наличие конфликта миграции для блоков Outport, которые используют значение основания по умолчанию в качестве начального вывода.Параметр Initial output имеет значение [] (пустая матрица), и источник исходящего порта является недопустимым исходным источником условия. Таким образом, блок использует исходное значение по умолчанию в качестве начального выхода в упрощенном режиме инициализации. Другие экземпляры блоков Outport с той же ссылкой на библиотеку либо имеют ошибки, либо переносятся по-другому.
Проверьте наличие конфликта миграции для объединенных блоков Outport без явной спецификации начального вывода.Просмотрите результаты проверки блоков библиотеки с экземплярами, которые невозможно перенести, чтобы узнать о различных путях миграции для других экземпляров каждого блока Outport. Для остальных блоков Outport для параметра Initial output установлено значение [] (пустая матрица) и для параметра Output when disabled установлено значение held соответственно, в упрощенном режиме инициализации.

См. также

Проверка использования блоков интегратора дискретного времени

Код чека: mathworks.design.DiscreteBlock

Определите блоки интегратора дискретного времени с параметрами, которые могут привести к неожиданному поведению, и помогите перенести модель в упрощенный режим инициализации.

Примечание

Выполните эту проверку вместе с другими проверками в окне Обзор переноса в упрощенный режим инициализации.

Описание

Для повышения согласованности результатов моделирования был введен упрощенный режим инициализации в R2008b. Дополнительные сведения см. в разделах Упрощенный режим инициализации и Классический режим инициализации.

Эта проверка Model Advisor определяет настройки в блоках дискретного интегратора времени в модели, которые могут вызвать проблемы при использовании упрощенного режима инициализации. Он также рекомендует настройки для согласованного поведения блоков интегратора дискретного времени. Результаты подчек содержат два типа операторов: Failed и Warning. Неуспешные инструкции определяют проблемы, которые необходимо устранить вручную перед переносом модели в упрощенный режим инициализации. Предупреждения определяют проблемы или изменения в поведении, которые могут произойти после миграции.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Проверка блоков интегратора дискретного времени, для параметра Initial condition setting которого установлено значение Output.

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

Проверка блоков интегратора дискретного времени, для параметра Initial condition setting которого установлено значение State (most efficient) и находятся в подсистеме, использующей инициированное время выборки.

Использовать периодическое время выборки для блока или установить для параметра «Начальное условие» значение Output.

Проверьте наличие блоков внутри подсистемы итератора, для которых требуется истекшее время.

В иерархии Iterator Subsystem не используйте блоки, для которых требуется служба, поддерживающая время, прошедшее между двумя последовательными выполнениями.

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

См. также

Проверка параметров модели для перехода в упрощенный режим инициализации

Примечание

Не запускать эту проверку в изоляции. Выполните эту проверку вместе с другими проверками в окне Обзор переноса в упрощенный режим инициализации.

Код чека: mathworks.design.ModelLevelMessages

Определите параметры в блоках модели и параметры конфигурации модели, которые могут привести к неожиданному поведению, и помогите перенести модель в упрощенный режим инициализации.

Описание

Для повышения согласованности результатов моделирования был введен упрощенный режим инициализации в R2008b. Дополнительные сведения см. в разделах Упрощенный режим инициализации и Классический режим инициализации.

Эта проверка Model Advisor выявляет проблемы в параметрах конфигурации модели и блоках модели в модели, которые могут вызвать проблемы при переходе в упрощенный режим инициализации. Результаты подчек содержат два типа операторов: Failed и Warning. Неуспешные инструкции определяют проблемы, которые необходимо устранить вручную перед переносом модели в упрощенный режим инициализации. Предупреждения определяют проблемы или изменения в поведении, которые могут произойти после миграции.

После выполнения этой проверки согласованности Model Advisor при нажатии кнопки Исследовать результат сообщения относятся только к блокам, не являющимся ссылками на библиотеки.

Примечание

Поскольку отменить эти изменения трудно, выберите команду Файл (File) > Сохранить точку восстановления как (Save Restore Point As), чтобы создать резервную копию модели перед переходом в упрощенный режим инициализации.

Дополнительные сведения см. в разделе Параметры конфигурации модели: диагностика связности.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Убедитесь, что все блоки модели используют упрощенный режим инициализации.

Перенесите модель, на которую ссылается блок «Модель», в упрощенный режим инициализации, а затем перенесите модель верхнего уровня.

Проверка настройки упрощенного режима инициализации

Set Configuration Parameters > Underspecified initialization detection to Simplified.

Результаты действий

При нажатии кнопки Изменить параметры (Modify Settings) происходит следующее:

  • Параметр Модель (Model) имеет значение simplified

  • Если в блоке Outport для параметра Initial output установлен пустой символьный вектор, [], то SourceOfInitialOutputValue параметр имеет значение Входной сигнал.

  • Если Outport имеет пустой начальный выход и сигнал переменного размера, то начальный выход устанавливается в нуль.

См. также

Проверка S-функций в модели

Код чека: mathworks.design.SFuncAnalyzer

Проверка качества S-функций в моделях или подсистемах Simulink.

Описание

Анализатор S-функций выполняет проверку качества S-функций для выявления улучшений и потенциальных проблем в указанной модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Непрерывные состояния изменяются в mdlOutputs способ.Изменение непрерывных состояний на основном этапе времени и использование ssSetSolverNeedsReset функция в коде S-функции.
Непрерывные состояния изменяются в mdlUpdate способ.Изменение непрерывных состояний только на основном шаге времени и использование ssSetSolverNeedsReset функция в коде S-функции.
Дискретные состояния S-функций изменяются в mdlOutputs на незначительном шаге.Изменение дискретных состояний только на основном шаге, охраняемом ssIsMajorTimeStep функция.
Вектор режима S-функции изменяется в mdlOutputs способ на незначительном этапе.Изменение вектора режима только на основном шаге, охраняемом sslsMajorTimeStep функция.
S-функция использует статические или глобальные переменные для объявления внутренних состояний.Объявление состояний, явно использующих ssSetNumDiscStates функция или модель глобальных данных путем создания хранилищ данных.
S-функция имеет непрерывные состояния, но время выборки не объявляется непрерывным.Укажите время непрерывной выборки с помощью ssSetSampleTime функция.
S-функция имеет дискретные состояния, но mdlOutputs и mdlUpdate способы комбинируют.Определите mdlOutputs и mdlUpdate методы отдельно и изменение дискретных состояний только в mdlUpdate способ.
S-функция устанавливает SS_OPTION_CAN_BE_CALLED_CONDITIONALLY опция при наличии данных, подобных состоянию, или нескольких времен выборки.Удалите опции, если S-функция имеет данные, похожие на состояние, или несколько раз выборки.
MEX компиляторы не существуют на компьютере.Проверьте наличие или установку MEX компиляторы на компьютере.
S-функция обнаруживает ошибки при компиляции модели. Проверьте выходные данные программы Diagnostic Viewer и перекомпилируйте модель.

Проверка наличия прерывистых сигналов, управляющих производными портами

Код чека: mathworks.design.NonContSigDerivPort

Определение неслагаемых сигналов, управляющих производными портами.

Описание

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

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
В моделирующем производном порте имеются несгораемые сигналы.
  • Сделать указанные сигналы непрерывными.

  • Замените непрерывные блоки, принимающие эти сигналы, вариантами дискретного состояния блоков.

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

См. также

Диагностика во время выполнения для S-функций

Код чека: mathworks.design.DiagnosticSFcn

Проверьте границы массива и согласованность решателя, если блоки S-Function находятся в модели.

Описание

Проверяет соответствие блоков S-Function правилам согласованности решателя ODE, применяемым Simulink к встроенным блокам.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Для несогласованности данных решателя установлено значение none.В диалоговом окне «Параметры конфигурации» установите для параметра «Несогласованность данных решателя» значение warning или error.
Превышенные границы массива установлены в значение none.В диалоговом окне «Параметры конфигурации» установите превышенные границы массива в значение warning или error

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

См. также

Проверка модели на наличие иностранных символов

Код чека: mathworks.design.characterEncoding

Проверка символов, несовместимых с текущей кодировкой

Описание

Проверьте наличие в файле модели символов, которые не могут быть представлены в текущей кодировке. Это может привести к ошибкам при попытке сохранить модель.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Найдены несовместимые символыИзменить текущую кодировку на UTF-8 с помощью slCharacterEncoding.

Совет

В отчете помощника по обновлению отображается необходимая кодировка, или можно извлечь кодировку из модели с помощью команды:

get_param(modelname,'SavedCharacterEncoding')

Чтобы изменить кодировку, используйте slCharacterEncoding. Этот параметр применяется к текущему сеансу MATLAB. Если вы перезапустите MATLAB и хотите снова сохранить ту же модель, необходимо внести то же самое изменение в текущую кодировку.

Для получения дополнительной информации см.:

См. также

Выявление несоответствий единиц измерения в модели

Код чека: mathworks.design.UnitMismatches

Выявление несоответствий единиц измерения между портами в модели.

Описание

Проверьте наличие несоответствий единиц измерения между портами в модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Обнаружены несоответствия единиц измеренияИзмените одну из несопоставленных установок устройства в соответствии с настройками устройства для другого порта.

См. также

Определение автоматических преобразований единиц измерения в модели

Код чека: mathworks.design.AutoUnitConversions

Определение экземпляров автоматических преобразований единиц измерения в модели.

Описание

Определение экземпляров автоматических преобразований единиц измерения в модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Найдены автоматические преобразования единиц измеренияУбедитесь, что для модели ожидаются преобразованные единицы измерения.

См. также

Идентификация запрещенных систем единиц измерения в модели

Код чека: mathworks.design.DisallowedUnitSystems

Определение экземпляров запрещенных систем единиц измерения в модели.

Описание

Определение экземпляров запрещенных систем единиц измерения в модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Обнаружены запрещенные единичные системыЛибо выберите единицу измерения, соответствующую сконфигурированной системе единиц измерения, либо выберите другую систему единиц измерения. Дополнительные сведения см. в разделе Ограничение систем единиц измерения.

См. также

Определение неопределенных единиц измерения в модели

Код чека: mathworks.design.UndefinedUnits

Определение экземпляров спецификаций единиц измерения, не определенных в базе данных единиц измерения, в модели.

Описание

Определение экземпляров спецификаций единиц измерения, не определенных в базе данных единиц измерения, в модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Найдены неопределенные единицы измеренияЗамените устройство на устройство, поддерживаемое Simulink.

См. также

Определение неоднозначных единиц измерения в модели

Код чека: mathworks.design.AmbiguousUnits

Определите экземпляры неоднозначных спецификаций единиц измерения, например повторяющиеся имена единиц измерения в базе данных единиц измерения в модели.

Описание

Определите экземпляры неоднозначных спецификаций единиц измерения, например повторяющиеся имена единиц измерения в базе данных единиц измерения в модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Найдены неоднозначные единицыМожно игнорировать предупреждение или указать единицу измерения в соответствующей системе единиц измерения с использованием формата unit_system::unit_name.

См. также

Проверка модели на наличие проблем с обновлением блоков

Код чека: mathworks.design.Update

Проверьте наличие общих проблем обновления блоков.

Описание

Проверьте блоки в модели на наличие проблем совместимости в результате использования новой версии программного обеспечения Simulink.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Обнаружены блоки с проблемами совместимости.Нажмите кнопку «Изменить», чтобы устранить обнаруженные проблемы с блоками.
Проверьте статус обновления для S-функций API уровня 2.Рассмотрите возможность замены S-функций уровня 1 на S-функции уровня 2.

Результаты действий

При нажатии кнопки «Изменить» блоки из предыдущей версии программного обеспечения Simulink заменяются последними версиями.

См. также

Проверка модели на наличие проблем обновления блоков, требующих информации о времени компиляции

Код чека: mathworks.design.UpdateRequireCompile

Проверьте наличие общих проблем обновления блоков.

Описание

Проверьте блоки на наличие проблем совместимости в результате обновления до новой версии программного обеспечения Simulink. Некоторые обновления блоков требуют сбора информации или данных, когда модель находится в режиме компиляции. Для этой проверки модель устанавливается в режим компиляции, а затем проверяется на наличие обновлений.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Модель содержит блоки таблицы подстановки (Lookup Table) или таблицы подстановки (Lookup Table, 2-D), а в некоторых блоках для метода подстановки задаются значения «Использовать ближайший ввод» или «Использовать ввод выше».Замените блоки таблицы подстановки и таблицы подстановки (2-D) n-D блоками таблицы подстановки. Не применяйте параметры «Использовать ближайший ввод» или «Использовать ввод выше» для методов поиска; выберите другой вариант.
Модель содержит блоки таблицы подстановки или таблицы подстановки (2-D), и некоторые блоки сначала выполняют умножение во время интерполяции.Замените блоки таблицы подстановки и таблицы подстановки (2-D) n-D блоками таблицы подстановки. Однако, поскольку n-D блок таблицы поиска выполняет деление первым, эта замена может вызвать численное различие в результате.
Модель содержит блоки таблицы подстановки или таблицы подстановки (2-D). Некоторые из этих блоков задают Interpolation-Extrapolation в качестве метода Lookup, но их входные и выходные данные не имеют одного типа с плавающей запятой.Замените блоки таблицы подстановки и таблицы подстановки (2-D) n-D блоками таблицы подстановки. Затем измените метод экстраполяции или типы данных порта для замены блока.

Модель содержит блоки единичной задержки со значением времени выборки -1 которые наследуют непрерывное время выборки.

Замените блоки задержки блока на блоки памяти.

Проверка блоков памяти хранилища данных на многозадачность

Результаты действий

При нажатии кнопки «Изменить» блоки из предыдущей версии программного обеспечения Simulink заменяются последними версиями.

См. также

Убедитесь, что модель сохранена в формате SLX

Код чека: mathworks.design.UseSLXFile

Убедитесь, что модель сохранена в формате SLX.

Описание

Проверьте, сохранена ли модель в формате SLX.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Модель не сохранена в формате SLXРекомендуется обновить формат файла SLX для использования последних функций Simulink.

Возможности и ограничения

Эту проверку можно выполнить на моделях библиотек.

Совет

Проекты помогают обновить модели до формата SLX и сохранить журнал версий файлов в системе управления версиями. См. разделы Преобразование из MDL в SLX в проекте и Сохранение истории версий.

См. также

Проверьте, выключено ли сжатие SLX-файлов

Код чека: mathworks.design.CheckSLXFileCompressionLevel

Проверьте, отключено ли сжатие файлов SLX, чтобы уменьшить размер репозитория Git™.

Описание

Проверьте, отключено ли сжатие для модели SLX.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Модель, библиотека или подсистема сохраняются в формате SLX. Сжатие файлов включено.Рекомендуется отключить сжатие файлов для оптимизации хранилища в системе управления версиями.
Модель, библиотека или подсистема не сохраняются в формате SLX.Затем попробуйте обновить формат файла SLX, отключив сжатие файлов для оптимизации хранилища в системе управления версиями.

Возможности и ограничения

Эту проверку можно выполнить для моделей, библиотек и подсистем, сданных на хранение в систему управления версиями Git.

Совет

Проекты помогут обновить все модели и библиотеки в проекте. См. раздел Обновление всех моделей проектов, библиотек и файлов кода MATLAB.

См. также

Проверка сохранения модели или библиотеки в текущей версии

Код чека: mathworks.design.CheckSavedInCurrentVersion

Убедитесь, что модель, библиотека или подсистема сохранены в текущей версии Simulink.

Описание

Проверьте, сохранен ли файл модели в текущей версии Simulink.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Модель, библиотека или подсистема не сохранены в текущей версии Simulink.Рассмотрите возможность повторного сохранения файла модели в текущей версии Simulink.

Возможности и ограничения

Эту проверку можно выполнить для моделей, библиотек и подсистем.

Совет

Проекты позволяют сохранить все модели и библиотеки проекта в текущей версии Simulink. См. раздел Обновление всех моделей проектов, библиотек и файлов кода MATLAB.

См. также

Проверка модели для блоков SB2SL

Код чека: mathworks.simulink.SB2SL.Check

Убедитесь, что в модели нет устаревших блоков SB2SL.

Описание

Проверьте, содержит ли модель устаревшие блоки SB2SL.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Модель содержит устаревшие блоки SB2SLРекомендуется обновить модель до текущих блоков SB2SL.

Результаты действий

При нажатии кнопки «Обновить блоки SB2SL» блоки заменяются последними версиями.

См. также

Проверка свойств журнала модели

Код чека: mathworks.design.SLXModelProperties

Проверка измененных свойств журнала модели

Описание

Проверьте модели на наличие измененных значений свойств журнала моделей, которые можно использовать с подстановкой ключевых слов средства управления версиями. Эта подстановка ключевого слова несовместима с форматом файла SLX.

В формате файла MDL можно настроить некоторые свойства модели для использования подстановки ключевых слов средства управления версиями. При сохранении модели в формате SLX инструменты системы управления версиями не могут выполнять подстановку ключевых слов. Информация в файле модели из такой замены ключевого слова кэшируется при первом сохранении файла MDL как SLX и не обновляется повторно. На панели История свойств модели (Model Properties History) и в блоках Информация о модели (Model Info) модели отображается устаревшая информация.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Отредактированные свойства журнала моделиВручную или автоматически восстановить значения свойств по умолчанию. Нажмите кнопку для сброса или для проверки и изменения этих свойств вручную откройте диалоговое окно Свойства модели (Model Properties) и просмотрите панель История (History).

Возможности и ограничения

Эту проверку можно выполнить на моделях библиотек.

См. также

Определение блоков сведений о модели, которые могут взаимодействовать с внешними средствами управления версиями

Код чека: mathworks.design.ModelInfoKeywordSubstitution

Эта проверка используется для поиска блоков сведений о модели, которые могут быть изменены внешними средствами управления версиями посредством подстановки ключевых слов.

Описание

Эта проверка выполняет поиск векторов символов в блоке Сведения о модели, заключенном в знаки доллара, которые могут быть перезаписаны внешним инструментом управления версиями. Использование стороннего средства управления версиями может повредить файлы модели при их отправке. Подстановка по ключевым словам недоступна в формате файла модели SLX.

Для более гибкого интерфейса со средствами управления версиями используйте проект Simulink вместо блока «Сведения о модели». См. раздел Сведения об управлении версиями с проектами.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Блок Информация о модели (Model Info) содержит следующие поля: $keyword$

Просмотрите список полей в отчете, а затем удалите векторы символов ключевых слов из блока Информация о модели (Model Info).

См. также

Определение блоков информации о модели, использующих Configuration Manager

Код чека: mathworks.design.ModelInfoConfigurationManager

Эта проверка используется для поиска блоков информации о модели, использующих Configuration Manager.

Описание

Блоки сведений о модели с помощью Configuration Manager позволяют подстановку рискованных ключевых слов с помощью внешних средств управления версиями. Использование стороннего средства управления версиями может повредить файлы модели при их отправке. Подстановка по ключевым словам недоступна в формате файла модели SLX. Configuration Manager для блока Model Info будет удален в следующем выпуске.

Для более гибкого интерфейса со средствами управления версиями используйте проект Simulink вместо блока «Сведения о модели». См. раздел Сведения об управлении версиями с проектами.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Блок информации о модели использует Configuration Manager.

Щелкните Удалить диспетчер конфигурации (Remove the Configuration Manager).

См. также

Проверка модели для обновляемых блоков панели инструментов SerDes

Код чека: mathworks.design.serdesUpgrades

Список устаревших блоков, сохраненных в предыдущей версии SerDes Toolbox™.

Описание

Эта проверка выполняет поиск и список блоков SerDes Toolbox, которые могут быть обновлены для совместимости с текущей версией.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Найдены блоки, сохраненные в более ранних версиях SerDes Toolbox.Щелкните Обновить (Upgrade) Наборы (Serdes) Блоки панели инструментов (Toolbox Blocks), чтобы обновить блоки набора инструментов для обеспечения совместимости с текущей версией.

Результаты действий

При выборе пункта Обновить (Upgrade) Наборы (Serdes) Блоки панели инструментов (Toolbox Blocks) выполняется обновление устаревших блоков набора инструментов для обеспечения совместимости с текущей версией.

См. также

Проверка модели на наличие унаследованных блоков 3DoF или 6DoF

Код чека: mathworks.design.Aeroblks.CheckDOF

Списки блоков 3DoF и 6DoF устарели.

Описание

Эта проверка выполняет поиск блоков 3DoF и 6DoF из версий библиотеки до 3.13 (R2014a).

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Найдены блоки, настроенные со старыми версиями блоков 3DoF или 6DoF.Нажмите Replace 3DoF и 6DoF Блоки, чтобы заменить блоки последними версиями.

Результаты действий

Нажатие на Replace 3DoF и 6DoF Блоки заменяет блоки последними версиями.

См. также

Проверка модели для навигационных блоков аэрокосмического блока

Код чека: mathworks.design.Aeroblks.CheckNAV

Поиск блоков трехосного инерциального измерения, трехосного гироскопа и трехосного акселерометра до 3.21 (R2018a).

Описание

Эта проверка используется для поиска блоков трехосного инерционного измерения, трехосного гироскопа и трехосного акселерометра, которые были обновлены в R2018a.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Блок трехосных инерционных измерений, трехосный гироскоп и трехосный акселерометр до R2018a.

В R2018a или более поздних версиях, если ранее решение не выполнялось для стационарных условий, сохраните модель сейчас. Если ранее были решены условия устойчивого состояния для модели, снова решите эти условия устойчивого состояния, а затем сохраните модель.

См. также

Проверка и обновление маскированных блоков в библиотеке для использования повышенных параметров

Код чека: mathworks.design.CheckAndUpdateOldMaskedBuiltinBlocks

Проверьте библиотеки, которые необходимо обновить для использования повышенных параметров.

Описание

Эта проверка выполняет поиск в библиотеках, созданных перед R2011b, маскированных блоков, которые необходимо обновить для использования повышенных параметров. С R2011b, если параметр блока не повышен, его значение в связанном блоке блокируется значением в блоке библиотеки. Эта проверка исключает блоки типа Subsystem, Model reference, S-Function и M-S-Function.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Найдены библиотеки, которые необходимо обновитьЩелкните Обновить (Update). После обновления библиотек снова выполните проверку

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

См. также

Проверка и обновление команд отображения маскирующего изображения с помощью ненужных вызовов функции imread ()

Код чека: mathworks.design.CheckMaskDisplayImageFormat

Проверка определяет маски с помощью команд отображения изображения с ненужными вызовами imread() функция.

Описание

Эта проверка выполняет поиск команд отображения маски, которые делают ненужные вызовы imread() и обновляет их с помощью команд отображения маски, которые не вызывают imread() функция. Начиная с 2013а, производительность и оптимизация памяти доступны для изображений маски, заданных с использованием пути изображения вместо тройной матрицы RGB.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Команды отображения маски, выполняющие ненужные вызовы imread() функции найдены.Щелкните Обновить (Update). После обновления блоков снова выполните проверку.

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

См. также

Проверка и обновление маски для подтверждения зависимости команд рисования значка от рабочей области маски

Код чека: mathworks.design.CheckMaskRunInitFlag

Проверка определяет, зависят ли команды рисования значка маски от рабочего пространства маски.

Описание

Эта проверка определяет, зависят ли команды рисования значка маски от рабочего пространства маски, и обновляет RunInitForIconRedraw соответственно собственности. Если зависимость рабочей области маски отсутствует, значение RunInitForIconRedraw имеет значение off, в то время как, если существует зависимость рабочей области маски, значения устанавливаются в on.

Установка значений RunInitForIconRedraw кому off при отсутствии зависимости рабочей области маски оптимизирует производительность, не выполняя код инициализации маски перед рисованием значка блока.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Будут найдены команды рисования маски, которые зависят или не зависят от рабочего пространства маски.

Щелкните Обновить (Update). После обновления блоков снова выполните проверку.

Возможности и ограничения

Вы можете:

  • Выполните эту проверку для моделей библиотек.

  • Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.

См. также

Определение маскированных блоков, задающих вкладки в диалоговом окне маски с помощью параметра MaskTabNames

Код чека: mathworks.design.CheckAndUpdateOldMaskTabnames

Эта проверка определяет маскированные блоки, которые задают вкладки в диалоговом окне маски с помощью MaskTabNames параметр.

Описание

Эта проверка идентифицирует маскированные блоки, которые используют MaskTabNames для программного создания вкладок в диалоговом окне маски. С момента R2013b элементы управления диалоговыми окнами используются для группирования параметров на вкладке диалогового окна маски.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Маскированные блоки, использующие MaskTabNames параметры для программного создания вкладок в диалоговом окне маски.Щелкните Обновить доступно в разделе Действие. После обновления блоков снова выполните проверку.

Возможности и ограничения

Эту проверку можно выполнить на моделях библиотек.

См. также

Определение сомнительных операций для строгой конструкции с одной точностью

Код чека: mathworks.design.StowawayDoubles

Для конструкции строгой одинарной точности эта проверка определяет блоки, которые вводят операции двойной точности и неоптимальные настройки модели.

Описание

Для конструкции строгой одинарной точности эта проверка определяет блоки, которые вводят операции двойной точности и неоптимальные настройки модели.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Операции с плавающей запятой двойной точности, найденные в модели.

Убедитесь, что:

  • Типы входных и выходных данных блоков установлены правильно.

  • В диалоговом окне «Параметры конфигурации» для параметра «По умолчанию» для неопределенного типа данных установлено значение single.

Модель использует стандарт библиотеки, который не является оптимальным для строгих отдельных конструкций.

Убедитесь, что:

  • Все целевые математические библиотеки, используемые моделью, поддерживают реализации с одной точностью.

    Задать параметры конфигурации > Стандартная математическая библиотека как C99 (ISO).

Логические сигналы не реализуются как логические данные.

Убедитесь, что:

  • В диалоговом окне Параметры конфигурации (Configuration Parameters) выберите Реализовать логические сигналы как логические данные.

Возможности и ограничения

При наличии лицензии Simulink Check из этой проверки можно исключить блоки и диаграммы.

См. также

Проверка вызовов get_param для блокировки CompiledSampleTime

Код чека: mathworks.design.CallsGetParamCompiledSampleTime

Эта проверка используется для определения файлов MATLAB в рабочей среде, содержащих get_param вызов функции для возврата блока CompiledSampleTime параметр.

Описание

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

Например, рассмотрим переменную blkTs, которой было назначено скомпилированное время выборки многоскоростного блока.

blkTs = get_param(block,'CompiledSampleTime');

Вот несколько примеров, в которых исходный код работает, только если blkTs является парой двойников, а блок является односкоростным блоком:

  • Пример 1

    if isinf(blkTs(1))
        disp('found constant sample time')
    end
    

    Поскольку blkTs теперь является массивом ячеек, Simulink выдает следующее сообщение об ошибке:

    Undefined function 'isinf' for input arguments of type 'cell'
    Вместо этого используйте этот код, для которого blkTs может быть массивом ячеек или парой двойников.

    if isequal(blkTs, [inf,0])
        disp('found constant sample time')
    end
    
  • Пример 2

    if all(blkTs == [-1,-1])
        disp('found triggered sample time')
    end
    

    В приведенном выше примере, поскольку blkTs теперь является массивом ячеек, Simulink выдает следующую ошибку:

    Undefined function 'eq' for input arguments of type 'cell'

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

    if isequal(blkTs, [-1,-1])
        disp('found triggered sample time')
    end
  • Пример 3

    if (blkTs(1) == -1)
        disp('found a triggered context')
    end

    Опять же, поскольку blkTs теперь является массивом ячеек, Simulink выдает эту ошибку:

    Undefined function 'eq' for input arguments of type 'cell'

    Вместо этого используйте этот код.

    if ~iscell(blkTs)
        blkTs = {blkTs};
    end
    for idx = 1:length(blkTs)
        thisTs = blkTs{idx};
        if (thisTs(1) == -1)
            disp('found a triggered context')
        end
    end

    Вышеупомянутый код проверяет время выборки инициированного типа (инициированное или асинхронное). В случаях, когда блок имеет постоянное время выборки ([inf, 0]) в дополнение к запускаемому или асинхронному или когда блок имеет несколько асинхронных скоростей, это альтернативное свойство обнаруживает время выборки запускаемого типа.

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

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Нет вызовов файлов MATLAB get_param(block,CompiledSampleTime)Ничего
Некоторые файлы MATLAB вызывают get_param(block,CompiledSampleTime)Если файлы используют блок CompiledSampleTime параметр из многоскоростных блоков, измените эти файлы, чтобы принять параметр как массив ячеек пар двойных блоков

См. также

Проверьте, возвращены ли все выходные данные моделирования как один объект Simulink.CompingOutput

Код чека: mathworks.design.CheckSingleSimulationOutput

Эта проверка используется для определения того, возвращен ли результат моделирования как единый Simulink.SimulationOutput объект.

Описание

Эта проверка сканирует модель, чтобы убедиться, что параметр ReturnWorkspaceOutputs включен. Включение этого параметра, возвращает выходные данные моделирования в Simulink.SimulationOutput при интерактивном моделировании. Моделирующие выходы включают в себя сигнал, состояние, выход, регистрацию DSM, область и To Workspace блокирование протоколирования.

Когда ReturnWorkspaceOutputs включен, он обеспечивает:

  • Упрощение управления данными моделирования.

  • Автоматический доступ к SimulationMetadata.

  • Совместимость с несколькими параллельными моделированиями и пакетным моделированием.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Выходные данные моделирования не возвращаются как единичные Simulink.SimulationOutput объект

Возврат всех выходных данных моделирования как единого Simulink.SimulationOutput объект

См. также

Проверка модели на наличие проблем инициализации и настройки параметров

Код чека: mathworks.design.ParameterTuning

Эта проверка используется для определения проблем в модели, возникающих при инициализации параметров или их настройке.

Описание

Эта проверка проверяет модель на наличие проблем инициализации и настройки параметров, таких как:

  • Несоответствие скорости между блоками

  • Разделить на ноль выпуск в условно выполненных подсистемах

  • Недопустимое значение порта управления в блоках вектора индекса

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Модель имеет проблемы со ставками перехода.

Выберите Автоматически обрабатывать переход скорости для передачи данных на панели Решатель (Solver) параметров конфигурации модели.

Модель имеет деление на ноль выпуска в условно выполненной подсистеме с управляющим портом.

В командной строке выполните команду

set_param(control_port,'DisallowConstTsAndPrmTs', 'on')

Модель имеет недопустимое значение порта управления в условно выполняемой подсистеме.

В командной строке выполните команду

set_param(control_port,'DisallowConstTsAndPrmTs', 'on')

Результаты действий

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

См. также

Проверка виртуальной шины через границы привязки модели

Код чека: mathworks.design.CheckVirtualBusAcrossModelReference

Проверьте сигналы виртуальной шины, пересекающие границы привязки модели.

Описание

Эта проверка идентифицирует блоки корневого уровня Inport и Outport в ссылочных моделях и блоках Model с выходами виртуальной шины, которые требуют обновления для изменения на сигналы невиртуальной шины.

Если проверка выявляет проблемы, щелкните Обновить модель (Update Model), чтобы преобразовать блоки ввода и вывода корневого уровня, настроенные для виртуальных шин, для использования невиртуальных шин в следующих ситуациях:

  • Для блоков ввода корневого уровня - включите параметр Output as nonvirtual bus и вставьте блок преобразования сигнала после блока Inport. Блок преобразования сигнала сконфигурирован для вывода виртуальной шины.

  • Для блоков Outport корневого уровня - включение вывода в качестве невиртуальной шины в параметре родительской модели.

  • Для блоков модели - для портов, блоки Outport которых были обновлены для устранения проблем, вставьте блок преобразования сигнала после соответствующих портов блока модели. Блок преобразования сигнала сконфигурирован для вывода виртуальной шины.

Рекомендуемые действия и результаты

Чтобы устранить неполадки, щелкните Обновить модель (Upgrade Model).

Примечание

Выполните проверку иерархии модели Анализ (Analyze) и продолжите проверку последовательности обновления на модели верхнего уровня, а затем - вниз по иерархии ссылок на модель.

Если щелкнуть Обновить модель (Upgrade Model), соответствующие блоки корневого уровня Inport и Outport, настроенные для виртуальных шин, преобразуются для использования невиртуальных шин в моделях, в которых:

  • Использовать управление прототипом функции

  • Выполните генерацию кода C++ с помощью I/O arguments step method вариант.

    Кроме того, можно изменить настройку функции генерации кода C++ на Default step method:

    1. На панели «Параметры конфигурации» > «Создание кода» > «Интерфейс» щелкните «Настроить интерфейс класса C++».

    2. В диалоговом окне задайте для параметра Спецификация функции значение Default step method.

  • использовать шины, имеющие сигналы переменного размера;

  • Использовать связанный класс хранения, отличный от автоматического, для блочных сигналов Outport

    • Преобразование для класса хранения, отличного от автоматического, выполняется только при наличии лицензии целевого поколения, необходимой модели. Например, для цели ERT требуется лицензия Embedded Coder.

  • Использовать модели Export-function, в которых блок Outport управляется невиртуальной шиной

  • Иметь блоки модели, которые ссылаются на модели, содержащие исправленные блоки исходящего порта - при нажатии кнопки Обновить модель обновляются блоки модели, ссылающиеся на модели, для которых блоки исходящего порта были зафиксированы иерархией модели, и продолжается проверка последовательности обновления.

См. также

Проверка модели для пользовательских библиотечных блоков, зависящих от состояния кадра сигнала

Код чека: mathworks.design.DSPFrameUpgrade

Эта проверка определяет пользовательские библиотечные блоки в модели, которые зависят от состояния кадра сигнала.

Описание

Эта проверка выполняет поиск пользовательских блоков библиотеки в модели, которые зависят от состояния кадра сигнала. Проверка анализирует блоки, рекомендует исправления и дает причины для исправлений. Исправления должны выполняться вручную.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

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

Следуйте рекомендациям помощника по обновлению.

Возможности и ограничения

Эту проверку можно выполнить только для пользовательских блоков библиотеки в модели.

Исправления должны выполняться вручную.

Эта проверка появляется только в том случае, если установлен системный Toolbox™ DSP.

См. также

Обработка на основе кадров (панель инструментов системы DSP)

Проверка модели на наличие проблем обновления S-функций

Код чека: 'mathworks.design.CheckForSFcnUpgradeIssues'

Эта проверка модели используется для выявления проблем совместимости обновления S-функции. Эти проблемы могут включать использование 32-разрядных API, компиляцию с несовместимыми опциями или использование устаревших отдельных сложных API. Некоторые общие проблемы и информация, связанная с исправлениями, описаны в разделе результатов и рекомендаций ниже.

Описание

При обновлении S-функций для использования функций последней версии эта проверка сканирует модель для предупреждения о проблемах несовместимости обновления S-функций. Если результат этой проверки дает предупреждение или ошибку, исправьте свои S-функции C MEX в соответствии с описанием.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Пользовательские S-функции не поддерживаются.

Перекомпилируйте S-функцию с доступными совместимыми опциями. Дополнительные сведения см. в разделе Настраиваемый файл MEX, не поддерживаемый в текущей версии.

S-функция не скомпилирована с последним API (mex -R2018a).

Перекомпилировать с использованием последнего флага (mex -R2018a). Дополнительные сведения см. в разделе Компиляция файла MEX с устаревшим параметром.

S-функция использует 32-битные функции.

Измените код в соответствии с инструкциями в 32-разрядной функции MEX File Calls A.

S-функция использует устаревшие отдельные сложные API (mxGetPi, mxSetPi, mxGetImagData, mxSetImagData).

Используйте чередующиеся сложные API и перекомпилируйте код с последним флагом (mex -R2018a). Дополнительные сведения см. в разделе Обновление файлов MEX для использования промежуточного комплексного API.

S-функция использует устаревший API небезопасных данных типа (mxGetData, mxSetData).Используйте API-интерфейсы для защиты данных и перекомпилируйте код. Для получения дополнительной информации см. раздел Вызовы файлов MEX нетипизированной функции доступа к данным.
S-функция компилируется с будущей версией и не поддерживается в текущей версии.См. раздел Файл MEX Built In MATLAB Release Not Supported In Current Release для перекомпиляции файлов.

См. также

Обновить синтаксис объекта System

Код чека: 'mathworks.design.CheckSystemObjectUpdate'

Эта проверка используется для идентификации и обновления любых пользовательских системных object™ MATLAB в модели, имеющих устаревший синтаксис.

Описание

Эта проверка сканирует модель, чтобы определить устаревший синтаксис системного объекта. Если проверка пройдена, весь синтаксис обновлен. Если проверка завершается неуспешно, можно обновить синтаксис.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Синтаксис системного объекта обновлен.

Ничего.

Синтаксис системного объекта требует обновления.

Отчет создается для каждого уникального системного объекта, связанного с системным блоком MATLAB. Используйте команду «Обновить» для обновления синтаксиса.

См. также

Проверка регистрации сигналов быстрого ускорения

Код чека: mathworks.design.CheckRapidAcceleratorSignalLogging

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

Описание

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

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Режим моделирования не является быстрым ускорителем.

Ничего. Можно включить регистрацию сигналов в режиме быстрого ускорения.

Режим моделирования - быстрый ускоритель. Помощник по обновлению не обнаружил сигналы с включенным протоколированием сигналов.

Ничего. В модели не используется регистрация сигналов. Включите регистрацию сигналов и глобально, если требуется регистрировать сигналы.

Режим моделирования - быстрый ускоритель. Помощник по обновлению обнаружил сигналы с включенным протоколированием сигналов. Однако глобальная настройка регистрации сигналов была отключена.

Если требуется регистрировать сигналы с включенным регистром сигналов, включите регистрацию сигналов глобально.

Регистрация сигналов уже включена глобально.

Ничего.

Результаты действий

Выбор команды Изменить (Modify) позволяет регистрировать сигналы глобально в модели.

См. также

Проверка входов виртуальной шины в блоки

Код чека: mathworks.design.VirtualBusUsage

Проверьте входные сигналы шины для набора блоков.

Описание

Проверьте входные сигналы шины для набора блоков.

Начиная с R2015b, входы сигналов виртуальной шины в блоки, для которых требуется вход небучевой или невиртуальной шины, могут привести к ошибке. Примеры блоков, которые могут указывать объект шины в качестве типа выходных данных, включают блок Bus Creator и корневой блок Inport. Блоки, вызывающие ошибку при вводе виртуальной шины в этой ситуации:

  • Назначение

  • Задержка

    Блок задержки вызывает ошибку только в том случае, если диалоговое окно «Параметры блока» используется для:

    • Задайте начальное условие, которое является структурой MATLAB или нулем.

    • Укажите значение для имени состояния.

  • Измерение перестановки

  • Измениться

  • Отборщик

  • Единичная задержка

    Блок «Единичная задержка» вызывает ошибку только в том случае, если диалоговое окно «Параметры блока» используется для:

    • Задайте начальное условие, которое является структурой MATLAB или нулем.

    • Укажите значение для имени состояния.

  • Конкатенат вектора

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Вход сигнала виртуальной шины в эти блоки:

  • Назначение

  • Задержка (если в диалоговом окне указано начальное условие, являющееся структурой MATLAB или нулем, а значение для имени состояния не является пустым)

  • Измерение перестановки

  • Измениться

  • Отборщик

  • Единичная задержка (Unit Delay) (если указать начальное условие, которое является структурой MATLAB или нулем, и значение для имени состояния не является пустым)

  • Конкатенат вектора

В помощнике по обновлению нажмите кнопку Изменить.

Проверка вставляет блок Bus to Vector, чтобы попытаться преобразовать входные сигналы виртуальной шины в векторные сигналы. Для проблем, которые помощник по обновлению определяет, но не может устранить, измените модель вручную. Дополнительные сведения см. в разделе Определение автоматических преобразований шины.

Результаты действий

При нажатии кнопки «Изменить» блок Bus to Vector вставляется на входные порты блоков.

Для многих моделей запуск Upgrade Advisor изменяет модель таким образом, чтобы сигналы шины не рассматривались как векторы. Однако для некоторых моделей проблемы совместимости могут возникнуть даже после выполнения проверки. Измените модель вручную, чтобы устранить эти проблемы.

После компиляции модели с помощью Upgrade Advisor редактор Simulink Editor иногда указывает на необходимость сохранения модели (модель является грязной), даже если изменения не были внесены. Чтобы предотвратить повторение этой проблемы для этой модели, сохраните модель.

Шаблон моделированияПроблемаРешение

Блок памяти хранилища данных с типом данных, равным Inherit: auto

Блок памяти хранилища данных, связанные с которым блоки чтения хранилища данных или записи хранилища данных считывают или записывают данные сигнала шины, должен использовать объект шины.

В блоке памяти хранилища данных установите атрибут сигнала типа данных в значение Bus: <BusObject>.

Выходной параметр блока преобразования сигналов соответствует типу входной шины

Блок преобразования сигналов, для параметра Output которого установлено значение Nonvirtual bus требует ввода виртуальной шины.

Блок преобразования сигнала, для параметра Output которого установлено значение Virtual bus Для этого требуется невиртуальный вход шины.

Чтобы создать копию входного сигнала, установите для параметра Output значение Signal copy.

Блок объединения, коммутатора или многопортового коммутатора с несколькими входами шины

Блоки объединения, коммутатора или мультипортового коммутатора с несколькими входами шины требуют, чтобы эти входы имели одинаковые имена и иерархию.

Реконфигурируйте модель таким образом, чтобы входы шины имели одинаковые имена и иерархию.

Блок корневого ввода, выводящий виртуальную шину и задающий значение для размеров порта

Корневой блок Inport, выводимый на виртуальную шину, должен наследовать размеры.

Установите атрибут сигнала «Inport block Port dimensions» в значение 1 или -1 (inherit).

Блок мультиплексора с непровиртуальными входами шины

Блок мультиплексора не может принимать сигналы невиртуальной шины.

Чтобы рассматривать выходные данные как массив, замените блок Mux блоком Vector Concatenate.

Если требуется выход виртуальной шины, используйте блок Bus Creator для объединения сигналов.

Блок Bus to Vector без ввода сигнала виртуальной шины

Сигнал без шины не нуждается в блоке Bus to Vector.

Удалите блок Bus to Vector.

Блок назначения с входами виртуальной шины

Помощник по обновлению преобразует блок назначения Y0 вход шины портов в вектор.

Добавьте блок Bus to Vector перед блоком Assignment.

S-функция, использующая невиртуальную шину

S-функция, которая не является S-функцией Level-2 C, не поддерживает сигналы невиртуальной шины.

Измените S-функцию на Level-2 C S-функцию.

Рассмотрите возможность использования блока S-Function Builder для создания Level-2 C S-функции.

Диаграмма потока состояний с параметризованным типом данных

В диаграмме Stateflow нельзя параметризовать тип данных ввода или вывода в терминах другого ввода или вывода, если тип данных является объектом шины.

Для параметризованного порта задайте для параметра «Тип данных» значение Bus: <object name>.

Подсистема с операциями с шинами в диаграмме потока состояний

Для блока Inport в подсистеме на диаграмме Stateflow требуется тип данных объекта шины, если его сигнал является шиной.

В блоке Inport установите тип данных в значение Bus: <object name>.

Наземный блок, используемый в качестве источника шины

Выходной сигнал наземного блока не может быть источником для шины.

Используйте блок Constant со значением Constant, равным 0, и атрибутом Output data type signal, равным Bus: <object name>.

Корневой выходной блок с одноэлементным типом данных объекта шины

Вход в блок Outport должен быть шиной, если в качестве типа данных указан объект шины.

В блоке Outport установите тип данных в значение Inherit: auto.

См. также

Проверка корневых выходов с постоянным временем выборки

Код чека: mathworks.design.CheckConstRootOutportWithInterfaceUpgrade

Эта проверка используется для определения корневых выходов с постоянным временем выборки, используемым для цели AUTOSAR, управления прототипом функции или интерфейса класса модели C++.

Описание

Корневые выходы с постоянным временем выборки не поддерживаются при использовании целевого объекта AUTOSAR, управления прототипом функции или интерфейса класса модели C++. Эта проверка используется для идентификации корневого исходящего блока с этим условием и изменения блоков в соответствии с рекомендациями.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Корневой выход с постоянным временем выборки, используемый с целевым объектом AUTOSAR, управлением прототипом функции или интерфейсом класса модели C++.

Рассмотрим один из следующих вариантов:

  • Установите время выборки блока на основное время выборки.

  • Определите источник постоянного времени выборки и установите для него основное время выборки.

  • Поместите перед блоком блок Rate Transition с наследуемым временем выборки (-1).

См. также

Анализ иерархии моделей и продолжение последовательности обновления

Код чека: com.mathworks.Simulink.UpgradeAdvisor.UpgradeModelHierarchy

Проверьте дочерние модели и проведите проверку обновления.

Описание

Эта проверка определяет дочерние модели этой модели и направляет вас через проверки обновления на выполнение как некомпилируемых, так и компилируемых проверок. Консультант предоставляет инструменты для решения следующих задач:

  • Если проверка находит дочерние модели, она предлагает запустить помощник по обновлению (Upgrade Advisor) для каждой дочерней модели по очереди и продолжить последовательность обновления. При наличии иерархии модели необходимо последовательно проверять и обновлять каждую дочернюю модель.

  • Если дочерние модели отсутствуют, необходимо продолжать последовательность проверок до тех пор, пока не будут выполнены некомпилирующие и компилирующие проверки.

Необходимо выполнить проверки обновления в следующем порядке: сначала проверки, которые не требуют информации о времени компиляции и не запускают схему обновления, а затем проверки компиляции.

Нажмите Продолжить последовательность обновления, чтобы выполнить следующие проверки. При наличии дочерних моделей откроется следующая модель. Продолжайте нажимать кнопку Continue Upgrade Sequence до тех пор, пока проверка не пройдет.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Найдены дочерние моделиНажмите Продолжить последовательность обновления, чтобы выполнить следующие проверки. При наличии дочерних моделей текущий сеанс помощника по обновлению будет закрыт, а для следующей модели в иерархии будет открыт помощник по обновлению.
Нет дочерних моделей, но больше проверок для выполненияЕсли дочерних моделей нет, щелкните Продолжить последовательность обновления (Continue Upgrade Sequence), чтобы обновить помощник по обновлению с выбранными проверками компиляции. Проверки компиляции запускают схему обновления (помеченную ^). Выполните следующие проверки и выполните рекомендованные действия. При возврате к этой проверке нажмите Продолжить обновление до тех пор, пока эта проверка не пройдет.

Совет

Рекомендуется проверять и обновлять каждую модель, начиная с конца листа и заканчивая корневой моделью.

Если щелкнуть Продолжить последовательность обновления (Continue Upgrade Sequence), помощник по обновлению (Upgrade Advisor) откроет конечную модель настолько далеко внутри иерархии, насколько это возможно. Последующие шаги помогут обновить иерархию с листа на корневую модель.

При открытии помощника по обновлению выбранные проверки не требуют компиляции информации о времени и не запускают схему обновления. Проверки, запускающие схему обновления, не выбраны для выполнения по умолчанию и помечены ^. При использовании помощника по обновлению в иерархии продолжайте нажимать кнопку Продолжить последовательность обновления (Continue Upgrade Sequence), чтобы перейти к следующей последовательности анализа:

  1. Помощник по обновлению (Upgrade Advisor) открывает каждую модель и библиотеку по очереди, от листа до корня, и выбирает некомпилирующие проверки. Выполните проверки, выполните все рекомендованные действия, затем щелкните Продолжить последовательность обновления (Continue Upgrade Sequence), чтобы открыть следующую модель и продолжить.

  2. При достижении корневого конца иерархии помощник по обновлению снова открывает каждую модель в том же порядке (но не библиотеки) и выбирает только те проверки, которые требуют компиляции модели. Выполните проверки, выполните все рекомендованные действия, а затем щелкните Продолжить (Continue) Обновить последовательность (Upgrade Sequence), чтобы открыть следующую модель. Продолжайте до тех пор, пока не будет достигнут конец иерархии и эта проверка не пройдет.

См. также

Проверка доступа к хранилищам данных

Код чека: mathworks.design.ConflictsForDataStoreReadWriters

Определение потенциальной чувствительности порядка выполнения при чтении и записи в хранилища данных.

Описание

Порядок выполнения блоков, считывающих и записывающих в одно и то же хранилище данных, может изменить результат моделирования. Когда блоки в одной иерархии получают доступ к одному и тому же хранилищу данных, порядок выполнения не является детерминированным.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие

Блок памяти хранилища данных, доступ к которому осуществляется несколькими блоками в одной иерархии.

Чтобы принудительно применить порядок выполнения для блоков, примите во внимание следующее:

  • Добавление зависимости данных между блоками.

  • Установка приоритета блока.

  • Переместите блоки в отдельные блоки Function-Call Subsystem и запланируйте их.

См. также

Проверка относительных заказов на выполнение для блоков чтения и записи хранилища данных

Код чека: mathworks.design.TaskBasedSorting

Проверьте относительные изменения порядка выполнения для устаревших и основанных на задачах блоков чтения и записи хранилища данных.

Описание

Устаревшие модели использовали сортировку блоков для определения порядка выполнения блоков. При сортировке на основе задач может измениться относительный порядок выполнения, включающий блоки памяти хранилища данных. Эта проверка обнаруживает изменения и предоставляет возможность обновления модели с помощью исходного порядка выполнения.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Порядок выполнения с блоком памяти хранилища данных изменяется. Требуется исходный заказ на выполнение.Нажмите кнопку «Изменить».

См. также

Проверка несовпадений вариантов в ссылках на модели и библиотеки

Код чека: mathworks.design.CaseSensitiveBlockDiagramNames

Определение и исправление ссылок на модели и библиотеки без учета регистра.

Описание

Начиная с R2020a, имена моделей и библиотек Simulink зависят от регистра. Эта проверка обнаруживает и предоставляет возможность фиксировать ссылки на модели и библиотеки без учета регистра.

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Проверка обнаруживает несовпадения вариантов в ссылках на модели и библиотеки.Следуйте рекомендациям помощника по обновлению.

См. также

Проверка модели для блоков делителя RF Blockset с использованием компонента делителя мощности Уилкинсона с разорванными соединениями

Код чека: mathworks.design.rfblockset.ce.checkDisconnectedDividerBlocks

Выполните поиск в модели и перечислите блоки RF Blockset™ Divider, используя компонент Wilkinson power divider с разорванными портовыми соединениями на порту 3.

Описание

Начиная с R2021a, изменяются позиции портов блоков делителя RF Blockset с использованием компонента делителя мощности Уилкинсона. Эта проверка выполняет поиск и перечисляет блоки делителя с использованием модели компонента делителя мощности Уилкинсона с разорванными соединениями портов на порту 3 до R2021a. После этого можно выполнить повторное редактирование соединений с помощью кнопки «Изменить».

Результаты и рекомендуемые действия

СостояниеРекомендуемое действие
Модели имеют блоки RF Blockset Divider, использующие компонент Wilkinson power divider с разорванными портовыми соединениями на порту 3.Нажмите кнопку Modify (Изменить), чтобы изменить разорванные соединения на порте 3 блоков разделителя RF-блоков.

Результаты действий

При нажатии кнопки Modify нарушенные соединения портов на порту 3 блоков разделителя RF-блоков.

Примечание

Кнопка Modify попытается автоматически перемотать все разорванные соединения в порту 3 блоков Divider с помощью компонента Wilkinson power divider в модели. Для обеспечения точности необходимо выполнить следующие действия:

  • Проверьте сведения, перечисленные на панели «Результат» помощника по обновлению.

  • В первом списке перечислены блоки RF Blockset Divider с использованием компонента Wilkinson power divider, которые требуют ручной перемотки из-за сложности модели.

  • Во втором списке перечисляются автоматически перемотанные блоки.

  • Фиксированные и нефиксированные блоки разделителя временно выделяются зеленым и красным цветами соответственно. Щелкните ссылку «Удалить все временные подсвечивания блока» в нижней части панели «Результат», чтобы удалить подсвечивания.

См. также