exponenta event banner

Общие сведения об архитектуре модели

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

Иерархическая структура модели контроллера

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

Концепция слояНазначение слоя

Наверх

Слой

Функциональный уровеньШирокое функциональное разделение
Слой спецификацииВыражение времени выполнения (выборка, порядок)

Основание

Слой

Уровень подфункцииДетальное разделение функций
Слой управляющего потокаРазделение в соответствии с порядком обработки (ввод → оценка → вывод и т.д.)
Слой выбораРазделение (выбор выхода с объединением) на формат, который переключает и активирует активную подсистему
Уровень потока данныхСлой, выполняющий один расчет, который нельзя разделить

При применении понятий слоев:

  • Концепции слоев присваиваются слоям, а подсистемы разделяются соответствующим образом.

  • Если концепция слоя не нужна, ее не нужно назначать слою.

  • Концепции нескольких слоев могут быть назначены одному слою.

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

Верхний слой

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

  • Простая модель управления - представляет слой функций и слой спецификации в одном слое. Здесь функция является исполнительным блоком. Например, модель управления имеет только один цикл выборки, и все функции расположены в порядке выполнения.

  • Комплексная управляющая модель Тип α - слой спецификации расположен вверху. Этот метод упрощает интеграцию с кодом, но функции делятся, а читаемость модели ухудшается.

  • Комплексная модель управления Тип β - Функциональные слои расположены в верхней части, а уровни спецификации расположены под отдельными функциональными слоями.

The first example shows the top level as a schedule layer with two function layers, one for a low speed subsystems and the second for a high speed subsystem. In the example illustration, the top layer is the function layer with two schedule layers, one for a sensing function subsystem and the second for a control function subsystem.

Уровни функций и уровни подфункций

При моделировании уровней функций и подфункций:

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

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

    • Должны быть описаны отдельные функциональные блоки.

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

The first example shows the top level as a schedule layer with two function layers, one for a low speed subsystems and the second for a high speed subsystem. There is an arrow connecting sub-function "C1" in the low speed subsystems to sub-function "S2" in the high speed subsystems layer. In the second example, the top layer is the function layer with two schedule layers, one for a sensing function subsystem and the second for a control function subsystem. There is a connection arrow between sub-function "C1" in the control function subsystem to sub-function "S2" in the sensing function subsystem.

Слои спецификации

При планировании уровней:

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

  • Устанавливается ранжирование приоритета. Это важно при проектировании нескольких независимых функций. По возможности, последовательность вычислений для всех подсистем должна основываться на соединениях подсистем.

  • Устанавливаются два различных типа ранжирования приоритетов: один для различных интервалов отбора проб, а другой для одинаковых скоростей отбора проб.

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

  • Для подсистем и блоков задайте время выборки параметров блока и приоритет свойств блока.

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

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

  • Модели с несколькими интервалами выборки

  • Модели, имеющие несколько независимых функций

  • Использование ссылок на модели

  • Количество моделей (и существует ли более одного набора сгенерированного кода)

Для сгенерированного кода затронутые факторы включают в себя:

  • Применимость операционной системы реального времени

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

  • Применимая область (область применения или базовое программное обеспечение)

  • Тип исходного кода: AUTOSAR совместим - не совместим - не поддерживается.

Управляющие слои потока

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

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

Illustrates three control flow layers column that are arranged from left to right. The first column is labeled Input Processing, the middle is labeled Intermediate Processing, the and last column is labeled Output Processing. The blocks in the control flow layer column have the same significance with regard to function of the vertical column.

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

Illustrates the Input Processing, Intermediate Processing,and Output Processing control flow columns that are presented horizontally from left to right. The blocks in each control flow layer column have the same significance with regard to function of the column. Red borders are used to mark the delimiter for processing that is not visible.

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

  • Количество блоков становится слишком большим

  • Все описано на уровне потока данных

  • Единицы, которым можно придать минимальное частичное значение, делятся на подсистемы

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

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

Слои выделения

При моделировании слоев выбора:

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

  • Слои отбора должны смешиваться с слоями контрольного потока.

Если подсистема имеет функции переключения, которые позволяют запускать только одну подсистему в зависимости от потока условного управления внутри красной границы, она называется уровнем выбора. Он также описан как уровень потока управления, поскольку он структурирует обработку ввода/промежуточную обработку (условный поток управления )/обработку вывода .

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

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

  • Переключение настройки, в которой тип вычисления переключается после первого раза (сразу после сброса) и второго раза

  • Переключение между пунктом назначения A и пунктом назначения B

Illustrates the Input Processing, Intermediate Processing,and Output Processing control flow columns that are presented horizontally from left to right. The blocks in each control flow layer column have the same significance with regard to function of the column. Blue borders are used to mark the selection layers that are grouped to flow horizontally across multiple control flow columns.

Уровни потока данных

Уровень потока данных - это уровень ниже уровня управляющего потока и уровня выбора.

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

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

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

  • Маскированные подсистемы, зарегистрированные в стандартной библиотеке Simulink ®

  • Маскированные подсистемы, зарегистрированные пользователем в библиотеке

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

