Проверки Simulink

Обзор Simulink Check

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

См. также

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

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

Используйте Model Advisor проверяет Migrating to Simplified Initialization Mode, чтобы помочь перенести модель в упрощенный режим инициализации.

См. также

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

Проверяйте идентификатор: mathworks.design.UnconnectedLinesPorts

Проверьте наличие несвязанных линий или портов.

Описание

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

Примечание

Порты, подключенные к блокам ground/terminator, пройдут этот тест.

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

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

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

Вы можете:

  • Запустите эту проверку на своих моделях библиотеки.

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

Совет

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

См. также

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

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

Проверяйте корневую модель Спецификации блоков Inport

Проверяйте идентификатор: mathworks.design.RootInportSpec

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

Описание

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

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

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

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

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

Совет

Эту проверку проходят следующие строения:

  • Configuration Parameters > Solver > Periodic sample time constraint установлено на Ensure sample time independent

  • Для моделей export-function унаследованный шаг расчета не помечен.

См. также

Проверяйте настройки оптимизации

Проверяйте идентификатор: mathworks.design.OptimizationSettings

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

Описание

Эта проверка рассматривает состояние оптимизации, которая может улучшить эффективность кода и время симуляции.

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

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

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

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

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

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

Примечание

Model Advisor проверяет эти параметры только, если существует Stateflow® график в модели.

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

Выберите none для:

  • Solver data inconsistency

  • Array bounds exceeded

  • Diagnostics> Data Validity> Simulation range checking

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

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

Совет

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

проверить

См. также

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

Проверяйте идентификатор: mathworks.design.ModelRefSIMConfigCompliance

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

Описание

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

  • Array bounds exceeded

  • Diagnostics> Data Validity> Inf or NaN block output

  • Diagnostics> Data Validity> Division by singular matrix

  • Diagnostics> Data Validity> Wrap on overflow

Кроме того, для моделей, на которые ссылаются в режиме Accelerator, Simulink игнорирует следующие Configuration Parameters > Diagnostics > Data Validity > Data Store Memory block параметры, если вы задаете им значение, отличное от Disable all. Для получения дополнительной информации смотрите Диагностика хранилища данных.

  • Detect read before write

  • Detect write after read

  • Detect write after write

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

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

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

Симулируйте модель в режиме normal mode и устраните диагностические предупреждения или ошибки.

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

Проверяйте идентификатор: mathworks.design.ParamTunabilityIgnored

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

Описание

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

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.ImplicitSignalResolution

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

Описание

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

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

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

См. также

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

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

Проверяйте идентификатор: mathworks.design.OptBusVirtuality

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

Описание

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

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

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

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

Вы можете:

  • Запустите эту проверку на своих моделях библиотеки.

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

См. также

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

Проверяйте идентификатор: mathworks.design.DiscreteTimeIntegratorInitCondition

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

Описание

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

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

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

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

Вы можете:

  • Запустите эту проверку на своих моделях библиотеки.

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

См. также

Идентифицируйте отключенные библиотечные ссылки

Проверяйте идентификатор: mathworks.design.DisabledLibLinks

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

Описание

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

Примечание

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

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

СостояниеРекомендуемое действие
Библиотечные ссылки отключены.Щелкните Library Link > Resolve link опции в контекстном меню.

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

Вы можете:

  • Запустите эту проверку на своих моделях библиотеки.

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

Совет

  • Используйте Model Browser для поиска библиотечных ссылок.

  • Чтобы включить разорванную ссылку, щелкните правой кнопкой мыши блок в модели, чтобы отобразить контекстное меню. Выберите Library Link > Resolve link.

См. также

Восстановление отключенных ссылок

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

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

Проверяйте идентификатор: mathworks.design.CheckVirtualBusAcrossModelReferenceArgs

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

Описание

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

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

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

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

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

См. также

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

Идентифицируйте параметризованные библиотечные ссылки

Проверяйте идентификатор: 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

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

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

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

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

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

См. также

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

Идентифицируйте блоки Variant Model и преобразуйте их в Подсистему Variant, содержащую варианты выбора блоков Model

Проверяйте идентификатор: mathworks.design.ConvertMdlrefVarToVSS

Найдите модель, чтобы идентифицировать блоки Variant Model.

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

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

Variant Model блоки, доступные в модели.

Преобразуйте эти блоки в блоки Variant Subsystem.

См. также

Преобразование в варианты

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

Проверяйте идентификатор: mathworks.design.emptyVariantObjects

Найдите модель, чтобы идентифицировать блоки или библиотеку Variant, имеющую пустые объекты вариант.

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

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

См. также

Введение в варианты управления

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

Проверяйте идентификатор: mathworks.design.CheckForProperFcnCallUsage

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

