Мой последний пример с графиком как раз может это просчитатьsolo писал(а):тема очень интересная но я к моему глубокому сожалению мало, что понимаю
но читая аналогичные темы была сказано (не мною), что основная проблема S образной кривой разгона это в текущий момент просчитать конечную точку остановки ...
Шаговый генератор на STM32 (STEP/DIR/ENBL)
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Я и не говорил про силы трения.UAVpilot писал(а):Работа, требуемая для преодоления как сопротивления воздуха при падении, так и сил трения в станке так-же не зависит от времени...
Я говорил, про пружинящие свойства перемещаемых деталей станка.
Когда станок абсолютно жесткий - никаких проблем нет, можно применить математику равноускоренного движения сферического килограмма в вакууме.
Но когда мы используем реальные конструкции - все они изгибаются, искривляются, вибрируют, резонируют...
Почему автомобили (пусть это будут электромобили) не движутся равноускорено по трапецеидальному графику? Потому что пассажиров болтает в салоне, нагрузка на механику возрастает и т.п.
По той же причине приличные лифты движутся по графику S-кривой, а не по трапецеидальному. И, зачастую они намного более быстрые, чем дешевые. И даже в дешевых есть демпферы и ступенчатое изменение мощности на старте и остановке.
А трясти груз/людей при скачках ускорения - лишние потери энергии.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Да без проблем: Я уже выше приводил формулу, по которой можно вычислить работу, необходимую на разгон тела со скорости V1 до скорости V2 - она показывает, что это работа не зависит от времени, т.е. не зависит от ускорения. А вот необходимая мощность (привода) зависит от ускорения: мощность - это работа в единицу времени, посему чем быстрее потребуется достичь скорости V2 (больше ускорение), тем больше потребуется для этого мощность. Или обратный вывод: при некоторой постоянной мощности P можно получить некоторую постоянную величину работы в единицу времени (W = P*t), т.е. некоторую постоянную величину ускорения для одной и той-же массы. Отсюда следствие: никакими хитрыми изменениями ускорения превысить максимально возможное ускорение не получится. Это можно сделать только уменьшая массу тела или увеличивая мощность.spike писал(а):а можно математическое/физическое обоснование, хотя бы и "на пальцах"? только про темные силы инерции не забудь...
Ах, да, про инерцию: работа, затрачиваемая на изменение скорости тела собственно и тратится на преодоление инерции этого тела.
Вот и ты про инерцию...michael-yurov писал(а):Я говорил, про пружинящие свойства перемещаемых деталей станка.
Когда станок абсолютно жесткий - никаких проблем нет, можно применить математику равноускоренного движения сферического килограмма в вакууме.
Но когда мы используем реальные конструкции - все они изгибаются, искривляются, вибрируют, резонируют...
потому и не движутся, что людей болтает. А если и движутся (ибо могут - мощность позволяет), то люди внутри сразу начинают кричать "Поаккуратнее, не дрова везёшь!".michael-yurov писал(а):Почему автомобили (пусть это будут электромобили) не движутся равноускорено по трапецеидальному графику? Потому что пассажиров болтает в салоне, нагрузка на механику возрастает и т.п.
Всё правильно. Только все эти ухищрения не для того, чтобы побыстрей доставить людей с этажа на этаж, а чтоб их не трясти сильно.michael-yurov писал(а):По той же причине приличные лифты движутся по графику S-кривой, а не по трапецеидальному. И, зачастую они намного более быстрые, чем дешевые. И даже в дешевых есть демпферы и ступенчатое изменение мощности на старте и остановке.
Если люди не запрыгивают на ходу в автомобиль, то его масса вместе с людьми не увеличивается, а значит затрачиваемая работа на разгон авто с людьми не меняется, я ж формулу выше приводил.michael-yurov писал(а):А трясти груз/людей при скачках ускорения - лишние потери энергии.
Потери энергии на что именно? Мне вот сразу вспоминается многим известная формула: E=mc², так вот согласно ей энергия не теряется, а очень даже наоборот: масса разгоняемого тела (авто с людьми) не меняется, а скорость растёт - следовательно и энергия тела увеличивается. Это хорошо заметно на практике, когда едущий авто пытается передать свою энергию какому-нибудь столбу - чем быстрее едет авто, тем больше энергии он пытается передать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Когда людей сильно трясешь - они гнутся и мнутся. Неупругие деформации приводят к преобразованию энергии в тепловую.UAVpilot писал(а):Потери энергии на что именно?
Но, применительно к станкам - деформации в большинстве своем упругие, а это приводит к ненужным вибрациям и неравномерному ускорению при постоянном усилии привода,
либо, к непостоянной нагрузке на привод, если он старается обеспечить постоянное ускорение.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Перераспределение энергии внутри тела роли не играет - от этого ни масса тела, ни скорость не меняются.michael-yurov писал(а):Когда людей сильно трясешь - они гнутся и мнутся. Неупругие деформации приводят к преобразованию энергии в тепловую.
Полностью согласен.michael-yurov писал(а):Но, применительно к станкам - деформации в большинстве своем упругие, а это приводит к ненужным вибрациям и неравномерному ускорению при постоянном усилии привода,
либо, к непостоянной нагрузке на привод, если он старается обеспечить постоянное ускорение.
Я несогласен только с одним - с тем, что разгон по S-кривой позволит разогнать тело быстрее, чем постоянное максимальное ускорение.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Не, я понимаю, что известную формулу Эйнштейна "дезигнеры" рисуют везде, где хотят изобразить что-то относящееся к наукеUAVpilot писал(а):Мне вот сразу вспоминается многим известная формула: E=mc²
Но она про другое. А для наших приземленных случаев более подходит школьная Ek=(mv²)/2 .
Чудес не бывает. Бывают фокусы.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Энергия, пошедшая на деформацию неупругого тела, поглотится. превратившись в тепловую. А абсолютно твердое тело не нагреется, и вся энергия, сообщенная ему, перейдет в кинетическую. Классическая задачка - как отличить вареное яйцо от сырого, не разбивая.UAVpilot писал(а):Перераспределение энергии внутри тела роли не играет - от этого ни масса тела, ни скорость не меняются.
Как это соотнести с различными кривыми разгона, я спросонок не соображу
Чудес не бывает. Бывают фокусы.
- wldev
- Мастер
- Сообщения: 1650
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 510
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Да никто и не говорит что быстрее...UAVpilot писал(а):Я несогласен только с одним - с тем, что разгон по S-кривой позволит разогнать тело быстрее, чем постоянное максимальное ускорение.
Просто ты отталкиваешься от двигателя что он может. А я отталкиваюсь от оси как её можно.
Вот у нас на работе станок для гибки проволоки. И у него рабочая консоль вращается серводвигателем. и там есть и скрутка вала и консоль с большим весом.
При работе по Tr его скорость не велика... (не потому что двигатель не может разогнать его быстро, может! там есть хор. запас раза в 1,5-2) просто будут вибрации после остановки и в начале движения.
А при S он работает плавно и без вибраций. и может развивать большую скорость. (как на видео со стаканом). + плюс экономия ресурса и э/э.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Ну она же была кинетической, а стала тепловой, т.е. часть кинетической энергии мы потеряли. Ну или не вся работа пошла на изменение кинетической энергии, что говорит о том что приводу пришлось совершить больше работы, чем рассчитывали. Т.е. нагрузка на привод все же была в какие-то моменты немного больше расчетной.UAVpilot писал(а):Перераспределение энергии внутри тела роли не играет - от этого ни масса тела, ни скорость не меняются.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Все же пример с быстрыми и медленными лифтами говорит о том, что "не все так однозначно"©.UAVpilot писал(а): Я несогласен только с одним - с тем, что разгон по S-кривой позволит разогнать тело быстрее, чем постоянное максимальное ускорение.
Хотя, тоже считаю, что S-кривая и в теории и на практике может привести к ощутимому замедлению работы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
О да! Это даёт серёзную разницу! В моём случае энергия тела не менятеся, а в твоём она не меняется вдвое меньше.Сергей Саныч писал(а):Но она про другое. А для наших приземленных случаев более подходит школьная Ek=(mv²)/2 .
А можешь взять для примера любой известный станок, подставить его данные в соотв. формулы и посчитать какое именно количество энергии (работы, совершаемой приводом) перейдёт в тепло? Можно в процентах.Сергей Саныч писал(а):Энергия, пошедшая на деформацию неупругого тела, поглотится. превратившись в тепловую. А абсолютно твердое тело не нагреется, и вся энергия, сообщенная ему, перейдет в кинетическую.
Если сырое яйцо продолжать крутить, то оно таки раскрутится или сварится?..Сергей Саныч писал(а):Классическая задачка - как отличить вареное яйцо от сырого, не разбивая.
В этой теме как минимум трое высказали такую мысль...Bender писал(а):Да никто и не говорит что быстрее...
Т.е. за счёт увеличения времени разгона и торможения, т.е. уменьшения итогового ускорения.Bender писал(а):При работе по Tr его скорость не велика... (не потому что двигатель не может разогнать его быстро, может! там есть хор. запас раза в 1,5-2) просто будут вибрации после остановки и в начале движения.
А при S он работает плавно и без вибраций. и может развивать большую скорость. (как на видео со стаканом). + плюс экономия ресурса и э/э.
Всё правильно - ты говоришь, что при разгоне/торможении привод не может превысить свои максимальные возможности в начале и в конце траектории разгона/торможения, а я говорю, что и в середине траектории тоже не может.michael-yurov писал(а):Ну она же была кинетической, а стала тепловой, т.е. часть кинетической энергии мы потеряли. Ну или не вся работа пошла на изменение кинетической энергии, что говорит о том что приводу пришлось совершить больше работы, чем рассчитывали. Т.е. нагрузка на привод все же была в какие-то моменты немного больше расчетной.
Там всё однозначно: либо везём пассажиров медленно (с небольшим ускорением), либо после каждой поездки отмываем лифт от расплющенных пассажиров. Причём совершенно не важно когда их расплющит - в начале, в конце или в середине разгона/торможения.michael-yurov писал(а):Все же пример с быстрыми и медленными лифтами говорит о том, что "не все так однозначно"©.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
я про то что там у вас с Эйнштейном скорость света стоитUAVpilot писал(а):О да! Это даёт серёзную разницу! В моём случае энергия тела не менятеся, а в твоём она не меняется вдвое меньше.
Если крутить туда-сюда, то теоретически при должной теплоизоляции может и сваритьсяUAVpilot писал(а):Если сырое яйцо продолжать крутить, то оно таки раскрутится или сварится?..
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Не принципиально. Зато эту формулу больше народа знает.Сергей Саныч писал(а):я про то что там у вас с Эйнштейном скорость света стоит
Тогда придётся в резонанс попадать, а это несколько другие принципы.Сергей Саныч писал(а):Если крутить туда-сюда, то теоретически при должной теплоизоляции может и свариться
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
На днях навалилось много работы, даже посчитать вечером не было сил 
Прикинул в воскресенье S-кривую из 3-х частей на целочисленной логике.. Сегодня подправил косяки (и добавил костыли). Длительность первого и последнего участков S-кривой можно указать в процентах. Среднему линейному участку достанется оставшееся время. Ниже несколько примеров. Серым цветом - обычное линейное ускорение. Синим - по S-кривой.- Hanter
- Мастер
- Сообщения: 5414
- Зарегистрирован: 27 янв 2012, 14:52
- Репутация: 4338
- Настоящее имя: Алексей
- Откуда: Питер
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Михаил - а есть ли смысл указывать отдельно параметры для начального и конечного участка переходов ??? ведь чисто по логике вещей они ну не должны быть разными..
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" Приходит единственный вопрос: "Нахрена?"
==========================================
фрезерная и токарная обработка на станках с чпу.
Резка, гибка, сварка и порошковая окраса.
==========================================
фрезерная и токарная обработка на станках с чпу.
Резка, гибка, сварка и порошковая окраса.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Для горизонтальных осей - да. А вот с тяжёлой вертикальной осью не так всё однозначно.Hanter писал(а):Михаил - а есть ли смысл указывать отдельно параметры для начального и конечного участка переходов ??? ведь чисто по логике вещей они ну не должны быть разными..
В идеале надо сделать настройки начала и конца для каждой оси и еще для направления каждой оси.
-
slavik
- Кандидат
- Сообщения: 51
- Зарегистрирован: 13 июл 2017, 15:26
- Репутация: 3
- Откуда: Благовещенск, Амурская обл.
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Тема очень интересная, особенно с ускорением по S кривой. Но вот такой вопрос у меня (возможно я чего то недопонимаю):
Я год назад решил сделать отдельный контролер на STM32F407VET6 и столкнулся с тем, что artcam выгружает рельефы в линейной интерполяции (куча отдельных команд в G кодах с мелким шагом) - получалось так, что станок не успевая разогнаться на одной команде начинал тормозить и следом начиналась новая команда. Таким образом станок двигался на низкой скорости, не успевая разогнаться. Терялась скорость обработки увеличивались станкочасы.
Пришлось внутри реализовать конвейер команд G кода, где анализировалось движение на четыре команды вперед, и станок мог разгонятся до полной скорости планируя ускорение и торможение в будущем. Удалось добиться увеличения обработки скорости в два раза.
И вот я так и не придумал как это можно реализовать, если разделить задачи на несколько контролеров. (только если вводить дополнительные команды G кода)
Недавно пришел мне станок из Китая на PCI плате PCIMC-3D и ncstudio 5.5.6 Там так же нет реализации разгона до полной мощности.
Я год назад решил сделать отдельный контролер на STM32F407VET6 и столкнулся с тем, что artcam выгружает рельефы в линейной интерполяции (куча отдельных команд в G кодах с мелким шагом) - получалось так, что станок не успевая разогнаться на одной команде начинал тормозить и следом начиналась новая команда. Таким образом станок двигался на низкой скорости, не успевая разогнаться. Терялась скорость обработки увеличивались станкочасы.
Пришлось внутри реализовать конвейер команд G кода, где анализировалось движение на четыре команды вперед, и станок мог разгонятся до полной скорости планируя ускорение и торможение в будущем. Удалось добиться увеличения обработки скорости в два раза.
И вот я так и не придумал как это можно реализовать, если разделить задачи на несколько контролеров. (только если вводить дополнительные команды G кода)
Недавно пришел мне станок из Китая на PCI плате PCIMC-3D и ncstudio 5.5.6 Там так же нет реализации разгона до полной мощности.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Пользуйтесь программами управления, где есть развитый планировщик траектории (Mach, LinuxCNC...). А если есть огромное желание, можно попробовать разобраться в коде планировщика LinuxCNC (код открытый) и попытаться сделать что-то подобное на ваших МК.
Чудес не бывает. Бывают фокусы.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
4 кадра предпросмотра траектории для планировщика хоть и достаточно, но мало. А налету парсить мелкозернистый gcode и тут же выполнять его - это ужас.slavik писал(а):Я год назад решил сделать отдельный контролер на STM32F407VET6 и столкнулся с тем, что artcam выгружает рельефы в линейной интерполяции (куча отдельных команд в G кодах с мелким шагом) - получалось так, что станок не успевая разогнаться на одной команде начинал тормозить и следом начиналась новая команда. Таким образом станок двигался на низкой скорости, не успевая разогнаться. Терялась скорость обработки увеличивались станкочасы.
Пришлось внутри реализовать конвейер команд G кода, где анализировалось движение на четыре команды вперед, и станок мог разгонятся до полной скорости планируя ускорение и торможение в будущем. Удалось добиться увеличения обработки скорости в два раза.
И вот я так и не придумал как это можно реализовать, если разделить задачи на несколько контролеров. (только если вводить дополнительные команды G кода)
В идеале gcode файл должен быть на SD карте и, до начала работы УП, этот файл нужно переварить в другой файл с компактным байт кодом. С этим байт кодом и будет работать планировщик во время выполнения УП. Т.к. парсить gcode налету будет не надо, планировщик сможет заглядывать в траекторию дальше чем на 4 кадра. Например, на 100-200 кадров. Соответственно, сможет выполнить УП без лишних задержек.
Лично я пойду своим путём. Работа с МК напрямую немного отличается от работы программ в операционной системе.Сергей Саныч писал(а):Пользуйтесь программами управления, где есть развитый планировщик траектории (Mach, LinuxCNC...). А если есть огромное желание, можно попробовать разобраться в коде планировщика LinuxCNC (код открытый) и попытаться сделать что-то подобное на ваших МК.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Называется это Look ahead во всех нормальных ЧПУ есть, некоторые умеют "просматривать" код на заданное кол-во.slavik писал(а):Пришлось внутри реализовать конвейер команд G кода, где анализировалось движение на четыре команды вперед, и станок мог разгонятся до полной скорости планируя ускорение и торможение в будущем.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.