Basic model that illustrates the left-to-right flow of data between blocks.

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

Complex model that illustrates the left-to-right flow of data between blocks.

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

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

Взаимосвязь между моделями Simulink и внедрением встраиваемых систем

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

  • Степень, в которой модель Simulink будет моделировать функции

  • Как встраивается созданный код

  • Настройки расписания на встроенном микроконтроллере

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

Настройки планировщика во встроенном ПО

Планировщик во встроенном ПО имеет настройки для одной задачи и нескольких задач.

Параметры расписания для одной задачи

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

Например, базовая выборка составляет 2 миллисекунды, и в модели существуют частоты выборки 2 миллисекунды, 8 миллисекунд и 10 миллисекунд. Функция 8 миллисекунд выполняется один раз в каждые четыре 2 миллисекундных цикла, а функция 10 миллисекунд выполняется один раз в каждые пять. Число выполнений подсчитывается каждые 2 миллисекунды, и выполняется функция дискретизации, заданная этой частотой. Необходимо обратить внимание на то, что все 2-миллисекундные, 8-миллисекундные и 10-миллисекундные циклы вычисляются с использованием тех же 2-миллисекундных циклов. Поскольку все вычисления должны быть завершены в течение 2 миллисекунд, функции 8 миллисекунд и 10 миллисекунд разбиваются на несколько и корректируются так, чтобы все вычисления 2 миллисекунд были почти равного объема.

На следующей диаграмме показана 8-миллисекундная функция, разделенная на 4, и 10-миллисекундная функция, разделенная на 5.

ФункцииОсновная частотаСмещение
8millisecond0millisecond
2-28millisecond2millisecond
2-38millisecond4millisecond
2-48millisecond6millisecond
3-110millisecond0millisecond
3-210millisecond2millisecond
3-310millisecond4millisecond
3-410millisecond6millisecond
3-510millisecond8millisecond

Illustrates the splitting of the function. The 8 millisecond function is executed once for every four 2-millisecond cycles. The 10 millisecond function is executed once for every five 2-millisecond cycles.

Для установки задания с разделением по частоте:

  1. Установите параметр конфигурации Tasking mode for periodic sample time в значение SingleTasking для настройки задачи Simulink.

    Screen capture of the "Tasking mode for periodic sample times" configuration parameter.

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

    Screen capture of the "Sample time" block parameter.

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

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

    CPU processing of 2, 8, and 10 millisecond functions.

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

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

Если подсистема B с интервалом дискретизации 20 миллисекунд использует выходной сигнал подсистемы A с интервалом дискретизации 10 миллисекунд, выходной результат подсистемы A может изменяться, пока подсистема B выполняет вычисления. Если значения меняются частично, результаты вычислений подсистемы B могут быть не такими, как ожидалось. Например, сравнение производится в первом вычислении подсистемы В с выходом подсистемы А, и результат вычисляется с помощью условного определения, основанного на этом выходе. На данном этапе результат сравнения является истинным. Затем его снова сравнивают в конце подсистемы В; если выходные данные из А отличаются, то результат сравнения может быть ложным. Обычно в этом типе развития функции это может произойти, что логика, созданная с истинным, истинным, стала верной, ложной, и произведен неожиданный результат вычисления. Чтобы избежать этого типа неисправности, при изменении задачи выходные результаты подсистемы A фиксируются непосредственно перед их использованием подсистемой B, поскольку они используются в ОЗУ, отличном от того, которое используется подсистемой A выходных сигналов. Другими словами, даже если значения подсистемы А изменяются во время процесса, значения, на которые подсистема В смотрит, находятся в другом ОЗУ, поэтому эффект не виден.

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

Однако, если входные значения получены с другим интервалом выборки посредством интеграции с кодированным вручную кодом, инженер, выполняющий работу по встраиванию, должен разработать эти настройки. Например, в концепции RTW с использованием AUTOSAR различные RAM определяются на стороне приема и экспорта.

CPU processing of 2, 8, and 10 millisecond functions. If Function 2 uses computation results of Function 1, computation results for Function 1 do not change during computation for Functions 2-1, 2-2, 2-3, but there is a possibility that Functions 2-1, 2-2, 2-3 use different values that have been computed on the respective different time axes. Different RAM should be allocated for signal values with different rates.

Параметры планировщика с одним заданием

Значения сигнала одинаковы в пределах одного и того же 2-миллисекундного цикла, но при наличии других 2-миллисекундных циклов вычислительное значение отличается от предыдущего. Если функции 2-1 и 2-2 используют сигнал A функции 1, следует иметь в виду, что функции 2-1 и 2-2 используют результаты различных времен.

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

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

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

CPU processing of 2, 8, and 10 millisecond functions. If Function 2 uses computation results of Function 1, it is possible that computation results from Function 1 will replace them while Function 2 is computing. For that reason, computation results that vary at the point when computation starts for each sampling are generally stored in a different RAM.