Описание

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

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

СостояниеРекомендуемое действие
Diagnostic > Connectivity > Context-dependent inputs установлено на Disable All или Use local settings. Это может привести к недетерминированному выполнению модели.Установите Diagnostics > Connectivity > Context-dependent inputs значение Enable all as errors.

См. также

Function-Call Subsystem

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

Проверяйте идентификатор: mathworks.design.DataStoreMemoryBlkIssue

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

Описание

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

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

СостояниеРекомендуемое действие
Проверка Duplicate data store names установлена на none или warning. Рассмотрите установку проверки имен хранилища данных на error в диалоговом окне «Параметры конфигурации» на панели Diagnostics > Data Validity.

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

  • Signal Attributes панель диалогового окна Block Parameters для блока Date Store Memory

  • Глобальные данные

Задайте тип данных, отличный от auto, выполнив одно из следующих действий:

  • Выберите тип данных, отличный от Inherit: auto на панели Signal Attributes диалогового окна Block Parameters для блока Date Store Memory .

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

Проверка Multitask data store установлена на none или warning. Рассмотрите установку проверки хранилища данных Multitask на error в диалоговом окне «Параметры конфигурации» на панели Diagnostics > Data Validity.

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.DiagnosticDataStoreBlk

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

Описание

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

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

СостояниеРекомендуемое действие
Проверка Detect read before write отключена.Рассмотрите возможность включения функции «Обнаружить чтение перед записью» в диалоговом окне Параметра конфигурации Diagnostics > Data Validity панели.
Проверка Detect write after read отключена.Рассмотрите включение функции Обнаружить запись после чтения в диалоговом окне Параметра конфигурации Diagnostics > Data Validity панели.
Проверка Detect write after write отключена.Рассмотрите включение Обнаружить запись после записи в диалоговом окне Параметра конфигурации Diagnostics > Data Validity панели.

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

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

Совет

.

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

См. также

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

Проверяйте идентификатор: mathworks.design.DataStoreBlkSampleTime

Идентифицируйте ошибки моделирования из-за шагов расчета блоков хранилища данных.

Описание

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

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

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

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.OrderingDataStoreAccess

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

Описание

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

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

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

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

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

Совет

Эта проверка выполняет статический анализ, который может не идентифицировать каждый образец неправильного использования. В частности, подсистемы вызова функций, диаграммы Stateflow, MATLAB для генерации кода, для подсистем итератора и для каждой подсистемы могут вызвать как пропущенные обнаружения, так и ложные срабатывания. Для более полной проверки рассмотрите включение следующей диагностики на панели Diagnostics > Data Validity в диалоговом окне Параметров конфигурации: Обнаружение чтения перед записью, Обнаружение записи после чтения и Обнаружение записи после записи.

См. также

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

Проверяйте идентификатор: mathworks.design.MismatchedBusParams

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

Описание

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

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

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

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

  • Сгенерируйте читаемый и эффективный код.

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

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

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

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

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

Когда вы конфигурируете начальную структуру условий как настраиваемую глобальную структуру в сгенерированном коде, избегайте ненужных явных наборов типов, совпадая с типами данных. Смотрите Generate Tunable Initial Condition Structure для сигнала шины (Simulink Coder).

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

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

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

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

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

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

См. также

Проверяйте задержку, Unit Delay и блоки удержания нулевого порядка для перехода скорости

Проверяйте идентификатор: mathworks.design.ReplaceZOHDelayByRTB

Идентифицируйте Delay, Unit Delay или Zero-Order Hold блоки, которые используются для перехода скорости. Замените эти блоки фактическими блоками Rate Transition.

Описание

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

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

  • Эта техника моделирования работает только в определенных строениях перехода (медленно-быстро для Delay и Unit Delay blocks и быстро-медленно для Zero-Order Hold блока). Установите шаг расчета блока равным более медленной скорости (источник для блоков Delay и Unit Delay и пункт назначения для блока Zero-Order Hold).

  • Когда изменяется время расчета блока для нисходящего или восходящего блока, эти Delay, Unit Delay и Zero-Order Hold блоки могут не выполнять переход скорости. Для примера установка исходного и целевого шагов расчета равной остановке перехода скорости. Блоки затем принимают свои исходные алгоритмические свойства проекта.

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

Альтернативой является замена Delay, Unit Delay или Zero-Order Hold блоков на фактические блоки Rate Transition.

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

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

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

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

СостояниеРекомендуемое действие
Модель не имеет образцов Delay, Unit Delay или блоков Zero-Order Hold, используемых для перехода скорости.Никаких действий не требуется.
Модель имеет образцы блоков Delay, Unit Delay или Zero-Order Hold, используемых для перехода скорости.

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

  1. Щелкните Upgrade Model, чтобы заменить фактическими блоками Rate Transition.

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

