Simulink Check

Обзор Simulink Check

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

Смотрите также

Миграция на упрощенный обзор режима инициализации

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

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

Смотрите также

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

ID проверки: mathworks.design.UnconnectedLinesPorts

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

Описание

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

Примечание

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

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

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

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Советы

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

Смотрите также

Common Block Properties для получения информации о PortConnectivity команда.

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

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

ID проверки: mathworks.design.RootInportSpec

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

Описание

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

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

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

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

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

Советы

Следующие настройки передают эту проверку:

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

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

Смотрите также

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

ID проверки: 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, симулирование модели требует генерации и компиляции кода.

проверять

Смотрите также

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

ID проверки: 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 и разрешите диагностические предупреждения или ошибки.

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

ID проверки: mathworks.design.ParamTunabilityIgnored

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

Описание

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

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

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

Смотрите также

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

ID проверки: mathworks.design.ImplicitSignalResolution

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

Описание

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

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

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

Смотрите также

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

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

ID проверки: mathworks.design.OptBusVirtuality

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

Описание

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

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

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

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Смотрите также

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

ID проверки: mathworks.design.DiscreteTimeIntegratorInitCondition

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

Описание

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

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

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

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Смотрите также

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

ID проверки: mathworks.design.DisabledLibLinks

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

Описание

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

Примечание

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

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

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

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Советы

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

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

Смотрите также

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

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

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

ID проверки: mathworks.design.CheckVirtualBusAcrossModelReferenceArgs

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

Описание

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

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.design.ParameterizedLibLinks

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

Описание

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

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

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

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Советы

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

  • Чтобы параметрировать ссылку библиотеки, выберите Look Under Mask, из контекстного меню и выбора параметр.

Смотрите также

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

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

Идентифицируйте неразрешенные ссылки библиотеки

ID проверки: mathworks.design.UnresolvedLibLinks

Ищите модель неразрешенные ссылки библиотеки, где заданный библиотечный блок не может быть найден.

Описание

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

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

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

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Смотрите также

Зафиксируйте неразрешенные ссылки библиотеки

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

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

ID проверки: mathworks.design.CSStoVSSConvert

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

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

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

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

Можно осуществить эту проверку моделей библиотеки.

Смотрите также

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

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

ID проверки: mathworks.design.ConvertMdlrefVarToVSS

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

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

УсловиеРекомендуемое действие

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

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

Смотрите также

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

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

ID проверки: mathworks.design.emptyVariantObjects

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

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

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

Смотрите также

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

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

ID проверки: 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

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

ID проверки: mathworks.design.DataStoreMemoryBlkIssue

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

Описание

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

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

УсловиеРекомендуемое действие
Проверка Duplicate data store names установлена в none или warning. Рассмотрите установку Дублирующейся проверки имен хранилищ данных к error в диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity.

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

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

  • Название магазина глобальных данных

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

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

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

Проверка Multitask data store установлена в none или warning. Рассмотрите установку Многозадачной проверки хранилища данных к error в диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity.

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

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

Смотрите также

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

ID проверки: mathworks.design.DiagnosticDataStoreBlk

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

Описание

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

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

УсловиеРекомендуемое действие
Проверка Detect read before write отключена.Полагайте, что включение Обнаруживает чтение перед записью в диалоговом окне Configuration Parameter Diagnostics панель > Data Validity .
Проверка Detect write after read отключена.Полагайте, что включение Обнаруживает запись, после того, как считано в диалоговом окне Configuration Parameter Diagnostics панель > Data Validity .
Проверка Detect write after write отключена.Полагайте, что включение Обнаруживает запись после записи в диалоговом окне Configuration Parameter Diagnostics панель > Data Validity .

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

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

Советы

.

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

Смотрите также

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

ID проверки: mathworks.design.DataStoreBlkSampleTime

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

Описание

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

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

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

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

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

Смотрите также

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

ID проверки: mathworks.design.OrderingDataStoreAccess

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

Описание

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

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

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

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

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

Советы

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

Смотрите также

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

ID проверки: mathworks.design.MismatchedBusParams

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

Описание

В модели можно использовать структуру MATLAB, чтобы инициализировать сигнал шины. Например, если вы передаете сигнал шины через блок Unit Delay, можно установить параметр Initial condition на структуру. Для основной информации об инициализации шин при помощи структур смотрите, Задают Начальные условия для Элементов Шины.

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

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

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

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

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

Для получения дополнительной информации о полных и частичных структурах, смотрите, Создают Полные Структуры для Инициализации и Создают Частичные Структуры для Инициализации.

Неверные типы данных

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

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

