Иногда приложение реального времени, работающее на целевом компьютере, не имеет достаточного количества времени, чтобы завершить обработку перед следующим временным шагом. Это условие называется перегрузкой ЦП. Перегрузка указана каждый раз, когда шаг выполнения не может быть выполнен, потому что предыдущий шаг запускается.
Например, примите, что вашим шагом расчета модели является 1
мс, но выполнение конкретного шага модели берет 3.1
мс. Этот шаг модели заставляет ядро пропускать три шага и вызывает три перегрузки.
Как правило, ядро Simulink® Real-Time™ останавливает выполнение модели, когда это сталкивается с перегрузкой ЦП. Однако некоторые приложения реального времени могут терпеть несколько перегрузок ЦП без значительной потери данных, например, во время запуска. Для таких приложений можно позволить конкретное количество и настройку перегрузок ЦП. Вы делаете это использование TLCOptions
настройки xPCMaxOverloads
, xPCMaxOverloadLen
, и xPCStartupFlag
.
Разрешение центрального процессора целевого компьютера перегрузиться может вызвать неправильные результаты, специально для многоскоростных моделей. Используйте эти параметры командной строки TLC только в диагнозе. Когда ваш диагноз будет завершен, выключите эти опции.
Если ваше приложение реального времени вызывает перегрузку ЦП, оно заканчивается, текущее выполнение продвигаются, и игнорирует прерывания по таймеру. В конце шага выполнения ядро сравнивает количество перегрузки ЦП с пределами, заданными xPCMaxOverloads
и xPCMaxOverloadLen
. Если количество не превышает пределы, приложение выполняется на следующем шаге. В противном случае это останавливается.
Пределы:
xPCMaxOverloads
— Количество приемлемых перегрузок во время выполнения приложения реального времени.
Когда xPCMaxOverloads
установлен в значение, выполнение остановок программного обеспечения Simulink Real-Time с перегрузкой ЦП при следующей перегрузке в рамках того же выполнения приложений. Например, если xPCMaxOverloads
установлен в 3
, программное обеспечение останавливается с перегрузкой ЦП при четвертой перегрузке в том же выполнении приложений.
Значение по умолчанию 0
средние значения, что перегрузки указаны на первой перегрузке.
xPCMaxOverloadLen
— Количество приемлемых перегрузок, в модулях шага расчета, в том же шаге выполнения.
Когда xPCMaxOverloadLen
установлен в значение, выполнение остановок программного обеспечения с перегрузкой ЦП при следующей перегрузке в том же шаге выполнения. Например, если xPCMaxOverloadLen
установлен в 2
, программное обеспечение останавливает выполнение с перегрузкой ЦП при третьей перегрузке в том же шаге выполнения.
Значение по умолчанию 0
средние значения, что перегрузки указаны на первой перегрузке в том же шаге выполнения.
Задайте значение, которое меньше чем или равно значению для xPCMaxOverloads
. Если xPCMaxOverload
установлен в значение, например, 4
, и xPCMaxOverloadLen
не задан, остановки приложения реального времени, если одно из следующего происходит:
Совокупные перегрузки начиная с выполнения запускаются, больше 4
.
Один шаг выполнения имеет две перегрузки.
xPCStartupFlag
— Количество выполнения модели при запуске.
xPCStartupFlag
временно отключает проверку перегрузки ЦП во время первых нескольких шагов выполнения модели. После того, как модель закончила первый xPCStartupFlag
шаги, программное обеспечение повторно включает проверку перегрузки ЦП, которая вступает в силу для следующего выполнения модели.
Значение по умолчанию 1
средние значения, что перегрузки проигнорированы на первом шаге. Если xPCMaxOverloads
и xPCMaxOverloadLen
не установлены, их настройка по умолчанию определяет ответ программного обеспечения на перегрузки.
xPCMaxOverloads
и xPCMaxOverloadLen
обе перегрузки количества, но по различным отрезкам времени. xPCMaxOverloads
считает перегрузки ЦП, которые были замечены до сих пор в выполнении приложения реального времени. xPCMaxOverloadLen
считает перегрузки, которые были замечены в одном шаге выполнения.
Эти три опции взаимодействуют. Когда Ядро Simulink Real-Time запускает модель, оно сравнивает количество перегрузок ЦП к значениям xPCMaxOverloads
и xPCMaxOverloadLen
. Когда количество перегрузок ЦП достигает ниже этих двух значений, ядро прекращает выполнять модель.
Предположим, что вы вводите следующий TLCOptions
настройки для модели xpcosc
.
set_param('xpcosc','TLCOptions','-axPCMaxOverloads=30 -axPCOverLoadLen=2 -axPCStartupFlag=5')
С этими настройками программное обеспечение игнорирует перегрузки ЦП для первых пяти итераций через модель. После первых пяти итераций программное обеспечение позволяет до 30
Перегрузки ЦП, позволяя самое большее две перегрузки ЦП на шаг модели.
Можно использовать блоки Set Overload Counter и Get Overload Counter, чтобы установить и отследить числа перегрузки ЦП. Можно использовать блок Time Stamp Counter, чтобы профилировать модель
Примите тот xPCMaxOverloads
3
и xPCMaxOverloadLen
2
. Программное обеспечение терпит первые три перегрузки и прекращает выполняться в четвертом. Количество перегрузок превышает максимальное количество, допускал выполнение в реальном времени.
Примите тот xPCMaxOverloads
3
и xPCMaxOverloadLen
1
. Программное обеспечение терпит первые две перегрузки и прекращает выполняться в третьем. Второе выполнение шага более длительно, чем максимальная позволенная продолжительность перегрузки одного шага расчета.
Примите тот xPCStartupFlag
3
. Ядро игнорирует перегрузки ЦП для первых трех временных шагов и прекращает выполняться на первой перегрузке в следующем временном шаге.
Get Overload Counter | Set Overload Counter | Параметры командной строки TLC