Если Вы не принимаете решение заменить Delay, Unit Delay, и/или Zero-Order Hold блоки с фактическим Rate Transition блоки, 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 в модель. Функция предназначена только для внутреннего использования.

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

См. также

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

    • help slDataTypeAndScale

    • help slRemoveDataTypeAndScale

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

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

Проверяйте идентификатор: mathworks.design.BusTreatedAsVector

Идентифицируйте сигналы шины, которые Simulink обрабатывает как векторы.

Описание

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

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

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

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

Использование Simulink.BlockDiagram.addBusToVector или вставьте блок «Шина к вектору».

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

В диалоговом окне Configuration Parameters на панели Diagnostics > Connectivity установите Bus signal treated as vector error.

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

Щелчок мыши Modify вставляет блок Bus to Vector во входные порты блоков, которые неявно преобразуют сигналы шины в векторы.

Совет

См. также

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

Проверяйте идентификатор: mathworks.design.DelayedFcnCallSubsys

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

Описание

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

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

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

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

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

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

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

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

См. также

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

Unit Delay

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

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

Проверяйте идентификатор: mathworks.design.OutputSignalSampleTime

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

Описание

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

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

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

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

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

См. также

Что такой Шаг расчета?.

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

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

Проверяйте идентификатор: mathworks.design.MergeBlkUsage

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

Примечание

Запустите эту проверку вместе с другими проверками в обзоре режима миграции на упрощенную инициализацию.

Описание

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

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

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

СостояниеРекомендуемое действие
Проверьте настройку диагностики во время выполнения блока Merge.
  1. В диалоговом окне Параметров конфигурации установите значение Detect multiple driving блоков executing в то же время error.

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

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

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

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

Проверьте корневые блоки Merge, которые имеют неопределенное Initial output значение.

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

Корневой Merge блок является Merge блоком с выходом портом, который не соединяется с другим Merge блоком. Для получения информации об исходном значении по умолчанию см. Раздел «Инициализация значений сигналов».

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

Очистите параметр Allow unequal port widths блока Merge.

Примечание

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

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

Установите параметр Number of inputs блока Merge в количество входов блока Merge. Вы должны подключить каждый вход к сигналу.

Проверьте, что каждый вход блока Merge управляется условно выполненной подсистемой. Merge блоки не могут управляться непосредственно Iterator Subsystem или блоком, который не является условно выполненной подсистемой.

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

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

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

Проверьте, что входные сигналы к каждому блоку Merge имеют одинаковые Sample time.

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

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

Проверьте, что следующее поведение приемлемо.

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

Примечание

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

См. также

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

Проверяйте идентификатор: mathworks.design.InitParamOutportMergeBlk

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

Примечание

Запустите эту проверку вместе с другими проверками в обзоре режима миграции на упрощенную инициализацию.

Описание

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

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

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

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

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

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

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

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

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

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

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

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

  • Блок Outport соединяется с входом блока Merge

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

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

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

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

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

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

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

  • Блок Outport соединяется с входом блока Merge

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

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

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

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

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

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

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

Проверьте, что следующее поведение приемлемо.

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

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

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

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

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

  1. В диалоговом окне Параметры конфигурации на панели Solver очистите опцию Автоматический переход скорости для передачи данных.

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

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

Проверьте, что следующее поведение приемлемо.

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

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

Задайте параметр Initial output блока Outport.

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

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

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

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

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

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

Проверьте, что следующее поведение приемлемо.

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

Примечание

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

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

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

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

Проверьте, что следующее поведение приемлемо.

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

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

Проверьте, что следующее поведение приемлемо.

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

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

Проверяйте наличие блоков внешних Outport с явной Initial output.

Проверьте, что следующее поведение приемлемо.

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

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

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

Проверьте, что следующее поведение приемлемо.

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

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

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

Другие образцы блоков Outport с тем же библиотечным звеном либо не могут быть перенесены, либо переносятся другим способом. Проверьте результаты из Check for library blocks with instances that cannot be migrated, чтобы узнать о различных путях миграции для других образцов каждого блока Outport.

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

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

Другие образцы блоков Outport с тем же библиотечным звеном либо не могут быть перенесены, либо переносятся другим способом. Проверьте результаты из Check for library blocks with instances that cannot be migrated, чтобы узнать о различных путях миграции для других образцов каждого блока Outport.

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

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

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

Другие образцы блоков Outport с тем же библиотечным звеном либо не могут быть перенесены, либо переносятся другим способом. Проверьте результаты из Check for library blocks with instances that cannot be migrated, чтобы узнать о различных путях миграции для других образцов каждого блока Outport.

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

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

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

