Используя область потока данных, можно смоделировать и симулировать в вычислительном отношении интенсивную обработку сигналов или многоскоростную систему обработки сигналов. Области потока данных симулируют использование модели расчета синхронный поток данных, который управляем данными и статически запланирован.
Существует две основных причины, чтобы использовать область потока данных в вашей модели.
Улучшите пропускную способность симуляции с многопоточным выполнением.
Область потока данных усиливает многожильную архитектуру ЦП хоста - компьютера и может значительно улучшить скорость симуляции. Область автоматически делит вашу модель и симулирует систему с помощью нескольких потоков. Путем добавления задержки в систему можно далее увеличить параллелизм и улучшить пропускную способность симуляции модели.
Автоматически выведите размеры сигнала для основанных на системе координат многоскоростных моделей.
Когда параметр Automatic frame-size calculation включен, области потока данных автоматически вычисляют форматы кадра и вставляют буферы в вашу модель, избегая ошибок распространения размера сигнала в многоскоростных системах обработки сигналов.
Чтобы создать область потока данных, используйте блок Dataflow Subsystem. Область блока Dataflow Subsystem предварительно сконфигурирована.
Преобразовывать существующую подсистему в Dataflow Subsystem:
Во вкладке Execution Property Inspector установите флажок Set execution domain.
Если Property Inspector не отображается, во вкладке Modeling, под Design, выберите Property Inspector. Для получения дополнительной информации о Property Inspector смотрите Setting Properties и Параметры (Simulink).
С выбранной подсистемой, устанавливает Domain на Dataflow
.
В подсистеме, в левом нижнем углу холста модели, существует теперь значок, который указывает, что подсистема является подсистемой Потока данных.
Области потока данных поддерживаются только на уровне подсистемы. Вы не можете установить Domain модели верхнего уровня к Dataflow
.
Симуляция областей потока данных усиливает многожильную архитектуру ЦП хоста - компьютера. Это автоматически делит вашу модель и симулирует подсистему с помощью нескольких потоков.
В первый раз, когда вы симулируете область потока данных, симуляция является одной, распараллелил. Во время этой симуляции программное обеспечение выполняет анализ затрат. В следующий раз компиляции модели, программное обеспечение автоматически делит систему для многопоточного выполнения.
Каждый раз, когда вы вносите изменение в области потока данных, следующая симуляция может быть одной, распараллелил, чтобы позволить программному обеспечению выполнять новый анализ затрат. После симуляции анализа затрат, в следующий раз компиляции модели, повторное разделение программного обеспечения доменные и последующие симуляции многопоточны.
Некоторые блоки и функции языка не поддержаны для многопоточной симуляции. Если подсистема потока данных содержит блоки или функции языка, которые не поддерживают многопоточную симуляцию, Simulink® выдает предупреждение, и подсистема всегда симулирует в одном потоке.
Если подсистема потока данных содержит блоки или функции языка, которые не поддерживаются в подсистеме потока данных, Simulink генерирует ошибку. Для получения дополнительной информации смотрите Неподдерживаемые Программные функции Simulink в Областях Потока данных.
Чтобы увеличить пропускную способность системы, может быть выгодно увеличить задержку системы. Задайте значение Latency во вкладке Execution Property Inspector.
Чтобы далее улучшать производительность симуляции, Ассистент Симуляции Потока данных может рекомендовать значение задержки для симуляции. Нажмите кнопку Dataflow assistant, чтобы открыть Ассистент Симуляции Потока данных.
В Ассистенте Симуляции Потока данных нажмите кнопку Analyze, чтобы анализировать область потока данных для производительности симуляции и иметь Ассистент Симуляции Потока данных, предлагают оптимальную задержку для вашей подсистемы потока данных.
Анализ потока данных является процессом с тремя шагами. Во время первого шага анализ определяет, должно ли это повторно разделить модель в потоки путем проверки подсистемы потока данных на моделирование изменений начиная с последней симуляции. Если разделение необходимо, подсистема потока данных симулирует с профилированием времени выполнения, включенным для каждого блока в подсистеме в одном потоке. На последнем шаге ассистент перекомпилировал модель, которая автоматически делит подсистему в один или несколько потоков, чтобы использовать в своих интересах параллелизм в модели.
После того, как анализ завершается, ассистент предлагает значение задержки, которое оптимизирует пропускную способность системы для многожильной архитектуры ЦП хоста - компьютера.
Ассистент Симуляции Потока данных указывает на количество потоков, которые будет использовать модель, если вы примените предложенную задержку. Нажмите кнопку Accept, чтобы применить предложенную задержку к подсистеме. Когда задержка вводится в область потока данных, выход подсистемы потока данных отмечен значком задержки на холсте модели. Изменения в модели в подсистеме потока данных могут потребовать анализа затрат и повторного разделения.
Если вы задаете задержку, больше, чем задержка, предложенная Ассистентом Симуляции Потока данных, дополнительные задержки все вставляются при выходе подсистемы. Если вы задаете значение задержки, меньшее, чем значение, предложенное Ассистентом Симуляции Потока данных, ассистент предупреждает, что вы пропускаете доступный параллелизм.
Для получения дополнительной информации о типах параллелизма в областях потока данных смотрите Многожильную Симуляцию и Генерацию кода Областей Потока данных.
Simulink может автоматически вычислить форматы кадра, необходимые для каждого блока в основанной на системе координат системе обработки сигналов, и вставить буферы при необходимости. Чтобы включить автоматическое вычисление формата кадра в подсистеме Потока данных, выберите Automatic frame size calculation во вкладке Execution Property Inspector.
Функции, Поддерживавшие для Автоматического Вычисления Формата кадра. Автоматическое вычисление формата кадра поддерживается только для сигналов, типы данных которых являются одним из числовых типов (встроенное целое число, дважды, одна, или фиксированная точка). Сигналы с помощью перечислимого типа или чей тип данных является шиной, не поддержаны.
Вычисление формата кадра поддерживает только двумерные сигналы.
Блоки, поддержанные для автоматического вычисления формата кадра
Подсистемы потока данных не поддерживают следующие программные функции Simulink.
Не поддерживаемый | Описание |
---|---|
Сигналы переменного размера | Программное обеспечение не поддерживает сигналы переменного размера. Сигнал переменного размера является сигналом, размер которого (число элементов в размерности), в дополнение к ее значениям, может измениться во время выполнения модели. |
Модели, на которые ссылаются, | Блоки Model Reference не поддержаны в областях потока данных. |
Невиртуальные Подсистемы Simulink, включая Triggered Subsystem, Enabled Subsystem и атомарные подсистемы | Только виртуальные подсистемы поддерживаются в областях потока данных. |
Блоки с непостоянными или ненаследованными шагами расчета | Все шаги расчета в подсистемах потока данных должны быть наследованы (-1 ), или постоянный (inf ). |
Непрерывные блоки | Блоки в библиотеке Continuous (Simulink) не поддержаны в областях потока данных. Simulink указывает в холсте модели в разовом редактированием, что эти блоки не поддержаны путем выделения блока в оранжевом. |
Блоки Хранилища данных | Data Store Memory, Data Store Read и блоки Data Store Write не поддержаны в подсистемах потока данных. |
Подмножество блоков Simulink | Если подсистема потока данных содержит блоки или функции языка, которые не поддерживаются, Simulink генерирует ошибку, когда модель компилирует. Для некоторых блоков, таких как Scope блокируется, Simulink указывает в холсте модели в разовом редактированием, что они не поддержаны путем выделения блока в оранжевом. |
Графики Stateflow® | Диаграммы Stateflow не поддержаны в подсистемах потока данных. |
Блоки SimEvents® | Блоки SimEvents не поддержаны в подсистемах потока данных. |
Генерация HDL-кода | Только генерация кода C/C++ поддерживается для моделей с подсистемами потока данных. |