Математический стенд для отработки управления манипулятором ERA…
11
ния двух величин (зависящих от динамики моделируемого КМР и
уровня редуцированности модели):
• lim — предельно допустимое значение шага численного инте-
грирования (приблизительно 0,3 мс), обеспечивающее устойчивость
вычислений;
•
N
— число шагов в схеме сглаживания (примерно 20–30).
Введем переменную
Т
в
— локальное (виртуальное) время про-
цесса интегрирования (вычисляется на каждом цикле интегрирования
как
Т
в
+=
h
) в отличие от реального времени
T
р
. Шаг интегрирования
h
для первых
N
шагов назначается достаточно небольшим (например,
1 мкс) для того, чтобы заведомо обеспечить сходимость начального
этапа.
Далее каждый раз на входе в поток В определяется
T
р
и интервал
реального времени
D
, прошедшего от предыдущего назначения
h
.
Если бы интервалы
D
были достаточно малы и примерно одинаковы,
можно было бы назначить на каждом шаге цикла потока В
h
=
D
. Но
это условие не выполняется, и поэтому вводится алгоритм сглажива-
ния. Допустим, за
N
шагов прошло время
dT
р
. Тогда шаг интегриро-
вания для следующих
N
шагов цикла потока В определится как
h
=
=
dT
р
/
N
. Это усреднение по
N
циклам потока проводится для того,
чтобы сгладить возможные большие колебания и запредельные вы-
бросы значений
h
. Тогда можно реализовать два варианта.
1. Если
h
≤
lim, то дальнейшие вычисления проводить не нужно,
на каждом цикле
Т
в
+=
h
.
2. Если
h
> lim, назначаем
h
= lim. Получившееся в течение сле-
дующих
N
циклов отставание от реального времени на
N
lim –
dT
р
постепенно выравниваем на следующих шагах, пока
T
i
вновь не сов-
падет с
T
р
. Аналогичные действия выполняем после первых
N
шагов.
На современных компьютерах при правильной расстановке прио-
ритетов для процесса и его потоков число таких ситуаций минималь-
но, что обеспечивает выполнение вычислительного потока в режиме
«мягкого» реального времени.
Сетевое взаимодействие моделирующей системы с сетевыми
клиентами моделирующего комплекса реализуется с помощью со-
кетного соединения по протоколу TCP. Коммуникационный модуль
моделирующей системы выступает для других программ комплекса в
качестве сервера.
В сокетном соединении отключен алгоритм Нагла (выполняю-
щий объединение маленьких пакетов в большие), что позволило ве-
сти обмен данными со средней частотой не менее 1 000 Гц.
Поток
K
имеет максимальный (TIME_CRITICAL) приоритет, но
большую часть времени находится в состоянии «сна». Серверный по-
ток функционирует только от события к событию в сокете (в боль-