Другие образцы блоков Outport с тем же библиотечным звеном либо не могут быть перенесены, либо переносятся другим способом. Проверьте результаты из Check for library blocks with instances that cannot be migrated, чтобы узнать о различных путях миграции для других образцов каждого блока Outport.

Проверьте наличие конфликта миграции для блоков Outport, которые используют значение земли по умолчанию в качестве выхода.Значение Initial output параметра установлено равным [] (пустая матрица), и источник Outport является недопустимым исходным условием. Таким образом, блок использует начальное значение по умолчанию в качестве начального выхода в упрощенном режиме инициализации. Другие образцы блоков Outport с тем же библиотечным звеном либо имеют ошибки, либо мигрируют по-разному.
Проверяйте на конфликт миграции для объединенных блоков Outport без явной спецификации Initial output.Проверьте результаты из Check for library blocks with instances that cannot be migrated subcheck, чтобы узнать о различных путях миграции для других образцов каждого блока Outport. Для остальных блоков Outport Initial output установлено значение [] (пустая матрица) и Output when disabled установлено в held соответственно в упрощенном режиме инициализации.

См. также

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

Проверяйте идентификатор: mathworks.design.DiscreteBlock

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

Примечание

Запустите эту проверку вместе с другими проверками в обзоре режима миграции на упрощенную инициализацию.

Описание

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

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

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

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

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

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

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

Используйте периодические шаги расчета для блока или установите Initial Condition setting равным Output.

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

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

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

См. также

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

Примечание

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

Проверяйте идентификатор: mathworks.design.ModelLevelMessages

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

Описание

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

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

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

Примечание

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

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

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

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

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

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

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

Установите Configuration Parameters > Underspecified initialization detection на Simplified.

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

Нажатие кнопки Modify Settings приводит к следующему:

  • Значение Параметра модели устанавливается равным simplified

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

  • Если у Outport есть пустой Initial output и сигнал переменного размера, то Initial output устанавливается в нуль.

См. также

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

Проверяйте идентификатор: mathworks.design.SFuncAnalyzer

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

Описание

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

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

СостояниеРекомендуемое действие
Непрерывные состояния изменяются в mdlOutputs способ.Изменение непрерывных состояний в основной временной шаг и использование ssSetSolverNeedsReset функция в коде S-функции.
Непрерывные состояния изменяются в mdlUpdate способ.Изменение непрерывных состояний только в основной временной шаг и использование ssSetSolverNeedsReset функция в коде S-функции.
Дискретные состояния S-функции изменяются в mdlOutputs за мелкий шаг.Измените дискретные состояния только на основном шаге, охраняемом ssIsMajorTimeStep функция.
Вектор режима S-функции изменен в mdlOutputs метод за мелкий шаг.Измените вектор режима только на основном шаге, охраняемом sslsMajorTimeStep функция.
S-функция использует статические или глобальные переменные, чтобы объявить внутренние состояния.Явное объявление состояний с помощью ssSetNumDiscStates Function или Model Global Data путем создания хранилищ данных.
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 правилам согласованности решателя ОДУ, которые Simulink применяет к своим встроенным блокам.

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

СостояниеРекомендуемое действие
Solver data inconsistency установлено на none.В диалоговом окне Параметров конфигурации установите Solver data inconsistency равным warning или error.
Array bounds exceeded установлено на none.В диалоговом окне Параметров конфигурации установите Array bounds exceeded равным warning или error

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.characterEncoding

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

Описание

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

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

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

Совет

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

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.

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

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

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

Нажатие кнопки Modify заменяет блоки из предыдущего релиза программного обеспечения Simulink на последние версии.

См. также

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

Проверяйте идентификатор: mathworks.design.UpdateRequireCompile

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

Описание

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

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

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

Модель содержит Unit Delay блоков с Sample time значением -1 который наследует непрерывный шаг расчета.

Замените Unit Delay блоки на Memory блоки.

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

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

Нажатие кнопки Modify заменяет блоки из предыдущего релиза программного обеспечения Simulink на последние версии.

См. также

Проверяйте, что модель сохранена в формате SLX

Проверяйте идентификатор: mathworks.design.UseSLXFile

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

Описание

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

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

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

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

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

Совет

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

См. также

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

Проверяйте идентификатор: mathworks.design.CheckSLXFileCompressionLevel

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

Описание

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

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

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

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

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

Совет

Проекты могут помочь вам обновить все модели и библиотеки в вашем проекте. Смотрите Upgrade All Project Models, Libraries и КОД MATLAB Files.

См. также

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

Проверяйте идентификатор: mathworks.design.CheckSavedInCurrentVersion

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

