Диагностируйте неожиданное измеренное значение шага расчета

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

Что означает эта проблема

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

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

Большинство высокоуровневых операционных систем, как Microsoft® Windows® или Linux®, иногда вставляет дополнительные длинные интервалы, чтобы компенсировать ошибки в таймере. Программное обеспечение Simulink® Real-Time™ не пытается компенсировать ошибки таймера. Для этого продукта близкая воспроизводимость более важна для большинства моделей, чем точная синхронизация. Однако иногда микросхемы имеют свойственные проекты, которые производят остаточные дрожания, которые могут потенциально изменить ваше поведение системы. Например, некоторый Intel® микросхемы Pentium производит остаточные дрожания на порядке 0,5 микросекунд от прерывания до прерывания.

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

Для поддерживаемых целевых компьютеров единственный таймер, который может сгенерировать прерывания, основан на часах на 1,193 МГц. Для системы Simulink Real-Time таймер установлен в постоянное число меток деления этой частоты между прерываниями. Если вы запрашиваете шаг расчета 1/10000 секунд или 100 микросекунд, вы не получаете точно 100 меток деления. Вместо этого программное обеспечение Simulink Real-Time вычисляет тот номер как:

100 x 10-6 s X 1.193 x 106 ticks/s = 119.3 ticks 

Программное обеспечение Simulink Real-Time округляет этот номер к самому близкому целому числу, 119 меткам деления. Фактический шаг расчета затем:

119 ticks/(1.193 X 106 ticks/s) = 99.75 X 10-6 s
(99.75 microseconds)

По сравнению с требуемым исходным шагом расчета 100 микросекунд это значение на 0,25% быстрее.

Попробуйте это обходное решение

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

  • Выведите плату, которая генерирует синусоиду на 50 Гц (ожидаемый сигнал)

  • Шаг расчета 1/10000

  • Измеренный сигнал 50,145 Гц

Различие между ожидаемыми и измеренными сигналами составляет 0,145 Гц, который отклоняется от ожидаемого значения сигналов на 0,29% (0.145 / 50). По сравнению с ранее расчетным значением 0,25% существует различие 0,04% от ожидаемого значения.

Если вы хотите совершенствовать измеренное отклонение для своего целевого компьютера, примите следующее:

  • Выведите плату, которая генерирует синусоиду на 50 Гц (ожидаемый сигнал)

  • Шаг расчета 1/10200

  • Измеренный сигнал 50,002 Гц:

    1/10200 s X 1.193 x 106 ticks/s = 116.96 ticks 

Вокруг этого номера к самому близкому целому числу 117 меток деления. Получившаяся частота затем:

(116.96 ticks/117)(50) = 49.983 Hz

Различие между ожидаемым и измеренным сигналом 0.019, который отклоняется от ожидаемого значения сигналов на 0,038% (0.019 / 50.002). Когда шаг расчета является 1/10000, отклонение составляет 0,04%.

Похожие темы