Используйте проверки Simulink® Model Advisor, чтобы сконфигурировать вашу модель для моделирования.
Simulink Coder проверяет (Simulink Coder)
Simulink Check проверяет (Simulink Check)
Упрощенный режим инициализации был представлен в R2008b, чтобы улучшить непротиворечивость результатов симуляции. Этот режим особенно важен для моделей, которые не задают начальные условия для условно выполняемых выходных портов подсистемы. Для получения дополнительной информации смотрите Упрощенный Режим Инициализации и Классический Режим Инициализации.
Используйте Образцовые регистрации Советника Миграции на Упрощенный Режим Инициализации, чтобы помочь переместить вашу модель на упрощенный режим инициализации.
ID проверки: mathworks.design.UnconnectedLinesPorts
Проверьте на несвязанные строки или порты.
Это контрольные списки несвязанные строки или порты. Они могут испытать затруднения при распространении атрибутов сигнала, таких как тип данных, частота дискретизации и размерности.
Порты, соединенные с блоками земли/терминатора строки, пройдут этот тест.
Условие | Рекомендуемое действие |
---|---|
Строки, входные порты или выходные порты не связаны. | Соедините сигналы. Дважды кликните список несвязанных элементов, чтобы определить местоположение отказа. |
Вы можете:
Осуществите эту проверку своих моделей библиотеки.
Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check™.
Используйте команду PortConnectivity
, чтобы получить массив структур, описывающих блочные порты ввода или вывода.
Common Block Properties для получения информации о команде PortConnectivity
.
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.RootInportSpec
Проверьте, что корневые образцовые блоки Inport полностью задают размерности, частоту дискретизации и тип данных.
Используя корневые образцовые блоки Inport, которые не полностью задают размерности, частота дискретизации или тип данных может привести к нежелательным результатам симуляции. Программное обеспечение Simulink назад - распространяет размерности, частоты дискретизации и типы данных от нисходящих блоков, если вы явным образом не присваиваете их значения.
Условие | Рекомендуемое действие |
---|---|
Корневой уровень блоки Inport имеет неопределенные атрибуты. | Полностью задайте атрибуты корневого уровня блоки Inport. |
Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.
Следующие настройки передают эту проверку:
Параметры конфигурации> Решатель> Периодическое ограничение частоты дискретизации установлены в Ensure sample time independent
Для моделей экспорта функций не отмечается наследованная частота дискретизации.
ID проверки: mathworks.design.OptimizationSettings
Проверьте на оптимизацию, которая может привести к неоптимальной генерации кода и моделированию.
Эта проверка рассматривает состояние оптимизации, которая может повысить эффективность кода и время симуляции.
Условие | Рекомендуемое действие |
---|---|
Заданная оптимизация выключена. | Установите следующие флажки оптимизации на панели Оптимизации в диалоговом окне Configuration Parameters:
Установите следующие флажки оптимизации на панели Оптимизации в диалоговом окне Configuration Parameters:
Установите следующие флажки оптимизации в диалоговом окне Configuration Parameters:
Установите следующие флажки оптимизации на панели Оптимизации в диалоговом окне Configuration Parameters: ПримечаниеОбразцовый Советник проверяет эти параметры, только если существует график Stateflow® в модели.
|
Продолжительность жизни приложения (дни) установлена как бесконечная. Это могло привести к дорогому 64-битному встречному использованию. | Выберите время остановки, если это не предназначается. |
Заданная диагностика, которая может увеличить время, которое требуется, чтобы моделировать вашу модель, установлена в warning или error . |
Выберите
|
Заданные Встроенные параметры Coder® выключены. |
Если у вас есть лицензия Embedded Coder, и вы используете основанный на ERT системный конечный файл:
|
Если система содержит Блоки модели, и модель, на которую ссылаются, находится в Режиме Accelerator, моделирование модели требует генерации и компиляции кода.
Образцовые параметры конфигурации: оптимизация генерации кода (Simulink Coder)
ID проверки: mathworks.design.ModelRefSIMConfigCompliance
Проверки на модели, на которые ссылаются, для которых Simulink изменяет настройки параметра конфигурации во время ускоренного моделирования.
Для моделей, на которые ссылаются в режиме Accelerator, Simulink игнорирует настройки следующих параметров конфигурации, которые вы устанавливаете на значение кроме None
.
Границы массивов превышены
Блок Diagnostics> Data Validity> Inf или NaN выводится
Диагностика> Законность Данных> Деление сингулярной матрицей
Диагностика> Законность Данных> Переносится на переполнении
Кроме того, для моделей, на которые ссылаются в режиме Accelerator, Simulink игнорирует следующие Параметры конфигурации> Диагностика> Законность Данных> параметры Блока памяти Хранилища данных, если вы устанавливаете их на значение кроме Disable all
. Для получения дополнительной информации смотрите Диагностику Хранилища данных.
Обнаружьте чтение перед записью
Обнаружьте запись, после того, как считано
Обнаружьте запись после записи
Условие | Рекомендуемое действие |
---|---|
Вы хотите видеть результаты выполнения идентифицированной диагностики с настройками, чтобы произвести предупреждения или ошибки. | Моделируйте модель в Режиме normal mode и разрешите диагностические предупреждения или ошибки. |
ID проверки: mathworks.design.ParamTunabilityIgnored
Проверки, если информация о приспособляемости параметра включена в диалоговое окно Model Parameter Configuration.
Программное обеспечение Simulink игнорирует информацию о приспособляемости, заданную в диалоговом окне Model Parameter Configuration. Эта проверка идентифицирует те модели, содержащие информацию о приспособляемости параметра, которую проигнорирует программное обеспечение Simulink, если на модель сошлются другие модели.
Условие | Рекомендуемое действие |
---|---|
Модель содержит проигнорированную информацию о приспособляемости параметра. | Щелкните по ссылкам, чтобы преобразовать в эквивалентные объекты параметра Simulink в рабочей области MATLAB®. |
Создайте настраиваемый калибровочный параметр в сгенерированном коде (Simulink Coder).
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.
Блок IC
Постоянный блок
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.DisabledLibLinks
Поисковая модель для отключенных ссылок библиотеки.
Отключенные ссылки библиотеки могут вызвать неожиданные результаты симуляции. Разрешите отключенные ссылки прежде, чем сохранить модель.
Эта проверка может наложиться с моделью Проверки для блочных проблем обновления.
Условие | Рекомендуемое действие |
---|---|
Ссылки библиотеки отключены. | Щелкните по Ссылке Библиотеки> опция ссылки Твердости в контекстном меню. |
Вы можете:
Осуществите эту проверку своих моделей библиотеки.
Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check.
Используйте Model Browser, чтобы найти ссылки библиотеки.
Чтобы включить неработающую ссылку, щелкните правой кнопкой по блоку по своей модели, чтобы отобразить контекстное меню. Выберите Library Link> ссылка Resolve.
Восстановите отключенные или параметризованные ссылки
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.CheckVirtualBusAcrossModelReferenceArgs
Проверяет, что виртуальная шина сигнализирует, что перекрестные контуры модели - ссылки и отмечают случаи, где использование виртуальных шин через контур модели - ссылки увеличивает число аргументов функции значительно.
Чтобы улучшить скорость процесса генерации кода, можно использовать эту проверку, чтобы сократить количество сгенерированных аргументов функции. Если проверка находит модель, что, где много аргументов будут сгенерированы для функции, можно нажать Update Model, чтобы изменить модель так, чтобы это сгенерировало меньше аргументов.
Методы, которые генерируют много аргументов функции как результат виртуального сигнала шины, пересекающего контур модели - ссылки, замедляют процесс генерации кода.
Условие | Рекомендуемое действие |
---|---|
Методы перечислены, которые генерируют большое количество аргументов для тока настройка модели, которую эта проверка может уменьшить путем изменения модели. | Нажмите Update Model. |
Нажатие на Update Model сбрасывает параметры блока Inport и Outport и вставляет блоки Преобразования Сигнала, по мере необходимости, чтобы сократить количество сгенерированных аргументов функции для модели.
Соедините шиной данные, пересекающие контуры модели - ссылки
ID проверки: mathworks.design.ParameterizedLibLinks
Поисковая модель для параметризованных ссылок библиотеки.
Параметризованные ссылки библиотеки, которые неумышленны, могут привести к неожиданным установкам параметров в вашей модели. Это может привести к неподходящей образцовой операции.
Условие | Рекомендуемое действие |
---|---|
Перечислены параметризованные ссылки. | Проверьте, что ссылки предназначаются, чтобы быть параметризованными. |
Вы можете:
Осуществите эту проверку своих моделей библиотеки.
Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check.
Щелкните правой кнопкой по блоку по своей модели, чтобы отобразить контекстное меню. Выберите Link Options
и нажмите Go To Library Block
, чтобы видеть исходный блок от библиотеки.
Чтобы параметризовать ссылку библиотеки, выберите Look Under Mask
, из контекстного меню и выберите параметр.
Восстановите отключенные или параметризованные ссылки
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.UnresolvedLibLinks
Ищите модель неразрешенные ссылки библиотеки, где заданный блок библиотеки не может быть найден.
Проверьте на неразрешенные ссылки библиотеки. Модели не моделируют, в то время как существуют неразрешенные ссылки библиотеки.
Условие | Рекомендуемое действие |
---|---|
Ссылки библиотеки не разрешены. | Найдите недостающий блок библиотеки или альтернативу. |
Вы можете:
Осуществите эту проверку своих моделей библиотеки.
Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check.
Зафиксируйте неразрешенные ссылки библиотеки
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.CSStoVSSConvert
Ищите модель, чтобы идентифицировать конфигурируемые блоки подсистемы на уровне подсистемы или модели.
Условие | Рекомендуемое действие |
---|---|
Идентифицированы конфигурируемые блоки подсистемы. | Преобразуйте эти блоки в различные блоки подсистемы, чтобы избежать проблем совместимости. Смотрите Конфигурируемую Подсистему. |
Можно осуществить эту проверку моделей библиотеки.
ID проверки: mathworks.design.ConvertMdlrefVarToVSS
Ищите модель, чтобы идентифицировать Различные Блоки модели.
Условие | Рекомендуемое действие |
---|---|
Перечислены различные Блоки модели, доступные в модели. | Преобразуйте эти блоки в Различные блоки Подсистемы. |
ID проверки: mathworks.design.CheckForProperFcnCallUsage
Проверьте образцовые диагностические настройки, которые применяются к возможности соединения вызова функции, и это может повлиять на образцовое выполнение.
Проверьте на настройки диагностики возможности соединения, которые могут привести к недетерминированному образцовому выполнению.
Условие | Рекомендуемое действие |
---|---|
Диагностика> Возможность соединения> Недопустимая связь вызова функции установлена в warning . Этот вывод силы к недетерминированному образцовому выполнению. | Установите Диагностику> Возможность соединения> Недопустимая связь вызова функции с error . |
Диагностика> Возможность соединения> Контекстно-зависимые входные параметры установлена в Disable All или Use local settings . Этот вывод силы к недетерминированному образцовому выполнению. | Установите Диагностику> Возможность соединения> Контекстно-зависимые входные параметры к Enable all as errors . |
ID проверки: mathworks.design.DataStoreMemoryBlkIssue
Ищите моделирование проблем, связанных с Блоками памяти Хранилища данных.
Проверки на многозадачную целостность данных, строгий контроль типов и затенение хранилищ данных более высокого осциллографа.
Условие | Рекомендуемое действие |
---|---|
Дублирующаяся проверка имен хранилищ данных установлена в none или warning . | Рассмотрите установку Дублирующейся проверки имен хранилищ данных к error в диалоговом окне Configuration Parameters на Диагностике> панель Законности Данных. |
Имена переменных хранилища данных не со строгим контролем типов в одном из следующего:
|
Задайте тип данных кроме автоматического путем принятия одних из следующих мер:
|
Многозадачная проверка хранилища данных установлена в none или warning . | Рассмотрите установку Многозадачной проверки хранилища данных к error в диалоговом окне Configuration Parameters на Диагностике> панель Законности Данных. |
Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.
ID проверки: mathworks.design.DiagnosticDataStoreBlk
Для блоков хранилища данных в модели позвольте проверке порядка диагностики чтения-и-записи обнаружить проблемы во время выполнения.
Проверьте на проверку порядка диагностики чтения-и-записи. Путем включения диагностики чтения-и-записи вы обнаруживаете потенциальные проблемы во время выполнения.
Условие | Рекомендуемое действие |
---|---|
Обнаружить чтение прежде выписывает чек, отключен. | Полагайте, что включение Обнаруживает чтение перед записью в Диагностике диалогового окна Configuration Parameter> панель Законности Данных. |
Обнаружить запись после проверки чтения отключена. | Полагайте, что включение Обнаруживает запись, после того, как считано в Диагностике диалогового окна Configuration Parameter> панель Законности Данных. |
Обнаружить запись после выписывает чек, отключен. | Полагайте, что включение Обнаруживает запись после записи в Диагностике диалогового окна Configuration Parameter> панель Законности Данных. |
Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check.
.
Диагностика во время выполнения может значительно замедлить моделирования. Если вы проверили, что Simulink не генерирует предупреждения или ошибки во время моделирования, установите их на Disable all
.
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.DataStoreBlkSampleTime
Идентифицируйте ошибки моделирования из-за частот дискретизации блоков хранилища данных.
Проверьте блоки хранилища данных на непрерывный или фиксированное в частотах дискретизации незначительного шага.
Условие | Рекомендуемое действие |
---|---|
Блоки хранилища данных в вашей модели имеют непрерывный или фиксированный в частотах дискретизации незначительного шага. | Считайте создание перечисленных блоков дискретным или заменяющий их или на Memory или на Goto и От блоков. |
Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.
ID проверки: mathworks.design.OrderingDataStoreAccess
Ищите проблемы чтения-записи, которые могут вызвать погрешности в результатах.
Во время Схемы Обновления идентифицируйте потенциальные проблемы, относящиеся к чтению перед записью, записи после чтения и условиям записи после записи для блоков хранилища данных.
Условие | Рекомендуемое действие |
---|---|
Чтение и запись (чтение перед записью или условие записи после чтения) происходят не в порядке. | Рассмотрите реструктуризацию вашей модели так, чтобы блок Data Store Read выполнился перед блоком Data Store Write. |
Несколько записей происходят в единственном временном шаге. | Измените модель, чтобы записать данные только однажды на временной шаг или относиться к следующему разделу Tips. |
Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.
Эта проверка выполняет статический анализ, который не может идентифицировать каждый экземпляр неподходящего использования. В частности Подсистемы вызова функций, диаграммы Stateflow, MATLAB для генерации кода, Для Подсистем Итератора, и Для Каждого Подсистемы могут вызвать и пропущенные обнаружения и ложные положительные стороны. Для более всесторонней проверки рассмотрите включение следующей диагностики на Диагностике> панель Законности Данных в диалоговом окне Configuration Parameters: Обнаружьте чтение перед записью, Обнаружьте запись, после того, как считано и Обнаружьте запись после записи.
ID проверки: mathworks.design.MismatchedBusParams
Идентифицируйте блоки и объекты Simulink.Signal
, которые инициализируют сигналы шины при помощи несовпадающих структур.
В модели можно использовать структуру MATLAB, чтобы инициализировать сигнал шины. Например, если вы передаете сигнал шины через блок Unit Delay, можно установить Начальный параметр условия на структуру. Для основной информации об инициализации шин при помощи структур смотрите, Задают Начальные условия для Сигналов Шины.
Осуществите эту проверку, чтобы сгенерировать эффективный и читаемый код путем соответствия с формой и типами числовых данных начальных структур условия с теми из сигналов шины. Соответствие с этими характеристиками избегает ненужных явных преобразований типа и заменяет присвоения структуры поля полем на, например, вызовы memcpy
.
Это блоки контрольных списков и объекты Simulink.Signal
, которые инициализируют сигналы шины при помощи частичных структур. Во время итеративного процесса создания модели можно использовать частичные структуры, чтобы фокусироваться на подмножестве элементов сигнала в шине. Для зрелой модели используйте полные структуры для:
Сгенерируйте читаемый и эффективный код.
Поддержите стиль моделирования, который явным образом инициализирует незаданные сигналы. Когда вы используете частичные структуры, Simulink неявно инициализирует незаданные сигналы.
Для получения дополнительной информации о полных и частичных структурах, смотрите, Создают Полные Структуры для Инициализации и Создают Частичные Структуры для Инициализации.
Это, которому возражают блоки контрольных списков и Simulink.Signal
, чьи начальные структуры условия представляют неверные типы данных. Поля этих структур имеют типы числовых данных, которые не совпадают с типами данных соответствующих элементов сигнала шины.
Когда вы сконфигурируете начальную структуру условия, чтобы появиться как настраиваемая глобальная структура в сгенерированном коде, избегайте ненужных явных преобразований типа путем соответствия с типами данных. Смотрите Генерируют Настраиваемую Начальную Структуру Условия для Сигнала Шины (Simulink Coder).
Условие | Рекомендуемое действие |
---|---|
Блокируйте или сигнализируйте, что объект использует частичную структуру | Рассмотрите использование функционального |
Типы данных полей структуры не совпадают с типами данных соответствующих элементов сигнала | Рассмотрите определение структуры как объект |
ID проверки: mathworks.design.ReplaceZOHDelayByRTB
Идентифицируйте Задержку, Единичная задержка, или Нулевой Порядок Содержит блоки, которые используются для перехода уровня. Замените эти блоки на фактические блоки Перехода Уровня.
Если модель использует Задержку, Единичная задержка, или Нулевой Порядок Содержит блоки, чтобы обеспечить переход уровня между сигналами ввода и вывода, Simulink делает скрытую замену этих блоков со встроенными блоками Перехода Уровня. В скомпилированной блок-схеме желтый символ и буквы “RT” появляются в верхнем левом углу заменяющего блока. Эта замена может влиять на поведение модели, можно следующим образом:
Эти блоки теряют свои алгоритмические свойства проекта, чтобы задержать сигнал, или нулевой порядок реализации содержат. Вместо этого они получают поведение перехода уровня.
Этот метод моделирования работает только в определенных настройках перехода (быстрое не спешение для блоков Задержки и Единичной задержки, и быстрый-к-медленному для блока Zero-Order Hold). Установите блочную частоту дискретизации быть равной более медленному уровню (источник для блоков Задержки и Единичной задержки и место назначения для блока Zero-Order Hold).
То, когда блочная частота дискретизации нисходящего или восходящего блока изменяется, они, Задержка, Единичная задержка и Нулевой Порядок Содержит блоки, не может выполнить переход уровня. Например, установка источника и целевых частот дискретизации равняется переходу уровня остановок. Блоки затем принимают свои исходные алгоритмические свойства проекта.
Блочная частота дискретизации показывает неполную информацию об уровнях частоты дискретизации. Блочный код достигает двух различных уровней, чтобы обработать передачу данных. Однако блочная частота дискретизации и частота дискретизации цветной показ это как блок единственного уровня. Инструменты и скрипты MATLAB, которые используют информацию о частоте дискретизации, основывают свое поведение на этой информации.
Альтернатива должна заменить Задержку, Единичная задержка, или Нулевой Порядок Содержит блоки с фактическими блоками Перехода Уровня.
Метод гарантирует однозначные результаты в блочном поведении. Задержка, Единичная задержка или Нулевой Порядок Содержит блочное действие согласно их алгоритмическому дизайну, чтобы задержать и содержать сигналы соответственно. Только блоки Перехода Уровня выполняют фактический переход уровня.
Используя фактический блок Rate Transition для предложений перехода уровня конфигурируемое решение обработать передачу данных, если вы хотите задать детерминированное поведение или тип буферов памяти, чтобы реализовать.
Используйте эту проверку, чтобы идентифицировать экземпляры в вашей модели, где Задержка, Единичная задержка или Нулевой Порядок Содержит блоки, подвергаются скрытой замене, чтобы обеспечить переход уровня между сигналами. Нажмите Upgrade Model, чтобы заменить эти блоки на фактические блоки Перехода Уровня.
Условие | Рекомендуемое действие |
---|---|
Модель не имеет никаких экземпляров Задержки, Единичная задержка, или Нулевой Порядок Содержит блоки, используемые для перехода уровня. | Никакое действие не требуется. |
Модель имеет экземпляры Задержки, Единичная задержка, или Нулевой Порядок Содержит блоки, используемые для перехода уровня. |
Проверка идентифицирует эти экземпляры и позволяет вам обновлять модель.
|
Если вы не принимаете решение заменить Задержку, Единичная задержка, и/или Нулевой Порядок Содержит блоки с фактическими блоками Перехода Уровня, Simulink продолжает выполнять скрытую замену этих блоков со встроенными блоками перехода уровня.
Вы можете:
Осуществите эту проверку своих моделей библиотеки.
Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check.
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
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.BusTreatedAsVector
Идентифицируйте, что шина сигнализирует, что Simulink обрабатывает как векторы.
Вы не можете использовать сигналы шины, что программное обеспечение Simulink неявно преобразовывает в векторы. Вместо этого или вставьте Шину в Векторный блок преобразования между сигналом шины и блочным входным портом, который это подает, или используйте команду Simulink.BlockDiagram.addBusToVector
.
Условие | Рекомендуемое действие |
---|---|
Сигналы шины неявно преобразованы в векторы. | Используйте |
Модель не сконфигурирована, чтобы идентифицировать, что шина сигнализирует, что Simulink обрабатывает как векторы. | В диалоговом окне Configuration Parameters, на Диагностике> панель Возможности соединения, сигнал Шины набора, обработанный как вектор к |
Нажатие на Modify вставляет блок Bus to Vector во входных портах блоков, которые неявно преобразовывают сигналы шины в векторы.
Осуществите эту проверку перед рабочей непротиворечивостью Проверки параметров инициализации для блоков Выходного порта и Слияния.
Для получения дополнительной информации смотрите Правильные Шины, Используемые в качестве Векторов.
ID проверки: mathworks.design.DelayedFcnCallSubsys
Идентифицируйте возвращаемые значения вызова функции, которые могут быть задержаны, потому что программное обеспечение Simulink вставило неявный блок Signal Conversion.
Таким образом, это сигнализирует, находятся в непрерывной памяти, программное обеспечение Simulink может автоматически вставить неявный блок Signal Conversion перед блочными входными портами инициатора вызова функции. Это может привести к задержке с одним шагом возвращающихся значений сигналов от вызова подсистем вызова функций. Задержки можно избежать путем обеспечения, что сигнал происходит из блока сигнала в системе вызова функции. Или, если задержка приемлема, вставьте блок Unit Delay перед затронутыми входными портами.
Условие | Рекомендуемое действие |
---|---|
Перечисленные блочные входные порты могли иметь неявный блок Signal Conversion. | Решите, приемлема ли задержка с одним шагом возвращающихся значений сигналов для перечисленных сигналов.
|
Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.
Блок Conversion сигнала
Блок Unit Delay
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.OutputSignalSampleTime
Найдите время непрерывной выборки, выходные сигналы нес плавающей точкой.
Сигналы нес плавающей точкой не могут представлять непрерывные переменные без потери информации.
Условие | Рекомендуемое действие |
---|---|
Сигналы с временами непрерывной выборки имеют тип данных нес плавающей точкой. | На идентифицированных сигналах или измените частоту дискретизации, чтобы быть дискретными или фиксированными на незначительном шаге ([0 1]). |
Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.
Что такое частота дискретизации?.
Что такое образцовое исключение советника? (Simulink Check)
ID проверки: mathworks.design.MergeBlkUsage
Идентифицируйте блоки Слияния с установками параметров, которые могут привести к неожиданному поведению, и справка перемещает вашу модель на упрощенный режим инициализации.
Осуществите эту проверку наряду с другими регистрациями Миграции на Упрощенный Обзор Режима Инициализации.
Упрощенный режим инициализации был представлен в R2008b, чтобы улучшить непротиворечивость результатов симуляции. Для получения дополнительной информации смотрите Упрощенный Режим Инициализации и Классический Режим Инициализации.
Эта Образцовая проверка Советника идентифицирует настройки в блоках Слияния в вашей модели, которая может вызвать проблемы, если вы используете классический режим инициализации. Это также рекомендует настройки для сопоставимого поведения блоков Слияния. Результаты подпроверок содержат два типа операторов: Отказавший и Предупреждение. Не пройдено операторы идентифицируют проблемы, которые необходимо решить вручную, прежде чем можно будет переместить модель на упрощенный режим инициализации. Операторы предупреждения идентифицируют проблемы или изменения в поведении, которое может произойти после миграции.
Условие | Рекомендуемое действие |
---|---|
Проверьте диагностическую установку во время выполнения блока Merge. |
|
Проверьте на Блоки модели, которые используют режим моделирования PIL. | Упрощенный режим инициализации не поддерживает Процессор в цикле (PIL) моделирование для моделей - ссылок. |
Проверьте на блоки библиотеки с экземплярами, которые не могут быть перемещены. | Исследуйте не пройдено результаты подпроверки на каждый блок, чтобы определить корректирующие действия. |
Проверьте на блоки Слияния единственного входного параметра. | Замените и блок Mux, используемый, чтобы произвести входной сигнал и блок Merge с одним мультивходным блоком Merge. Блоки Слияния единственного входного параметра не поддержаны в упрощенном режиме инициализации. |
Проверьте на корневые блоки Слияния, которые имеют незаданное Начальное выходное значение. | Если вы не задаете явное значение для Начального выходного параметра корневых блоков Слияния, то Симулинк использует начальное значение по умолчанию типа выходных данных. Корневой блок Merge является блоком Merge с выходным портом, который не соединяется с другим блоком Merge. Для получения информации о начальном значении по умолчанию смотрите Значения сигналов Инициализации. |
Проверьте на блоки Слияния с ненулевыми смещениями входного порта. | Очистите Позволение неравного параметра ширин порта блока Merge. ПримечаниеРассмотрите использование блоков Слияния только для элементов сигнала, которые требуют истинного слияния. Можно объединить другие элементы с объединенными элементами с помощью блока Concatenate. |
Проверьте на блоки Слияния, которые имеют несвязанные входные параметры или которые имеют входные параметры от неусловно выполняемых подсистем. | Определите Номер входного параметра блока Merge к количеству входных параметров блока Merge. Необходимо соединить каждый входной параметр с сигналом. Проверьте, что каждый входной параметр блока Merge управляется условно выполняемой подсистемой. Блоки слияния не могут управляться непосредственно Подсистемой Итератора или блоком, который не является условно выполняемой подсистемой. |
Проверьте на блоки Слияния с входными параметрами, которые объединены или переупорядочены за пределами условно выполняемых подсистем. | Проверьте, что комбинации или переупорядочение входных сигналов блока Merge происходят в условно выполняемой подсистеме. Такие проекты могут использовать Мультиплексор, Создателя Шины или Селекторные блоки. |
Проверьте на блоки Слияния с противоречивыми входными частотами дискретизации. | Проверьте, что входные сигналы к каждому блоку Merge имеют ту же Частоту дискретизации. Отказ сделать так мог привести к непредсказуемому поведению. Следовательно, упрощенный режим инициализации не позволяет противоречивые частоты дискретизации. |
Проверьте на блоки Слияния с несколькими входными портами, которые управляются единственным источником. | Проверьте, что блок Merge не имеет нескольких входных сигналов, которые управляются той же условно выполняемой подсистемой или условно выполняемым Блоком модели. |
Проверьте на блоки Слияния, что использование сигнализирует об объектах задать Начальное выходное значение. | Проверьте, что следующее поведение приемлемо. В упрощенном режиме инициализации объекты сигнала не могут задать Начальный выходной параметр блока Merge. В то время как можно все еще инициализировать выходной сигнал для блока Merge с помощью объекта сигнала, результат инициализации может быть перезаписан тем из блока Merge. ПримечаниеSimulink генерирует предупреждение, что начальное значение объекта сигнала было проигнорировано. |
ID проверки: mathworks.design.InitParamOutportMergeBlk
Идентифицируйте блоки Выходного порта и условные подсистемы с установками параметров, которые могут привести к неожиданному поведению, и справка перемещает вашу модель на упрощенный режим инициализации.
Осуществите эту проверку наряду с другими регистрациями Миграции на Упрощенный Обзор Режима Инициализации.
Упрощенный режим инициализации был представлен в R2008b, чтобы улучшить непротиворечивость результатов симуляции. Этот режим особенно важен для моделей, которые не задают начальные условия для условно выполняемых выходных портов подсистемы. Для получения дополнительной информации смотрите Упрощенный Режим Инициализации и Классический Режим Инициализации.
Эта Образцовая проверка Советника идентифицирует блоки Выходного порта и условные подсистемы в вашей модели, которая может вызвать проблемы, если вы используете упрощенный режим инициализации. Это также рекомендует настройки для сопоставимого поведения блоков Выходного порта. Результаты подпроверок содержат два типа операторов: Отказавший и Предупреждение. Не пройдено операторы идентифицируют проблемы, которые необходимо решить вручную, прежде чем можно будет переместить модель на упрощенный режим инициализации. Операторы предупреждения идентифицируют проблемы, или изменения в поведении могут произойти после миграции.
Условие | Рекомендуемое действие |
---|---|
Проверьте на блоки в Подсистеме Итератора, которые требуют прошедшего времени. | В иерархии Подсистемы Итератора не используйте блоки, которые требуют сервиса, который поддерживает время, которое протекло между двумя последовательным выполнением. Поскольку Подсистема Итератора может выполнить многократно в установленный срок шаг, концепция прошедшего времени не четко определена между двумя таким выполнением. Используя эти блоки в Итераторе Подсистема может вызвать неожиданное поведение. |
Проверьте на блоки Выходного порта, которые имеют конфликтные буферные требования сигнала. | Блок Outport имеет триггер вызова функции или прохождение сигнала зависимости по данным вызова функции через него, наряду со стандартными сигналами данных. Некоторые стандартные сигналы данных требуют явного буфера сигнала для инициализации выходного сигнала соответствующей подсистемы. Однако буферизация связанных с вызовом функции сигналов приводит к нарушению зависимостей данных вызова функции. Полагайте, что изменение модели передает связанные с вызовом функции сигналы через отдельный блок Outport. Для примеров нарушений зависимостей данных вызова функции смотрите модель в качестве примера Стандартный сигнал данных может потребовать дополнительной копии сигнала по одной из следующих причин:
|
Проверьте на блоки Выходного порта, которые управляются сигналом шины и чье Начальное выходное значение не является скаляром. | Для блоков Выходного порта, управляемых сигналами шины, классический режим инициализации не поддерживает структуры Начального условия (IC), в то время как упрощенный режим инициализации делает. Следовательно, при миграции модели от классики до упрощенного режима, задайте скаляр для Начального Выходного параметра. После того, как миграция завершается, чтобы задать различные начальные значения для различных элементов сигнала шины, использовать структуры IC. Для получения дополнительной информации смотрите, Создают Начальные Структуры Условия. |
Проверьте на блоки Выходного порта, которые требуют явной копии сигнала. | Явная копия сигнала шины управление блоком Outport требуется для инициализации выходного сигнала соответствующей подсистемы. Вставьте блок Signal Conversion перед блоком Outport, затем установите Выходной параметр блока Signal Conversion к Стандартный сигнал данных может потребовать дополнительной копии сигнала по одному или нескольким следующих причин:
|
Проверьте на объединенные блоки Выходного порта, которые наследовали Начальное Выходное значение от блоков Выходного порта, которые были сконфигурированы, чтобы сбросить, когда блоки становятся отключенными. | Когда блоки Выходного порта будут управлять блоком Merge, не устанавливайте их Вывод когда отключенные параметры к reset . |
Проверьте на объединенные блоки Выходного порта, которые управляются вложенными условно выполняемыми подсистемами. | Определите, приемлемо ли новое поведение блоков Выходного порта. Если это не приемлемо, измените модель, чтобы составлять новое поведение прежде, чем мигрировать на упрощенный режим инициализации. |
Проверьте на объединенные блоки Выходного порта, которые сбрасывают, когда блоки отключены. | Установите Вывод когда отключенный параметр блока Outport к Для получения дополнительной информации смотрите Выходной порт. |
Проверьте на блоки Выходного порта, которые имеют неопределенное Начальное выходное значение с недопустимыми начальными источниками условия. | Проверьте, что следующее поведение приемлемо. Когда Начальный выходной параметр не задан ( Для упрощенного режима инициализации допустимые источники Выходной порт могут наследоваться блоки, Начальное выходное значение от: Постоянное, Начальное Условие, Слияние (с начальным выводом), диаграмма Stateflow, модель - ссылка вызова функции или условно выполняемые блоки подсистемы. |
Проверьте блоки Выходного порта, которые имеют автоматические переходы уровня. | Simulink вставил блок Rate Transition во входном параметре блока Outport. Задайте Начальный выходной параметр для каждого блока Outport. В противном случае выполните следующую процедуру:
|
Проверьте блоки Выходного порта, которые имеют специальное требование устройства хранения данных сигнала и имеют неопределенное Начальное выходное значение. | Проверьте, что следующее поведение приемлемо. Задайте Начальный выходной параметр для блока Outport. Установите это значение к |
Проверьте Initial установка вывода блоков Выходного порта, которые сбрасывают, когда они отключены. | Задайте Начальный выходной параметр блока Outport. Необходимо задать Начальное выходное значение для блоков, которые сконфигурированы, чтобы сбросить, когда они становятся отключенными. |
Проверьте Initial установка вывода на блоки Выходного порта, которые проходят через сигнал зависимости по данным вызова функции. | Вы не можете задать Начальное выходное значение для блока Outport, потому что сигналы зависимости по данным вызова функции проходят через него. Установить Начальное выходное значение:
|
Проверьте на блоки Выходного порта, что использование сигнализирует об объектах задать Начальное выходное значение. | Проверьте, что следующее поведение приемлемо. В упрощенном режиме инициализации объекты сигнала не могут задать Начальный выходной параметр блока Outport. Можно все еще инициализировать сигналы ввода или вывода для блока Outport с помощью объектов сигнала, но результаты инициализации могут быть перезаписаны теми из блока Outport. ПримечаниеЕсли вы работаете с условно выполняемым блоком Outport подсистемы, Simulink генерирует предупреждение, что начальное значение объекта сигнала было проигнорировано. |
Проверьте на блоки библиотеки с экземплярами, которые имеют предупреждения. | Исследуйте результаты подпроверки предупреждения на каждый блок прежде, чем мигрировать на упрощенный режим инициализации. |
Проверьте на объединенные блоки Выходного порта, которые или не связаны или связаны с блоком Ground. | Проверьте, что следующее поведение приемлемо. Блок Outport управляет блоком Merge, но его входные параметры или не связаны или связаны, чтобы Основать блоки. В классическом режиме инициализации несвязанные или основанные выходные порты не обновляют сигнал слияния, даже когда их родительский элемент условно выполнился, подсистемы выполняются. В упрощенном режиме инициализации, однако, эти выходные порты обновят сигнал слияния со значением нуля, когда их родительский элемент условно выполнился, подсистемы выполняются. |
Проверьте на блоки Выходного порта, которые получают Начальное выходное значение из входного сигнала, когда они перемещаются. | Проверьте, что следующее поведение приемлемо. Начальный выходной параметр блока Outport не задан. В результате упрощенный режим инициализации примет, что Начальное выходное значение для блока Outport выведено от входного сигнала. Это предположение может привести к различному поведению инициализации. Если это поведение не приемлемо, измените свою модель, прежде чем вы мигрируете на упрощенный режим инициализации. |
Проверьте на внешние блоки Выходного порта, которые имеют явный Initial вывод. | Проверьте, что следующее поведение приемлемо. В классическом режиме инициализации, Initial вывод и Вывод, когда отключенные параметры блока Outport должны совпадать с теми из их исходных блоков Выходного порта. В упрощенном режиме инициализации Simulink устанавливает Начальный выходной параметр внешних блоков Выходного порта к |
Проверьте на условно выполняемые подсистемы, которые распространяют контекст выполнения через выходной контур. | Проверьте, что следующее поведение приемлемо. Распространить контекст выполнения через параметр контура подсистемы выбран для подсистемы. Контекст выполнения будет все еще распространен через входные контуры; однако, распространение будет отключено на выходной стороне для инициализации в упрощенном режиме инициализации. |
Проверьте на блоки, что читает входной параметр из условно выполняемых подсистем во время инициализации. | Проверьте, что следующее поведение приемлемо. Некоторые блоки, такие как блок Discrete-Time Integrator, читают свои входные параметры из условно выполняемых подсистем во время инициализации в классическом режиме инициализации. Simulink выполняет этот шаг как метод оптимизации. Эта оптимизация не позволена в упрощенном режиме инициализации, потому что вывод условно выполняемой подсистемы на первом временном шаге после инициализации может отличаться, чем начальное значение, объявленное в соответствующем блоке Outport. В частности, это несоответствие происходит, если подсистема активна на первом временном шаге. |
Проверьте на конфликт миграции для блоков Выходного порта, которые используют Dialog в качестве Источника начального выходного значения. | Другие экземпляры блоков Выходного порта с той же библиотекой соединяются или не могут быть перемещены или перемещаются другим способом. Рассмотрите результаты Проверки на блоки библиотеки с экземплярами, которые не могут быть перемещены, чтобы узнать о различных миграционных путях для других экземпляров каждого блока Outport. Блок Outport будет поддерживать свои текущие настройки и использовать его заданное Начальное выходное значение. |
Проверьте на конфликт миграции для блоков Выходного порта, которые используют Input signal в качестве Источника начального выходного значения. | Другие экземпляры блоков Выходного порта с той же библиотекой соединяются или не могут быть перемещены или перемещаются другим способом. Рассмотрите результаты Проверки на блоки библиотеки с экземплярами, которые не могут быть перемещены, чтобы узнать о различных миграционных путях для других экземпляров каждого блока Outport. Блок Outport в настоящее время задает Initial вывод После миграции Источник параметра начального выходного значения будет собираться в |
Проверьте на конфликт миграции для блоков Выходного порта, которые имеют семантику SimEvents®. | Другие экземпляры блоков Выходного порта с той же библиотекой соединяются или не могут быть перемещены или перемещаются другим способом. Рассмотрите результаты Проверки на блоки библиотеки с экземплярами, которые не могут быть перемещены, чтобы узнать о различных миграционных путях для других экземпляров каждого блока Outport. Блоки Выходного порта продолжат использовать Начальное выходное значение |
Проверьте на конфликт миграции для самых внутренних блоков Выходного порта с входным параметром переменного размера и незаданным Initial вывод. | Для этих блоков Выходного порта размер сигнала отличается только, когда родительская подсистема блока повторно включена. Поэтому Simulink неявно принимает, что Начальный выходной параметр равен 0, даже при том, что параметр не задан, []. Следовательно, если вы не задаете параметр, Образцовый Советник явным образом установит параметр на 0, когда модель будет перемещена на упрощенный режим инициализации. Другие экземпляры блоков Выходного порта с той же библиотекой соединяются или не могут быть перемещены или перемещаются другим способом. Рассмотрите результаты Проверки на блоки библиотеки с экземплярами, которые не могут быть перемещены, чтобы узнать о различных миграционных путях для других экземпляров каждого блока Outport. |
Проверьте на конфликт миграции для блоков Выходного порта, которые используют наземное значение по умолчанию в качестве Initial вывод. | Initial параметра вывод установлен в [] (пустая матрица) и источник Выходного порта, является недопустимым начальным источником условия. Таким образом блок использует начальное значение по умолчанию в качестве начального вывода в упрощенном режиме инициализации. Другие экземпляры блоков Выходного порта с той же библиотекой соединяют или имеют ошибки или перемещаются по-другому. |
Проверьте на конфликт миграции для объединенных блоков Выходного порта без явной спецификации Initial вывод. | Рассмотрите результаты Проверки подпроверки на блоки библиотеки с экземплярами, которые не могут быть перемещены, чтобы узнать о различных миграционных путях для других экземпляров каждого блока Outport. Для остающихся блоков Выходного порта Initial вывод установлен в [] (пустая матрица), и Вывод, когда отключено установлен в held соответственно в упрощенном режиме инициализации. |
ID проверки: mathworks.design.DiscreteBlock
Идентифицируйте блоки Интегратора Дискретного времени с установками параметров, которые могут привести к неожиданному поведению, и справка перемещает вашу модель на упрощенный режим инициализации.
Осуществите эту проверку наряду с другими регистрациями Миграции на Упрощенный Обзор Режима Инициализации.
Упрощенный режим инициализации был представлен в R2008b, чтобы улучшить непротиворечивость результатов симуляции. Для получения дополнительной информации смотрите Упрощенный Режим Инициализации и Классический Режим Инициализации.
Эта Образцовая проверка Советника идентифицирует настройки в блоках Интегратора Дискретного времени в вашей модели, которая может вызвать проблемы, если вы используете упрощенный режим инициализации. Это также рекомендует настройки для сопоставимого поведения блоков Интегратора Дискретного времени. Результаты подпроверок содержат два типа операторов: Отказавший и Предупреждение. Не пройдено операторы идентифицируют проблемы, которые необходимо решить вручную, прежде чем можно будет переместить модель на упрощенный режим инициализации. Операторы предупреждения идентифицируют проблемы или изменения в поведении, которое может произойти после миграции.
Условие | Рекомендуемое действие |
---|---|
Проверьте на блоки Интегратора Дискретного времени, установка условия Начальной буквы параметра которых установлена в | Определите, приемлемо ли новое поведение блоков Интегратора Дискретного времени. Если это не приемлемо, измените модель, чтобы составлять новое поведение прежде, чем мигрировать на упрощенный режим инициализации. |
Проверьте на блоки Интегратора Дискретного времени, Начальный параметр установки условия которых установлен в | Используйте периодическую частоту дискретизации для блока или установите установку Initial Condition на |
Проверьте на блоки в Подсистеме Итератора, которые требуют прошедшего времени. | В иерархии Подсистемы Итератора не используйте блоки, которые требуют сервиса, который поддерживает время, которое протекло между двумя последовательным выполнением. Поскольку Подсистема Итератора может выполнить многократно в установленный срок шаг, концепция прошедшего времени не четко определена между двумя таким выполнением. Используя эти блоки в Итераторе Подсистема может вызвать неожиданное поведение. |
Не запускайте эту регистрацию изоляции. Осуществите эту проверку наряду с другими регистрациями Миграции на Упрощенный Обзор Режима Инициализации.
ID проверки: mathworks.design.ModelLevelMessages
Идентифицируйте настройки в Блоках модели и образцовых параметрах конфигурации, которые могут привести к неожиданному поведению, и справка перемещает вашу модель на упрощенный режим инициализации.
Упрощенный режим инициализации был представлен в R2008b, чтобы улучшить непротиворечивость результатов симуляции. Для получения дополнительной информации смотрите Упрощенный Режим Инициализации и Классический Режим Инициализации.
Эта Образцовая проверка Советника идентифицирует проблемы в образцовых параметрах конфигурации и Блоки модели в вашей модели, которая может вызвать проблемы, когда вы мигрируете на упрощенный режим инициализации. Результаты подпроверок содержат два типа операторов: Отказавший и Предупреждение. Не пройдено операторы идентифицируют проблемы, которые необходимо решить вручную, прежде чем можно будет переместить модель на упрощенный режим инициализации. Операторы предупреждения идентифицируют проблемы или изменения в поведении, которое может произойти после миграции.
После выполнения этой Образцовой проверки на непротиворечивость Советника, если вы нажимаете кнопку Explore Result, сообщения принадлежат только блокам, которые не являются ссылками библиотеки.
Поскольку трудно отменить эти изменения, выберите File> Save Restore Point As, чтобы поддержать вашу модель прежде, чем мигрировать на упрощенный режим инициализации.
Для получения дополнительной информации смотрите Образцовые Параметры конфигурации: Диагностика Возможности соединения.
Условие | Рекомендуемое действие |
---|---|
Проверьте, что все Блоки модели используют упрощенный режим инициализации. | Переместите модель, на которую ссылается Блок модели к упрощенному режиму инициализации, затем переместите топ-модель. |
Проверьте упрощенную установку режима инициализации | Установите Параметры конфигурации> обнаружение инициализации Underspecified к |
Нажатие на Modify Settings вызывает следующее:
Параметр модели устанавливается на simplified
Если блоку Outport установили Начальный выходной параметр на пустой символьный вектор, []
, то параметр SourceOfInitialOutputValue
устанавливается на Входной сигнал.
Если Выходной порт имеет пустой Initial вывод и сигнал переменного размера, то Initial вывод обнуляется.
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, можно исключить блоки и графики от этой проверки.
ID проверки: mathworks.design.DiagnosticSFcn
Проверьте границы массивов и непротиворечивость решателя, если Блоки s-function находятся в модели.
Подтверждает, придерживаются ли Блоки s-function правил непротиворечивости решателя ОДУ, что Simulink обращается к своим встроенным блокам.
Условие | Рекомендуемое действие |
---|---|
Противоречивость данных решателя установлена в none . | В диалоговом окне Configuration Parameters, противоречивости данных Решателя набора к warning или error . |
Границы массивов превысили, установлен в none . | В диалоговом окне Configuration Parameters границы набора Массивов превысили к warning или error
|
Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.
ID проверки: mathworks.design.characterEncoding
Проверьте на символы, которые несовместимы с текущим кодированием
Проверьте на символы в образцовом файле, который не может быть представлен в текущем кодировании. Они могут вызвать ошибки во время моделирования и могут быть повреждены при сохранении модели.
Условие | Рекомендуемое действие |
---|---|
Найдены несовместимые символы | Измените текущее кодирование на кодирование, заданное в образцовом файле, с помощью 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.Update
Проверьте на общие блочные проблемы обновления.
Проверьте блоки в модель для проблем совместимости, следующих из использования новой версии программного обеспечения Simulink.
Условие | Рекомендуемое действие |
---|---|
Блоки с найденными проблемами совместимости. | Нажмите Modify, чтобы устранить обнаруженные блочные проблемы. |
Проверьте состояние обновления на S-функции API Уровня 2. | Рассмотрите заменяющий S-функции Уровня 1 на Уровень 2. |
Нажатие на Modify заменяет блоки от предыдущего релиза программного обеспечения Simulink с последними версиями.
ID проверки: mathworks.design.UpdateRequireCompile
Проверьте на общие блочные проблемы обновления.
Проверьте блоки на проблемы совместимости, следующие из обновления до новой версии программного обеспечения Simulink. Некоторые блочные обновления требуют набора информации или данных, когда модель находится в режиме компиляции. Для этой проверки модель установлена в скомпилированный режим и затем проверена на обновления.
Условие | Рекомендуемое действие |
---|---|
Модель содержит Интерполяционную таблицу или Интерполяционную таблицу (2D) блоки и некоторые блоки задают Самый близкий Входной параметр Использования или Входной параметр Использования Выше для метода поиска. | Замените блоки Интерполяционной таблицы и Интерполяционную таблицу (2D) блоки с n-D блоками Интерполяционной таблицы. Не применяйте Самый близкий Входной параметр Использования или Входной параметр Использования Выше для методов поиска; выберите другую опцию. |
Модель содержит Интерполяционную таблицу или Интерполяционную таблицу (2D) блоки и некоторые блоки выполняют умножение сначала во время интерполяции. | Замените блоки Интерполяционной таблицы и Интерполяционную таблицу (2D) блоки с n-D блоками Интерполяционной таблицы. Однако, потому что n-D блок Lookup Table выполняет деление сначала, эта замена может вызвать числовое различие в результате. |
Модель содержит Интерполяционную таблицу или Интерполяционную таблицу (2D) блоки. Некоторые из этих блоков задают Экстраполяцию Интерполяции как метод Поиска, но их ввод и вывод не является тем же типом с плавающей точкой. | Замените блоки Интерполяционной таблицы и Интерполяционную таблицу (2D) блоки с n-D блоками Интерполяционной таблицы. Затем измените метод экстраполяции или типы данных порта для блочной замены. |
Модель содержит блоки Единичной задержки с набором Частоты дискретизации к | Замените блоки Единичной задержки на Блоки памяти. |
Нажатие на Modify заменяет блоки от предыдущего релиза программного обеспечения Simulink с последними версиями.
ID проверки: mathworks.design.UseSLXFile
Проверьте, что модель является форматом SLX, в котором сохраняют.
Проверьте, является ли модель форматом SLX, в котором сохраняют.
Условие | Рекомендуемое действие |
---|---|
Модель не формат SLX, в котором сохраняют, | Полагайте, что обновление до формата файла SLX использует последние функции в Simulink. |
Можно осуществить эту проверку моделей библиотеки.
Проекты Simulink могут помочь вам обновить модели до формата SLX и сохранить историю версии файла в системе контроля версий. Смотрите Файлы Модели Обновления к SLX и Истории Версии Заповедника.
ID проверки: mathworks.simulink.SB2SL.Check
Проверьте, что модель не имеет устаревших блоков SB2SL.
Проверьте, содержит ли модель устаревшие блоки SB2SL.
Условие | Рекомендуемое действие |
---|---|
Модель содержит устаревшие блоки SB2SL | Рассмотрите обновление модели к текущим блокам SB2SL. |
Нажатие на Update SB2SL Blocks заменяет блоки на последние версии.
ID проверки: mathworks.design.SLXModelProperties
Проверьте на отредактированные образцовые свойства истории
Проверьте модели на отредактированные Образцовые значения свойств Истории, которые могли использоваться с заменой ключевого слова инструмента системы контроля версий. Эта замена ключевого слова несовместима с форматом файла SLX.
В формате файла MDL можно сконфигурировать некоторые образцовые свойства использовать замену ключевого слова инструмента системы контроля версий. Если вы сохраняете свою модель в формате SLX, инструменты системы контроля версий не могут выполнить замену ключевого слова. Информация в образцовом файле от такой замены ключевого слова кэшируется, когда вы сначала сохранили файл MDL как SLX, и не обновляется снова. История Model Properties разделяет на области и Образцовые Информационные блоки на вашем образцовом показе устаревшая информация с тех пор.
Условие | Рекомендуемое действие |
---|---|
Отредактированные образцовые свойства истории | Вручную или автоматически сброс свойства к значениям по умолчанию. Нажмите кнопку, чтобы сбросить, или осмотреть и изменить эти свойства вручную, открыть диалоговое окно Model Properties и взгляд в панели Истории. |
Можно осуществить эту проверку моделей библиотеки.
ID проверки: mathworks.design.ModelInfoKeywordSubstitution
Используйте эту проверку, чтобы найти Образцовые Информационные блоки, которые могут быть изменены внешними инструментами системы контроля версий через замену ключевого слова.
Эта проверка ищет векторы символов в блоке Model Info, заключенном в знаках доллара, которые могут быть перезаписаны внешним инструментом системы контроля версий. Используя независимый источник расширение ключевого слова инструмента управления может повредить ваши образцовые файлы, когда вы представляете их. Замена ключевого слова не доступна в формате файла модели SLX.
Для более гибкого интерфейса к инструментам системы контроля версий используйте проект Simulink вместо блока Model Info. Займитесь Системой контроля версий с Проектами.
Условие | Рекомендуемое действие |
---|---|
Блок Model Info содержит поля как это: | Рассмотрите список полей в отчете, затем удалите векторы символов ключевого слова из блока Model Info. |
ID проверки: mathworks.design.ModelInfoConfigurationManager
Используйте эту проверку, чтобы найти Образцовые Информационные блоки, которые используют Менеджер конфигурации.
Образцовые Информационные блоки с помощью Менеджера конфигурации позволяют опасную замену ключевого слова с помощью внешних инструментов системы контроля версий. Используя независимый источник расширение ключевого слова инструмента управления может повредить ваши образцовые файлы, когда вы представляете их. Замена ключевого слова не доступна в формате файла модели SLX. Менеджер конфигурации для блока Model Info будет демонтирован в будущем релизе.
Для более гибкого интерфейса к инструментам системы контроля версий используйте проект Simulink вместо блока Model Info. Займитесь Системой контроля версий с Проектами.
Условие | Рекомендуемое действие |
---|---|
Блок Model Info использует Менеджер конфигурации. | Нажмите Remove the Configuration Manager. |
ID проверки: mathworks.design.Aeroblks.CheckDOF
Блоки списков 3DoF и 6DoF устарели.
Эта проверка ищет 3DoF и 6DoF блоки от версий библиотеки до 3,13 (R2014a).
Условие | Рекомендуемое действие |
---|---|
Найдены блоки, сконфигурированные со старыми версиями 3DoF или 6DoF блоки. | Нажмите Replace 3DoF и 6DoF Блоки, чтобы заменить блоки на последние версии. |
Нажатие на Replace 3DoF и 6DoF Блоки заменяет блоки на последние версии.
Уравнения движения (Aerospace Blockset)
ID проверки: mathworks.design.Aeroblks.CheckFG
Блоки списков сконфигурировали, чтобы использовать версии FlightGear, которые устарели или не поддерживаемые.
Эти поисковые запросы проверки и блоки списков, сконфигурированные, чтобы использовать версии FlightGear, которые устарели или не поддерживаемые.
Условие | Рекомендуемое действие |
---|---|
Блоки, сконфигурированные со старыми версиями FlightGear, найдены. | Нажмите блоки Update FlightGear, чтобы изменить блочные настройки к последней поддерживаемой версии FlightGear. Затем загрузите последнюю версию FlightGear, который поддерживает MATLAB. |
Нажатие на блоки Update FlightGear изменяет блочные настройки к последней поддерживаемой версии FlightGear.
Интерфейсы средства моделирования полета (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.
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.
ID проверки: mathworks.design.CheckAndUpdateOldMaskTabnames
Эта проверка идентифицирует замаскированные блоки, которые задают вкладки в диалоговом окне маски использование параметра MaskTabNames
.
Эта проверка идентифицирует замаскированные блоки, которые используют параметр MaskTabNames
, чтобы программно создать вкладки в диалоговом окне маски. Начиная с R2013b диалоговые средства управления используются к параметрам группы во вкладке на диалоговом окне маски.
Условие | Рекомендуемое действие |
---|---|
Блоки маскированные, которые используют параметр MaskTabNames , чтобы создать вкладки программно в диалоговом окне маски, найдены. | Нажмите Upgrade, доступный в разделе Action. Если блоки были обновлены, осуществлял проверку снова. |
Можно осуществить эту проверку моделей библиотеки.
ID проверки: mathworks.design.StowawayDoubles
Для строгого дизайна с одинарной точностью эта проверка идентифицирует блоки, которые представляют с двойной точностью операции и неоптимальные образцовые настройки.
Для строгого дизайна с одинарной точностью эта проверка идентифицирует блоки, которые представляют с двойной точностью операции и неоптимальные образцовые настройки.
Условие | Рекомендуемое действие |
---|---|
С двойной точностью операции с плавающей точкой найдены в модели. | VerifyThat:
|
Модель использует стандарт библиотеки, который не оптимален для строго-единственных проектов. | VerifyThat:
|
Логические сигналы не реализованы как булевы данные. | VerifyThat:
|
Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.
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'
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 от блоков мультиуровня, изменяют эти файлы, чтобы признать, что параметр как массив ячеек пар удваивается. |
ID проверки: mathworks.design.ParameterTuning
Используйте эту проверку, чтобы идентифицировать проблемы в модели, которые происходят, когда вы инициализируете параметры или настраиваете их.
Эта проверка сканирует вашу модель для инициализации параметра и настраивающихся проблем как:
Несоответствие уровня между блоками
Разделитесь на нулевую проблему в условно выполняемых подсистемах
Недопустимое значение порта управления в Индексных блоках Вектора
Условие | Рекомендуемое действие |
---|---|
Модель имеет проблемы перехода уровня. | Выберите переход уровня указателя Automatically для передачи данных в панели Решателя образцовых параметров конфигурации. |
Модель имеет деление нулевой проблемой в условно выполняемой подсистеме с портом управления. | В командной строке, выполнении set_param(control_port,'DisallowConstTsAndPrmTs', 'on') |
Модель имеет недопустимое значение порта управления в условно выполняемой подсистеме. | В командной строке, выполнении set_param(control_port,'DisallowConstTsAndPrmTs', 'on') |
Выберите модель Upgrade, чтобы решить вопросы в модели, связанной с инициализацией параметра и настройкой.
ID проверки: mathworks.design.CheckVirtualBusAcrossModelReference
Проверьте, что виртуальная шина сигнализирует о той перекрестной модели - ссылке контуры.
Эта проверка идентифицирует корневой уровень Inport и блоки Outport в моделях, на которые ссылаются, и Блоках модели с виртуальной шиной выходные параметры, которые требуют, чтобы обновления изменились на невиртуальные сигналы шины.
Если проверка идентифицирует проблемы, нажмите Update Model, чтобы преобразовать корневой уровень Inport и блоки Outport, сконфигурированные для виртуальных шин, чтобы использовать невиртуальные шины в этих ситуациях:
Для корневого уровня блоки Inport — Включают Вывод как невиртуальный параметр шины и вставляют блок Signal Conversion после блока Inport. Блок Signal Conversion сконфигурирован, чтобы вывести виртуальную шину.
Для блоков Выходного порта корневого уровня — Включают Вывод как невиртуальную шину в параметре родительской модели.
Для Блоков модели — порты For, блоки Выходного порта которых были обновлены, чтобы решить проблемы, вставляют блок Signal Conversion после соответствующих портов Блока модели. Блок Signal Conversion сконфигурирован, чтобы вывести виртуальную шину.
Чтобы решить вопросы, нажмите Upgrade Model.
Запустите Анализировать иерархию модели и продолжите, последовательность обновления проверяют модель верхнего уровня и затем вниз через иерархию модели - ссылки.
Нажатие на Upgrade Model преобразовывает затронутый корневой уровень Inport и блоки Outport, сконфигурированные для виртуальных шин, чтобы использовать невиртуальные шины в моделях где вы:
Используйте управление прототипом функции
Выполните генерацию Кода С++ с опцией I/O arguments step method
.
Также можно изменить настройки спецификации функции генерации Кода С++ на Default step method
:
В Параметрах конфигурации> Генерация кода> Интерфейсная панель, нажмите Configure C ++ Class Interface.
В диалоговом окне, установленном Функциональный параметр спецификации на Default step method
.
Используйте шины, которые имеют сигналы переменной размерности
Используйте связанный неавтоматический класс памяти для блоков-сигналов Выходного порта
Преобразование для неавтоматического класса памяти происходит, только если у вас есть целевая лицензия генерации, которой требует модель. Например, цель ERT требует лицензии Embedded Coder.
Используйте модели Экспорта функций, где блок Outport управляется невиртуальной шиной
Имейте Блоки модели, что эталонные модели, содержащие блоки Выходного порта, которые были зафиксированы — Нажатие Upgrade Model, обновляют Блоки модели, ссылающиеся на модели, которым зафиксировала блоки Выходного порта Анализировать иерархия модели, и продолжите проверку последовательности обновления.
ID проверки: mathworks.design.DSPFrameUpgrade
Эта проверка идентифицирует пользовательские блоки библиотеки в модели, которые зависят от состояния кадра сигнала.
Описание
Эта проверка ищет пользовательские блоки библиотеки в модели, которые зависят от состояния кадра сигнала. Проверка анализирует блоки, рекомендует меры и приводит причины для мер. Необходимо сделать меры вручную.
Результаты и рекомендуемые действия
Условие | Рекомендуемое действие |
---|---|
Проверка находит пользовательские блоки библиотеки, которые зависят от состояния кадра сигнала. | Следуйте рекомендации, данной Советником по вопросам Обновления. |
Возможности и ограничения
Можно осуществить эту проверку только пользовательских блоков библиотеки в модели.
Необходимо сделать меры вручную.
Эта проверка появляется, только если у вас есть Система DSP установленный Toolbox™.
Смотрите также
Основанная на кадре обработка (DSP System Toolbox)
ID проверки: 'mathworks.design.CheckForSFcnUpgradeIssues'
Используйте это проверяет вашу модель, чтобы идентифицировать проблемы совместимости обновления вашей S-функции. Эти проблемы могут включать использование 32-битных API, компиляцию с несовместимыми опциями или использование отдельных комплексных API устаревших. Некоторые общие вопросы и информация, связанная с мерами, описаны в разделе результатов и рекомендаций ниже.
При обновлении S-функций, чтобы использовать функции в последнем релизе, эта проверка сканирует модель, чтобы предостеречь от проблем несовместимости обновления S-функции. Если результат этой проверки дает предупреждение или ошибку, зафиксируйте свои S-функции MEX C согласно описанию.
Условие | Рекомендуемое действие |
---|---|
Сделанные на заказ S-функции не поддержаны. | Перекомпилируйте свою S-функцию с доступными совместимыми опциями. Смотрите Сделанный на заказ файл MEX, Не Поддержанный В Текущем Релизе (MATLAB) для получения дополнительной информации. |
S-функция не компилируется с последним API ( | Перекомпилируйте использование последнего флага ( |
S-функция использует 32-битные функции. | Измените свой код согласно инструкциям в Вызовах файла MEX 32-битная Функция (MATLAB). |
S-функция использует удержанные от использования отдельные комплексные API (mexGetPi, mexSetPi, mexGetImagData, mexSetImagData). | Используйте чередованные комплексные API и перекомпилируйте ваш код с последним флагом ( |
S-функция использует удержанный от использования небезопасный типом API данных (mxGetData, mexSetData). | Используйте безопасные с точки зрения типов API данных и перекомпилируйте ваш код. Смотрите Вызовы файла MEX Невведенная Функция Доступа к данным (MATLAB) для получения дополнительной информации. |
S-функция скомпилирована с будущим релизом и не поддержана в текущем релизе. | Смотрите файл MEX, Созданный В Релизе MATLAB, Не Поддержанном В Текущем Релизе (MATLAB), чтобы перекомпилировать ваши файлы. |
ID проверки: mathworks.design.CheckRapidAcceleratorSignalLogging
При моделировании модели в быстром режиме Accelerator используйте эту проверку, чтобы найти, что сигналы вошли в систему модель, которые глобально отключены. Быстрый режим Accelerator поддерживает журналирование сигнала. Используйте эту проверку, чтобы включить сигнал, регистрирующий глобально.
Эта проверка сканирует вашу модель, чтобы видеть, находится ли моделирование в быстром режиме Accelerator и содержит ли модель сигналы с журналированием сигнала. Если проверка находит экземпляр, и журналирование сигнала глобально отключено, опция, чтобы включить журналирование сигнала глобально появляется.
Условие | Рекомендуемое действие |
---|---|
Режим Simulation не является быстрым акселератором. | 'none'. Можно включить сигнал, входящий в систему быстрый режим Accelerator. |
Режим Simulation является быстрым акселератором. Обновление Советник не нашло сигналы с журналированием сигнала включенными. | 'none'. Модель не использует журналирование сигнала. Включите журналирование сигнала для сигналов и глобально если вы хотите регистрировать сигналы. |
Режим Simulation является быстрым акселератором. Обновите найденные сигналы Советника с включенным журналированием сигнала. Однако глобальная установка для журналирования сигнала была отключена. | Включите сигнал, регистрирующий глобально, если вы хотите регистрировать сигналы с включенным журналированием сигнала. |
Журналирование сигнала было уже глобально включено. | 'none'. |
Выбор Modify включает сигнал, регистрирующий глобально в вашей модели.
ID проверки: mathworks.design.VirtualBusUsage
Входные сигналы контрольной шины для набора блоков.
Входные сигналы контрольной шины для набора блоков.
Запуск в R2015b, виртуальная шина сигнализирует о входных параметрах к блокам, которые требуют нешины, или невиртуальный входной параметр шины может вызвать ошибку. Примеры блоков, которые могут задать объект шины как их тип выходных данных, включают блок Bus Creator и корневой блок Inport. Блоки, которые вызывают ошибку, когда у них есть виртуальный входной параметр шины в этой ситуации:
“()” Присвоение
Задержка
Блок Delay вызывает ошибку, только если вы используете диалоговое окно Block Parameters для:
Установите начальное условие, которое является структурой MATLAB или нулем.
Задайте значение для имени состояния.
Переставьте размерность
Изменение
Селектор
Единичная задержка
Блок Unit Delay вызывает ошибку, только если вы используете диалоговое окно Block Parameters для:
Установите начальное условие, которое является структурой MATLAB или нулем.
Задайте значение для имени состояния.
Векторная конкатенация
Условие | Рекомендуемое действие |
---|---|
Виртуальный входной параметр сигнала шины к этим блокам:
| В Советнике по вопросам Обновления нажмите Modify. Проверка вставляет блок Bus to Vector, чтобы попытаться преобразовать виртуальные входные сигналы шины в векторные сигналы. Для проблем, которые Советник по вопросам Обновления идентифицирует, но не может зафиксировать, изменить модель вручную. Для получения дополнительной информации смотрите Правильные Шины, Используемые в качестве Векторов. |
Нажатие на Modify вставляет блок Bus to Vector во входных портах блоков.
Для многих моделей, запуская Советника по вопросам Обновления изменяет вашу модель так, чтобы сигналы шины не были обработаны как векторы. Однако для некоторых моделей можно столкнуться с проблемами совместимости даже после осуществления проверки. Измените свою модель вручную, чтобы решить те проблемы.
После того, как вы компилируете модель с помощью Советника по вопросам Обновления, Редактор Simulink иногда указывает, что необходимо сохранить модель (модель грязна), даже при том, что вы не вносили изменения. Чтобы препятствовать тому, чтобы эта проблема повторно произошла для этой модели, сохраните модель.
Моделирование шаблона | Проблема | Решение |
---|---|---|
Блок памяти Хранилища данных с набором Типа данных к | Блок памяти Хранилища данных, связанная Запись Чтения или Хранилища данных Хранилища данных которого блокирует данные сигнала шины чтения или шины записи, должен использовать объект шины. | В Блоке памяти Хранилища данных, набор Тип данных сигнализируют об атрибуте к |
Выходной параметр блока Conversion сигнала совпадает с типом входной шины | Блок Signal Conversion, Выходной параметр которого установлен в Блок Signal Conversion, Выходной параметр которого установлен в | Чтобы создать копию входного сигнала, установите Вывод на |
Объедините, Переключатель или Многопортовый блок switch с несколькими входными параметрами шины | Объедините, Переключатель, или Многопортовые блоки switch с несколькими входными параметрами шины требуют, чтобы те входные параметры имели те же имена и иерархию. | Реконфигурируйте модель так, чтобы входные параметры шины имели те же имена и иерархию. |
Корневой блок Inport, выводящий виртуальную шину и задающий значение для размерностей Порта | Корневой блок Inport, что выходные параметры к виртуальной шине должны наследовать размерности. | Установите атрибут сигнала размерностей Порта блока Inport на |
Мультиплексируйте блок с невиртуальными входными параметрами шины | Блок Mux не может принять невиртуальные сигналы шины. | Чтобы обработать вывод как массив, замените блок Mux на блок Vector Concatenate. Если вы хотите виртуальную шину вывод, используйте блок Bus Creator, чтобы объединить сигналы. |
Соедините шиной к блоку Vector без виртуального входного параметра сигнала шины | Сигналу нешины не нужен блок Bus to Vector. | Удалите блок Bus to Vector. |
Блок Assignment с виртуальными входными параметрами шины | Советник по вопросам Обновления преобразовывает входной параметр шины порта | Добавьте блок Bus to Vector перед блоком Assignment. |
S-функция с помощью невиртуальной шины | S-функция, которая не является S-функцией Уровня 2 C, не поддерживает невиртуальные сигналы шины. | Измените S-функцию, чтобы быть S-функцией Уровня 2 C. Рассмотрите использование блока S-Function Builder, чтобы создать S-функцию Уровня 2 C. |
Диаграмма Stateflow с параметризованным типом данных | В диаграмме Stateflow вы не можете параметризовать тип данных ввода или вывода с точки зрения другого ввода или вывода, если тип данных является объектом шины. | Для параметризованного порта, Типа данных набора к |
Подсистема с автобусными перевозками в диаграмме Stateflow | Блок Inport в подсистеме в диаграмме Stateflow требует типа данных Object шины, если его сигнал является шиной. | В блоке Inport, Типе данных набора к |
Оснуйте блок, используемый в качестве источника шины | Выходной сигнал блока Ground не может быть источником для шины. | Используйте блок Constant с набором Постоянного значения к 0 и набором атрибута сигнала типа Выходных данных к |
Корневой блок Outport с одноэлементным типом данных Object шины | Входной параметр к блоку Outport должен быть шиной, если это задает объект шины как свой тип данных. | В блоке Outport, Типе данных набора к |
ID проверки: mathworks.design.CheckConstRootOutportWithInterfaceUpgrade
Используйте эту проверку, чтобы идентифицировать корневые выходные порты с постоянной частотой дискретизации, используемой с целью AUTOSAR, Управлением Прототипом функции или образцовым интерфейсом класса C++.
Корневые выходные порты с постоянной частотой дискретизации не поддержаны при использовании цели AUTOSAR, Управления Прототипом функции или образцового интерфейса класса C++. Используйте эту проверку, чтобы идентифицировать корневые блоки Выходного порта с этим условием и изменить блоки, как рекомендуется.
Условие | Рекомендуемое действие |
---|---|
Корневой выходной порт с постоянной частотой дискретизации, используемой с целью AUTOSAR, Управлением Прототипом функции или образцовым интерфейсом класса C++. | Рассмотрите одно из следующего:
|
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, чтобы переместиться через эту последовательность анализа:
Советник по вопросам Обновления открывает каждую модель и библиотеку в свою очередь, от листа, чтобы базироваться, и выбирает проверки некомпиляции. Осуществите проверки, примите любые рекомендуемые меры, затем нажмите Continue Upgrade Sequence, чтобы открыть следующую модель и продолжиться.
Когда вы достигаете корневого конца иерархии, Советник по вопросам Обновления затем открывает каждую модель снова в том же порядке (но не библиотеки) и выбирает только проверки, которые требуют образцовой компиляции. Осуществите проверки, примите любые рекомендуемые меры, затем нажмите Continue Upgrade Sequence, чтобы открыть следующую модель. Продолжите, пока вы не достигнете конца иерархии и этой проверки передачи.
ID проверки: mathworks.design.ConflictsForDataStoreReadWriters
Идентифицируйте потенциальную чувствительность порядка выполнения при чтении и записи в хранилища данных.
Порядок выполнения блоков, которые читают и пишут в то же хранилище данных, может изменить результат симуляции. Когда блоки в той же иерархии получают доступ к тому же хранилищу данных, порядок выполнения не детерминирован.
Условие | Рекомендуемое действие |
---|---|
К Блоку памяти Хранилища данных получают доступ несколько блоков в той же иерархии. | Чтобы осуществить порядок выполнения для блоков, рассмотрите следующее:
|