Описание

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

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

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

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

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

Совет

Проекты могут помочь вам сохранить все модели и библиотеки в проекте в текущем релизе Simulink. Смотрите Upgrade All Project Models, Libraries и КОД MATLAB Files.

См. также

Проверьте модель на наличие блоков SB2SL

Проверяйте идентификатор: mathworks.simulink.SB2SL.Check

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

Описание

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

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

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

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

Нажатие кнопки Update SB2SL Blocks заменяет блоки на последние версии.

См. также

Проверяйте свойства истории модели

Проверяйте идентификатор: mathworks.design.SLXModelProperties

Проверяйте на отредактированные свойства истории модели

Описание

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

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

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

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

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

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

См. также

Идентифицируйте блоки Model Info, которые могут взаимодействовать с внешними инструментами системы контроля версий

Проверяйте идентификатор: mathworks.design.ModelInfoKeywordSubstitution

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

Описание

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

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

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

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

Блок Model Info содержит такие поля, как: $ keyword$

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

См. также

Идентифицируйте блоки Model Info, которые используют Configuration Manager

Проверяйте идентификатор: mathworks.design.ModelInfoConfigurationManager

Используйте эту проверку для поиска блоков Model Info, которые используют Configuration Manager.

Описание

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

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

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

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

Блок Model Info использует Configuration Manager.

Нажмите Remove the Configuration Manager.

См. также

Проверьте модель на обновляемые блоки SerDes Toolbox

Проверяйте идентификатор: mathworks.design.serdesUpgrades

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

Описание

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

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

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

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

Если щелкнуть Upgrade SerDes Toolbox Blocks, устаревшие блоки SerDes Toolbox будут совместимы с текущим релизом.

См. также

Проверьте модель на устаревшие 3DoF или блоки 6DoF

Проверяйте идентификатор: mathworks.design.Aeroblks.CheckDOF

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

Описание

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

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

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

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

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

См. также

Проверьте модель для навигационных блоков Aerospace Blockset

Проверяйте идентификатор: mathworks.design.Aeroblks.CheckNAV

Ищет блоки Three-Axis Inertial Measurement Модуля, Three-Axis Gyroscope и Three-Axis Accelerometer до 3.21 (R2018a).

Описание

Эта проверка ищет блоки Three-Axis Inertial Measurement Unit, Three-Axis Gyroscope и Three-Axis Accelerometer, которые были обновлены в R2018a.

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

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.CheckAndUpdateOldMaskedBuiltinBlocks

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

Описание

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

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

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

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

Вы можете:

  • Запустите эту проверку на своих моделях библиотеки.

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

См. также

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

Проверяйте идентификатор: mathworks.design.CheckMaskDisplayImageFormat

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

Описание

Эта проверка ищет команды отображения маски, которые делают ненужные вызовы imread() и обновляет их с помощью команд отображения маски, которые не вызывают imread() функция. С 2013a оптимизация эффективности и памяти доступна для масочных изображений, заданных с помощью пути изображения вместо тройной матрицы 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 найден параметр для программного создания вкладок в маскировочном диалоговом окне.Щелкните Upgrade доступной в Action разделе. После обновления блоков запустите проверку еще раз.

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.StowawayDoubles

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

Описание

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

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

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

Проверьте, что:

  • Типы входных и выходных данных блоков заданы правильно.

  • В диалоговом окне Параметров конфигурации Default for underspecified data type установлено на single.

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

Проверьте, что:

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

    Установите Configuration Parameters > Standard math library на C99 (ISO).

Логические сигналы не реализованы как логические данные.

Проверьте, что:

  • В диалоговом окне Параметров конфигурации выбран Implement logic signals as Boolean data.

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

Если у вас есть лицензия 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 вызовы для вывода скомпилированного блока шага расчета, Upgrade Advisor отображает эти результаты. Это предполагает, что вы изменяете код, который принимает блочное скомпилированный шаг расчета из многоскоростных блоков.

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.CheckSingleSimulationOutput

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

Описание

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

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

  • Более легкое управление данными моделирования.

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

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

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

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.ParameterTuning

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

Описание

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

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

  • Разделите на нулевую проблему в условно выполненных подсистемах

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

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

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

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

Выберите Automatically handle rate transition for data transfer в панели Solver параметров конфигурации модели.

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

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

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

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

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

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

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

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

См. также

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

Проверяйте идентификатор: mathworks.design.CheckVirtualBusAcrossModelReference

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

Описание

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

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

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

  • Для блоков Outport корневого уровня - Включите параметр Output as nonvirtual bus in parent model.

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

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

Чтобы решить проблемы, нажмите кнопку Upgrade Model.

Примечание