Когда вы сконфигурируете начальную структуру условия, чтобы появиться как настраиваемая глобальная структура в сгенерированном коде, избегайте ненужных явных преобразований типа путем соответствия с типами данных. Смотрите Генерируют Настраиваемую Начальную Структуру Условия для Сигнала Шины (Simulink Coder).

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

УсловиеРекомендуемое действие

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

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

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

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

Смотрите также

Проверяйте, что Задержка, Unit Delay и Нулевой Порядок Содержат блоки для перехода уровня

ID проверки: 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

ID проверки: mathworks.design.CallslDataTypeAndScale

Идентифицируйте вызовы внутреннего функционального slDataTypeAndScale.

Описание

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

Simulink не делает обращений за поддержкой к slDataTypeAndScale когда:

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

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

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

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

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

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

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

Советы

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

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

Смотрите также

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

    • help slDataTypeAndScale

    • help slRemoveDataTypeAndScale

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

Сигналы контрольной шины, обработанные как векторы

ID проверки: mathworks.design.BusTreatedAsVector

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

Описание

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

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

УсловиеРекомендуемое действие

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

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

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

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

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

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

Советы

Смотрите также

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

ID проверки: mathworks.design.DelayedFcnCallSubsys

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

Описание

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

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

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

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

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

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

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

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

Смотрите также

Блок Conversion сигнала

Блок Unit Delay

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

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

ID проверки: mathworks.design.OutputSignalSampleTime

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

Описание

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

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

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

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

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

Смотрите также

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

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

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

ID проверки: mathworks.design.MergeBlkUsage

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

Примечание

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

Описание

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

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

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

УсловиеРекомендуемое действие
Проверяйте диагностическую установку во время выполнения блока Merge.
  1. В диалоговом окне Configuration Parameters набор Обнаруживает несколько ведущих блоков, выполняющихся, одновременно продвигаются в error.

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

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

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

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

Проверяйте на корневые блоки Слияния, которые имеют незаданное значение Initial output.

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

Смотрите также

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

ID проверки: mathworks.design.InitParamOutportMergeBlk

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

Примечание

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. В диалоговом окне Configuration Parameters, на панели Solver, очищаются, опция Автоматически обрабатывают переход уровня для передачи данных.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

Проверяйте на внешние блоки Outport, которые имеют явный Initial output.

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

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

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

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

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

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

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

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

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

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

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

Другие экземпляры блоков Выходного порта с той же библиотекой соединяются или не могут быть перемещены или перемещаются другим способом. Рассмотрите результаты 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 отразить это поведение.

Проверяйте на конфликт миграции для блоков Выходного порта, которые имеют семантику SimEvents®.

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

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

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

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

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

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

Смотрите также

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

ID проверки: mathworks.design.DiscreteBlock

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

Примечание

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

Описание

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

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

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

УсловиеРекомендуемое действие

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

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

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

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

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

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

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

Смотрите также

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

Примечание

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

ID проверки: mathworks.design.ModelLevelMessages

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

Описание

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

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

После выполнения этой проверки на непротиворечивость 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.

  • Если Выходной порт имеет пустой Initial output и сигнал переменного размера, то Initial output обнуляется.

Смотрите также

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

ID проверки: mathworks.design.SFuncAnalyzer

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

Описание

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

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

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

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

ID проверки: mathworks.design.NonContSigDerivPort

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

Описание

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

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

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

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

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

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

Смотрите также

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

ID проверки: mathworks.design.DiagnosticSFcn

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

Описание

Подтверждает, придерживаются ли блоки S-Function правил непротиворечивости решателя ОДУ, что Simulink применяется к своим встроенным блокам.

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

УсловиеРекомендуемое действие
Solver data inconsistency установлен в none.В диалоговом окне Configuration Parameters, набор Solver data inconsistency к warning или error.
Array bounds exceeded установлен в none.В диалоговом окне Configuration Parameters, набор Array bounds exceeded к warning или error

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

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

Смотрите также

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

ID проверки: mathworks.design.characterEncoding

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

Описание

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

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

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

Советы

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

get_param(modelname,'SavedCharacterEncoding')

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

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

Смотрите также

Идентифицируйте модульные несоответствия в модели

ID проверки: mathworks.design.UnitMismatches

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

Описание

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

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

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

Смотрите также

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

ID проверки: mathworks.design.AutoUnitConversions

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

Описание

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

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

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

Смотрите также

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

ID проверки: mathworks.design.DisallowedUnitSystems

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

Описание

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

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

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

Смотрите также

Идентифицируйте неопределенные модули в модели

ID проверки: mathworks.design.UndefinedUnits

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

Описание

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

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

УсловиеРекомендуемое действие
Найдены неопределенные модулиИзмените модуль в тот, который поддерживает Simulink.

Смотрите также

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

ID проверки: mathworks.design.AmbiguousUnits

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

Описание

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

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

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

Смотрите также

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

