О типах данных в Simulink

О типах данных

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

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

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

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

Инструкции по типированию данных

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

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

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

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

  • В целом, блок выводит тип данных, который появляется на его входах.

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

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

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

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

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

  • Порты управления (для портов примера, Enable и Trigger) принимают любой тип данных.

  • Блоки решателя принимают только double сигналы.

  • Соединение не- double сигнал блоку отключает обнаружение пересечения нулем для этого блока.

Распространение типа данных

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

Примечание

Можно вставить блоки typecasting (преобразования типов данных) в модель, чтобы разрешить конфликты типов. Для получения дополнительной информации см. раздел Data Type Conversion.

См. также

|

Похожие темы