Запустите проверку Analyze model hierarchy and continue upgrade sequence на модели верхнего уровня, а затем вниз через иерархию моделей-ссылок.

Нажатие кнопки Upgrade Model преобразует затронутые Inport корневого уровня и блоки Outport, настроенные для виртуальных шин, чтобы использовать невиртуальные шины в моделях, где вы:

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

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

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

    1. На панели Configuration Parameters Code Generation > Interface > нажмите Configure C++ Class Interface.

    2. В диалоговом окне установите параметр Function specification равным Default step method.

  • Используйте шины, которые имеют сигналы переменного размера

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

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

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

  • Иметь Model блоки, которые ссылаются на модели, содержащие Outport блоки, которые были исправлены - Клик Upgrade Model обновляет Блоки Model, ссылающиеся на модели, которые имели Outport блоки, фиксированные проверкой Analyze model hierarchy and continue upgrade sequence.

См. также

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

Проверяйте идентификатор: mathworks.design.DSPFrameUpgrade

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

Описание

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

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

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

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

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

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

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

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

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

См. также

Кадровая обработка (DSP System Toolbox)

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

Проверяйте идентификатор: 'mathworks.design.CheckForSFcnUpgradeIssues'

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

Описание

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

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

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

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

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

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

Перекомпилируйте с помощью последнего флага (mex -R2018a). Для получения дополнительной информации см. раздел «Файл MEX скомпилирован с устаревшими Опциями».

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

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

S-функция использует устаревшие отдельные комплексные API (mx Get Pi, mx Set Pi, mx Get Imag Data, mx Set Imag Data).

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

S-функция использует устаревший type-небезопасный API данных (mxGetData, mxSetData).Используйте API данных, безопасных для типа, и повторно скомпилируйте код. Для получения дополнительной информации смотрите Файл MEX Вызовов Untyped Данных Доступа Function.
S-функция скомпилирована с будущим релизом и не поддерживается в текущем релизе.Смотрите файл MEX, созданный в Релиз Не поддерживается в текущем релизе, чтобы перекомпилировать файлы.

См. также

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

Проверяйте идентификатор: 'mathworks.design.CheckSystemObjectUpdate'

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

Описание

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

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

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

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

Ничего.

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

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

См. также

Проверяйте Быстрое логгирование сигналов Accelerator

Проверяйте идентификатор: mathworks.design.CheckRapidAcceleratorSignalLogging

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

Описание

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

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

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

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

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

Режим симуляции - быстрый ускоритель. Upgrade Advisor не обнаружил сигналы с включённым логгированием сигналов.

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

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

Включите глобальную регистрацию сигналов, если вы хотите регистрировать сигналы с включённым логгированием сигналов.

Логгирование сигналов уже включено в глобальном масштабе.

Ничего.

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

Выбор Modify позволяет регистрировать сигнал глобально в вашей модели.

См. также

Проверяйте входы виртуальной шины в блоки

Проверяйте идентификатор: mathworks.design.VirtualBusUsage

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

Описание

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

Начиная с R2015b, входы сигнала виртуальной шины в блоки, которые требуют небусового или невиртуального ввода шины, могут вызвать ошибку. Примеры блоков, которые могут задать объект шины в качестве типа выходных данных, включают блок Bus Creator и блок корневого Inport. Блоки, которые вызывают ошибку, когда у них есть вход виртуальной шины в этой ситуации:

  • Assignment

  • Delay

    Блок Delay вызывает ошибку только в том случае, если вы используете диалоговое окно Параметров блоков для:

    • Установите начальное условие, которое является структурой MATLAB или нули.

    • Задайте значение для State name.

  • Permute Dimension

  • Reshape

  • Selector

  • Unit Delay

    Блок Unit Delay вызывает ошибку только в том случае, если вы используете диалоговое окно Параметров блоков для:

    • Установите начальное условие, которое является структурой MATLAB или нули.

    • Задайте значение для State name.

  • Vector Concatenate

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

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

Сигнал виртуальной шины, входа к этим блокам:

  • Назначение

  • Задержка (если вы задаете начальное условие из диалогового окна, которое является структурой MATLAB или нули, и значение для State name не пустое)

  • Транспозиция размерности

  • Измениться

  • Отборщик

  • Unit Delay (если вы задаете начальное условие, которое является структурой MATLAB или нули, и значение для State name не пустое)

  • Векторная конкатенация

В окне Upgrade Advisor нажмите Modify.

Проверка вставляет блок Bus to Vector, чтобы попытаться преобразовать входные сигналы виртуальной шины в сигналы вектора. Для проблем, которые Upgrade Advisor идентифицирует, но не может исправить, измените модель вручную. Для получения дополнительной информации смотрите Идентификация автоматического преобразования шины.

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