ID проверки: mathworks.design.Update

Проверяйте на общие проблемы обновления блока.

Описание

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

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

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

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

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

Смотрите также

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

ID проверки: 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 (2-D) или Lookup Table. Некоторые из этих блоков specify 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

ID проверки: mathworks.design.UseSLXFile

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

Описание

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

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

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

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

Можно осуществить эту проверку моделей библиотеки.

Советы

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

Смотрите также

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

ID проверки: mathworks.design.CheckSLXFileCompressionLevel

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

Описание

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

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

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

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

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

Советы

Проекты могут помочь вам обновить все модели и библиотеки в вашем проекте. Смотрите Обновление Все Модели Проекта, Библиотеки и Файлы кода MATLAB.

Смотрите также

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

ID проверки: mathworks.design.CheckSavedInCurrentVersion

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

Описание

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

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

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

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

Можно осуществить эту проверку моделей, библиотек и подсистем.

Советы

Проекты могут помочь вам сохранить все модели и библиотеки в вашем проекте к текущему релизу Simulink. Смотрите Обновление Все Модели Проекта, Библиотеки и Файлы кода MATLAB.

Смотрите также

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

ID проверки: mathworks.simulink.SB2SL.Check

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

Описание

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

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

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

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

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

Смотрите также

Свойства Check Model History

ID проверки: mathworks.design.SLXModelProperties

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

Описание

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

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

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

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

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

Можно осуществить эту проверку моделей библиотеки.

Смотрите также

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

ID проверки: mathworks.design.ModelInfoKeywordSubstitution

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

Описание

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

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

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

УсловиеРекомендуемое действие

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

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

Смотрите также

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

ID проверки: mathworks.design.ModelInfoConfigurationManager

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

Описание

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

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

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

УсловиеРекомендуемое действие

Блок Model Info использует Менеджер конфигурации.

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

Смотрите также

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

ID проверки: mathworks.design.serdesUpgrades

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

Описание

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

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

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

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

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

Смотрите также

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

ID проверки: 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

ID проверки: mathworks.design.Aeroblks.CheckNAV

Поиски Инерционного Модуля Измерения С тремя осями, Гироскопа С тремя осями и Акселерометра С тремя осями блокируются до 3,21 (R2018a).

Описание

Эта проверка ищет Инерционный Модуль Измерения С тремя осями, Гироскоп С тремя осями и блоки Акселерометра С тремя осями, которые были обновлены в R2018a.

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

УсловиеРекомендуемое действие
Инерционный Модуль Измерения с тремя осями, Гироскоп С тремя осями и Акселерометр С тремя осями блокируются до R2018a.

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

Смотрите также

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

ID проверки: mathworks.design.CheckAndUpdateOldMaskedBuiltinBlocks

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

Описание

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

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

УсловиеРекомендуемое действие
Библиотеки, которые должны быть обновлены, найденыНажмите Update. Если библиотеки были обновлены, осуществлял проверку снова

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Смотрите также

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

ID проверки: mathworks.design.CheckMaskDisplayImageFormat

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

Описание

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

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

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

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Смотрите также

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

ID проверки: mathworks.design.CheckMaskRunInitFlag

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

Описание

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

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

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

УсловиеРекомендуемое действие

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

Нажмите Update. Если блоки были обновлены, осуществлял проверку снова.

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

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

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

Смотрите также

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

ID проверки: mathworks.design.CheckAndUpdateOldMaskTabnames

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

Описание

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

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

УсловиеРекомендуемое действие
Маскированные блоки, которые используют MaskTabNames параметр, чтобы создать вкладки программно в диалоговом окне маски найден.Нажмите Upgrade, доступный в разделе Action. Если блоки были обновлены, осуществлял проверку снова.

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

Можно осуществить эту проверку моделей библиотеки.

Смотрите также

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

ID проверки: mathworks.design.StowawayDoubles

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

Описание

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

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

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

VerifyThat:

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

  • В диалоговом окне Configuration Parameters Default for underspecified data type установлен в single.

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

VerifyThat:

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

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

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

VerifyThat:

  • В диалоговом окне Configuration Parameters выбран Implement logic signals as Boolean data.

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

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

Смотрите также

Проверяйте, что get_param призывает к блоку CompiledSampleTime

ID проверки: mathworks.design.CallsGetParamCompiledSampleTime

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

Описание

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

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

blkTs = get_param(block,'CompiledSampleTime');

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

  • Пример 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Смотрите также

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

ID проверки: mathworks.design.CheckSingleSimulationOutput

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

Описание

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

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

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

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

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

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

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

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

Смотрите также

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

ID проверки: 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, чтобы решить вопросы в модели, связанной с инициализацией параметра и настройкой.

Смотрите также

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

ID проверки: 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 — порты For, блоки 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.

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

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

