продолжим, вроде читать лекцию,
michael-yurov писал(а):Для того, чтобы определиться, кто первым придет к финишу без нарушения правил гонок, совсем не обязательно разбиратьзя в алгоритмах работы мозга пилотов.
Я в алгоритмах расчета движения разбираюсь, и способен написать очень хороший алгоритм, только не вижу смысла изобретать велосипед.
многие, вероятно не только разбираются, но еще и профильное образование имеют. Так что не вижу проблем в обсуждаемом вопросе.
зачем так громко, не зная базовых основ кинематики, геометрий (особенно раздел кривых второго порядка), математики (особенно раздел квадратных уравнений), даже простого алгоритма под lookahead не напишешь, если судить по вашим другим постам я кроме общих слов и возгласов ничего не вижу.
michael-yurov писал(а):Ускорение не должно превышать 25 мм/сек², допустимо сглаживать стыки участков траектории, если угол изменения направления вектора движения не превышает 20°.
Не верно.
если не превышает 20°, происходит торможение для точного обхода, если превышает 20° то "допустимо сглаживать стыки участков траектории".
michael-yurov писал(а):
Если с углом в 20° в PlanetCNC все понятно - достаточно установить пороговый угол в 160°, то как быть с ускорением на изломах траектории?
Поскольку PlanetCNC не строит сглаживающую дугу между сегментами - ускорение в момент изменения вектора подскакивает до бесконечно большого (это точно больше 25 мм/сек²),
Я то специально выложил 20°, что бы вызвало вопросы, а получается все ясно, тогда перейдем на угол в 160°.
PlanetCNC строит сглаживающую дугу, если угол превышает выставленное значение Lookahed Angle.
Точно больше! Его значение 35.35мм/сек². Но при этом линейные ускорения по осям равны значению 25 мм/сек². Почему? Это ниже.
michael-yurov писал(а):
И вторая проблема - даже если бы planetcnc достроила бы плавное скругление между сегментами - система все равно не рассчитывает, насколько нужно снизить скорость, чтобы ускорения по осям не превысили допустимые величины.
Я это разжевываю уже не первый раз.
Например, ситуация - окружность диаметром 5 мм, сохраненная, как набор мелких прямолинейных отрезков. Например - 360 сегментов с углом между сегментами 1°.
Допустимая скорость движения по траектории - 5 000 мм/мин, ускорения осей - 25 мм/сек².
С какой скоростью можно двигаться по этой окружности?
Если провести грубую оценку, то скорость должна быть такой, чтобы центростремительное ускорение не превысило 25 мм/сек² - 3,16 мм/сек (190 мм/мин).
v = √(a/r)
А с какой скоростью PlanetCNC будет двигаться по этой окружности?
Если угол между сегментами будет менее порогового, то с исходной скоростью, т.е. 5 000 мм/мин,
центростремительное ускорение при этом будет равно 2778 мм/сек², а это в 111 раз больше допустимого.
Если же установить пороговый угол меньше 1° (больше 179°), то станок будет останавливаться во всех 360 точках этой окружности, и итоговая скорость будет очень низкой.
Еще подробнее объяснить?
Я сейчас один раз разжую и подробно объясню.
Начнем с кинематики.
Для начала, научу как определять правильность используемой формулы, просто по единицам измерения, через размерность. Возьмем приведенный вами формулу,
v = √(a/r), где из под корня деление ускорения
мм/сек² на радиус
мм, равно
1/сек или
с−1.
Что это значит? Это частота вращения или по устаревшему термину обороты в секунду, то есть если выразить через радианы, это угловая скорость. Ну и второе, если обратить внимание на тщательность вписывания формулы, то и обозначение угловой скорости то же неверно, должно быть
ω.
Если прописать правильно, получаем формулу
ω = √(a/r), угловой скорости во вращательном (круговом) движений.
Но вращательное движение это из другой оперы, не для рассматриваемой конструкций станка, где движение точки по плоскости происходит, от двух не зависимых линейных приводов.
Перейдем в геометрию.
Если окружность поделить на 360 сегментов, внутренний угол между сегментами будет 179° , наружный угол между сегментами будет 181°], выбирайте что вам душе угодно, а никак 1°. А почему так, я вам оставлю как домашнее задание.
Если же установить пороговый угол 1°, то станок проедет на максимальной скорости сглаживая все углы больше 1°, останавливаться только на точках где угол меньше 1° итоговая скорость будет очень высокой , как с примером в 20°. А при 179° обратное, итоговая скорость будет очень низкой.
Еще подробнее объяснить?
Перейдем к вашему примеру.
Что бы контролировать величину ускорения по линейной функций не нужны навороченные алгоритмы, просто надо подавать фиксированное количество импульсов в единицу времени, в некоторых системах управления, в том числе ТурбоСНС и PlanetCNC, предусмотрены дополнительные функций по влиянию на ускорение.
Тут на самом деле идет расчет времени, в какой момент произвести разгон и торможение, что бы проехать кривую в пределах заданных допусков, по геометрий, ускорения и скорости, в таком порядке.
То что вы называете центростремительное ускорение, это термин вращательного движения, для движения по кривой это ускорение называется нормальной , но нормальное ускорение
в криволинейном движений характеризует изменение скорости только по направлению (отвечает за поворот), и этого не достаточно что бы определить изменение скорости по величине (разгон-торможение). И задача у вас решена не правильно, не хватает еще одного переменного ускорения, тангенциального, которая характеризует изменение скорости по величине (отвечает за разгон-торможение)
Уравнение для нормального ускорения
an=v²/r , или отсюда
v= √(an*r) , думаю разницу заметили с вашей приведенной формулой?
Если поставить в формулу ваши значения, при номинальном ускорения 25 мм/сек², и величине радиуса 2.5мм, получаем скорость изменения направления движения равным 7.9мм/сек или 474мм/мин, но это не скорость движения, это скорость изменения направления движения .
А с какой скоростью PlanetCNC будет двигаться по этой окружности?
Подумайте почему я вам предложил внимательно посмотреть кино?
Понимая что ваши умозаключения под собой не имеют математических основ, подумал что вы обратите внимание на то или заметите, что средняя скорость прохода дуг и углов где то от 200 до 500мм/мин, то есть вписывается под ваши необходимые условия.
А теперь краткий экскурс, упрощенная модель работы станка, рассмотрим всего две оси (на самом деле в lookahead на классическом 3-х осевом станке, участвует три оси), и движение по кривой. Рассматривая движение точки по кривой, в зависимости от двух осей, мы видим, что его скорость в разные моменты различна. Даже в том случае, когда величина скорости не меняется, все же имеет место изменение направления скорости. В общем случае меняются и величина, и направление скорости.
За величину скорости как раз отвечает тангенциальное ускорение, а за направление скорости нормальное ускорение, для наглядности (упрощенный) набросал маленький рисунок, по которому вы можете судить о величине результирующего ускорения, сложением векторов.
Или, если выразить естественным образом, полное ускорение при равнопеременном движений точки по кривой равно:
а=√(at²+an²) ,
откуда получается если фиксированное ускорение по осям равно 25 мм/сек², то полное ускорение 35.35 мм/сек².
Разнообразие движений в момент времени зависит от тангенциальных и нормальных составляющих:
1.
at =0 an=0 равномерное прямолинейное движение
2.
at =+const an=0 равноускоренное
3.
at =-const an=0 равнозамедленное
4.
at =f(t) an=0 прямолинейное движение с переменным ускорением
5.
at =0 an=const равномерное движение по окружности
6.
at =0 an= f(t) равномерное криволинейное движение
7.
at =+const (-const) an ≠ 0 криволинейное равноускоренное движение
8.
at =f(t) an ≠ 0 криволинейное движение с переменным ускорением
на сегодня все, устал писать, самое интересное в следующем посте, это коснется
8 пункта классификаций движения, относительно PlanetCNC, и не только, и для любителей S-кривых.
Сферический ватник в вакууме.