Клик Modify вставляет Bus to Vector блок во входные порты блоков.

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

После компиляции модели с помощью Upgrade Advisor, Редактор Simulink иногда указывает, что вам нужно сохранить модель (модель грязная), даже если вы не вносили изменений. Чтобы предотвратить повторное возникновение этой проблемы для этой модели, сохраните модель.

Шаблон моделированияПроблемаРешение

Data Store Memory блок с Data Type установленным на Inherit: auto

Блок Data Store Memory, чей связанный Data Store Read или Data Store Write блоки считывает или записывает данные сигнала шины, должен использовать объект шины.

В блоке Data Store Memory установите атрибут Data Type сигнала равным Bus: <BusObject>.

Signal Conversion блок Output параметр соответствует типу входной шины

Блок Signal Conversion, чей параметр Output установлен в Nonvirtual bus требуется вход виртуальной шины.

Блок Signal Conversion, чей параметр Output установлен в Virtual bus требуется невиртуальный вход шины.

Чтобы создать копию входного сигнала, установите Output равным Signal copy.

Merge, Switch или Multiport Switch блок с несколькими входами в шину

Merge, Switch или Multiport Switch блоки с несколькими входами в шину требуют, чтобы эти входы имели одинаковые имена и иерархию.

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

Корневой Inport блок, выводящий виртуальную шину и задающий значение для Port dimensions

Корневой Inport блок, который выводит на виртуальную шину, должен наследовать размерности.

Установите атрибут Inport сигнала Port dimensions блока на 1 или -1 (inherit).

Mux блок с невиртуальными входами шины

Блок Mux не может принимать невиртуальные сигналы шины.

Чтобы обработать выход как массив, замените Mux блок на Vector Concatenate блок.

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

Bus to Vector блок без входного сигнала виртуальной шины

Nonbus сигнал не нуждается в Bus to Vector блоке.

Удалите Bus to Vector блок.

Assignment блок с входами виртуальной шины

Советник по обновлению преобразует блок Assignment Y0 вход шины порта в вектор.

Добавьте Bus to Vector блок перед блоком Assignment.

S-функция, использующая невиртуальную шину

S-функция, которая не является Level-2 S-функцией C, не поддерживает невиртуальные сигналы шины.

Измените S-функцию на Level-2 C-функцию.

Рассмотрите использование блока S-Function Builder для создания Level-2 S-функции C.

Диаграмма Stateflow с параметризованным типом данных

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

Для параметризованного порта установите Data Type равным Bus: <object name>.

Подсистема с шинными операциями на диаграмме Stateflow

Блок Inport внутри подсистемы в диаграмме Stateflow требует тип данных объекта шины, если его сигнал является шиной.

В блоке Inport установите Data type равным Bus: <object name>.

Ground блок, используемый в качестве источника шины

Выходной сигнал блока Ground не может быть источником для шины.

Используйте блок Constant с Constant value, установленным на 0, и атрибут Output data type сигнала, установленный на Bus: <object name>.

Корневой Outport блок с одноэлементным типом данных объекта шины

Вход блока Outport должен быть шиной, если он задает в качестве типа данных объект шины.

В блоке Outport установите Data type равным Inherit: auto.

См. также

Проверяйте на корневые выходные порты с постоянным шагом расчета

Проверяйте идентификатор: mathworks.design.CheckConstRootOutportWithInterfaceUpgrade

Используйте эту проверку, чтобы идентифицировать корневые выходные порты с постоянным шагом расчета, используемым с целью AUTOSAR, Function Prototype Control или интерфейсом класса C++ модели.

Описание

Корневые выходные порты с постоянным шагом расчета не поддерживаются при использовании цели AUTOSAR, Function Prototype Control или интерфейса класса C++ модели. Используйте эту проверку, чтобы идентифицировать корневые блоки Outport с этим условием и изменить блоки в соответствии с рекомендациями.

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

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

Корневой вывод с постоянным шагом расчета, используемым с целью AUTOSAR, Function Prototype Control или интерфейсом класса C++ модели.

Рассмотрим одно из следующих:

  • Установите значение шага расчета блока равным основному шагу расчета.

  • Идентифицируйте источник постоянного шага расчета и установите его шаг расчета равным основному шагу расчета.

  • Поместите блок Rate Transition с унаследованным шагом расчета (-1) перед блоком.

См. также

Анализируйте иерархию модели и продолжайте последовательность обновления

Проверяйте идентификатор: com.mathworks.Simulink.UpgradeAdvisor.UpgradeModelHierarchy

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

Описание

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

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

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

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