Смотрите также

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

ID проверки: mathworks.design.DSPFrameUpgrade

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

Описание

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

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

УсловиеРекомендуемое действие

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

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

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

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

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

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

Смотрите также

Основанная на системе координат обработка (DSP System Toolbox)

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

ID проверки: 'mathworks.design.CheckForSFcnUpgradeIssues'

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

Описание

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

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

УсловиеРекомендуемое действие

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

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

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

Перекомпилируйте использование последнего флага (mex -R2018a). Смотрите, что файл MEX Скомпилирован С Устаревшей Опцией для получения дополнительной информации.

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

Измените свой код согласно инструкциям в файле MEX, Вызывает 32-битную Функцию.

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

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

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

Смотрите также

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

ID проверки: 'mathworks.design.CheckSystemObjectUpdate'

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

Описание

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

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

УсловиеРекомендуемое действие

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

'none'.

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

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

Смотрите также

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

ID проверки: mathworks.design.CheckRapidAcceleratorSignalLogging

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

Описание

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

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

УсловиеРекомендуемое действие

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

'none'. Можно включить сигнал, входящий в систему быстрый режим Accelerator.

Режим Simulation является быстрым акселератором. Обновление Советник не нашло сигналы с логгированием сигнала включенными.

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

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

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

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

'none'.

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

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

Смотрите также

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

ID проверки: mathworks.design.VirtualBusUsage

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

Описание

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

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

  • Assignment

  • Delay

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

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

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

  • Permute Dimension

  • Reshape

  • Selector

  • Unit Delay

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

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

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

  • Vector Concatenate

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

УсловиеРекомендуемое действие

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

  • “()” Присвоение

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

  • Переставьте размерность

  • Изменение

  • Селектор

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

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

В Советнике по вопросам Обновления нажмите Modify.

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

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

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

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

После того, как вы компилируете модель с помощью Советника по вопросам Обновления, Редактор 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 без сигнала виртуальной шины вводится

Сигналу нешины не нужен блок Bus to Vector.

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

Блок Assignment с виртуальными входными параметрами шины

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

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

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

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

Измените S-функцию, чтобы быть S-функцией Уровня 2 C.

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

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

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

Для параметрированного порта, набор Data Type к Bus: <object name>.

Подсистема с автобусными перевозками в диаграмме Stateflow

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

В блоке Inport, набор Data type к Bus: <object name>.

Блок Ground используется в качестве источника шины

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

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

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

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

В блоке Outport, набор Data type к Inherit: auto.

Смотрите также

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

ID проверки: mathworks.design.CheckConstRootOutportWithInterfaceUpgrade

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

Описание

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

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

УсловиеРекомендуемое действие

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

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

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

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

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

Смотрите также

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

ID проверки: com.mathworks.Simulink.UpgradeAdvisor.UpgradeModelHierarchy

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

Описание

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

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

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

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

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

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

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

Советы

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

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

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

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

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

Смотрите также

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

ID проверки: mathworks.design.ConflictsForDataStoreReadWriters

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

Описание

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

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

УсловиеРекомендуемое действие

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

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

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

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

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

Смотрите также

Проверяйте относительные порядки выполнения на блоки Записи Чтения и Хранилища данных Хранилища данных

ID проверки: mathworks.design.TaskBasedSorting

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

Описание

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

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

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

Смотрите также

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

ID проверки: mathworks.design.CaseSensitiveBlockDiagramNames

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

Описание

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

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

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

Смотрите также

Проверяйте модель на блоки Делителя RF Blockset с помощью компонента делителя степени Уилкинсона с поврежденными связями

ID проверки: mathworks.design.rfblockset.ce.checkDisconnectedDividerBlocks

Ищите модель и перечислите блоки Делителя RF Blockset™ с помощью компонента делителя степени Уилкинсона с поврежденными подключениями порта на порте 3.

Описание

Запуская R2021a, расположения порта блоков Делителя RF Blockset с помощью компонента делителя степени Уилкинсона изменяются. Эта проверка ищет и перечисляет блоки Делителя с помощью модели компонента делителя степени Уилкинсона с поврежденными подключениями порта на порте 3 до R2021a. Можно затем повторно соединить связи с помощью кнопки Modify.

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

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

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

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

Примечание

Кнопка Modify попытается автоматически повторно соединить все поврежденные связи в порте 3 из блоков Делителя с помощью компонента делителя степени Уилкинсона в модели. Чтобы гарантировать точность, вы должны впоследствии:

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

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

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

  • Зафиксированные и открепленные блоки Делителя временно подсвечены в цветах, зеленых и красных, соответственно. Щелкните по ссылке Remove all temporary block highlighting в нижней части панели Результата, чтобы удалить подсветки.

Смотрите также