Щелкните Continue Upgrade Sequence, чтобы запустить следующие проверки. Если есть дочерние модели, это откроет следующую модель. Продолжайте кликать Continue Upgrade Sequence, пока чек не пройдет.

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

СостояниеРекомендуемое действие
Найдены дочерние моделиЩелкните Continue Upgrade Sequence, чтобы запустить следующие проверки. При наличии дочерних моделей будет закрыт текущий сеанс Upgrade Advisor и откроется Upgrade Advisor для следующей модели в иерархии.
Нет дочерних моделей, но больше проверок, чтобы запуститьЕсли дочерних моделей нет, щелкните Continue Upgrade Sequence, чтобы обновить Upgrade Advisor с выбранными проверками компиляции. Проверки компиляции запускают схему обновления (отмеченную ^). Выполните следующие проверки и выполните рекомендуемые действия. Когда вы вернетесь к этой проверке, нажмите кнопку Continue Upgrade Sequence до тех пор, пока эта проверка не пройдет.

Совет

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

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

Когда вы открываете Upgrade Advisor, выбранные проверки не требуют информации о времени компиляции и не запускают схему обновления. Проверки, инициирующие запуск схемы обновления, не выбраны для выполнения по умолчанию и отмечены ^. Когда вы используете Upgrade Advisor в иерархии, продолжайте кликать Continue Upgrade Sequence, чтобы пройти эту последовательность анализа:

  1. Upgrade Advisor открывает каждую модель и библиотеку в свою очередь от листа до корня и выбирает проверки без компиляции. Запустите проверки, выполните любые рекомендуемые действия, затем нажмите Continue Upgrade Sequence, чтобы открыть следующую модель и продолжить.

  2. Когда вы достигаете корневого конца иерархии, Upgrade Advisor снова открывает каждую модель в том же порядке (но не библиотеки) и выбирает только проверки, которые требуют компиляции модели. Запустите проверки, выполните любые рекомендуемые действия, а затем нажмите Continue Upgrade Sequence, чтобы открыть следующую модель. Продолжайте до тех пор, пока вы не достигнете конца иерархии, и эта проверка не пройдет.

См. также

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

Проверяйте идентификатор: mathworks.design.ConflictsForDataStoreReadWriters

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

Описание

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

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

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

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

Чтобы применить порядок выполнения для блоков, примите к сведению следующее:

  • Добавьте зависимость данных между блоками.

  • Установите приоритет блока.

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

См. также

Проверьте относительные порядки выполнения для блоков Данных Store Read и Данные Store Write

Проверяйте идентификатор: mathworks.design.TaskBasedSorting

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

Описание

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

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

СостояниеРекомендуемое действие
Порядок выполнения с блоком памяти хранилища данных изменяется. Вам нужен исходный порядок выполнения.Нажмите кнопку Modify.

См. также

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

Проверяйте идентификатор: mathworks.design.CaseSensitiveBlockDiagramNames

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

Описание

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

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

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

См. также

Проверьте модель для RF Blockset Divider блоков, используя компонент делителя степени Уилкинсона с разорванными соединениями

Проверяйте идентификатор: mathworks.design.rfblockset.ce.checkDisconnectedDividerBlocks

Найдите модель и перечислите блоки RF Blockset™ Divider с помощью компонента делителя степени Уилкинсона с разорванными соединениями портов на 3 портов.

Описание

Начиная R2021a, изменяются положения портов блоков RF Blockset Divider, использующих компонент делителя степени Уилкинсона. Эта проверка ищет и перечисляет блоки Divider, используя модель компонента делителя степени Уилкинсона с разорванными соединениями портов на порту 3 до R2021a. Затем можно перемонтировать соединения с помощью кнопки «Изменить».

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

СостояниеРекомендуемое действие
Модели имеют блоки RF Blockset Divider, использующие компонент делителя степени Уилкинсона с разорванными портовыми соединениями на порту 3.Нажмите кнопку Modify, чтобы перемонтировать разорванные соединения на порте 3 блоков RF Blockset Divider.

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

Нажатие кнопки Modify переключает разорванные соединения портов на порте 3 блоков RF Blockset Divider.

Примечание

Кнопка Modify попытается автоматически перемонтировать все разорванные соединения в порту 3 блоков Divider с помощью компонента делителя степени Уилкинсона в вашей модели. Для обеспечения точности необходимо впоследствии:

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

  • В первом списке перечислены блоки RF Blockset Divider, использующие компонент делителя степени Уилкинсона, который требует ручной переделки из-за сложности модели.

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

  • Блоки Fixed и unfixed Divider временно подсвечиваются зеленым и красным цветами соответственно. Щелкните ссылку Remove all temporary block highlighting в нижней части панели результатов, чтобы удалить подсветки.

См. также