LCNC управление шпинделем "наоборот"

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Serg »

SVP писал(а):Как-бы сделать так, чтобы линейно напряжение на выходе менялось, а не по экспоненте.
Характеристика заряда/разряда конденсатора нелинейна. Но можно использовать какой-то маленький её кусочек, на котором нелинейность не так заметна. Но для этого потребуется схема на ОУ, я тут соседней теме один из вариантов выложил.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

UAVpilot писал(а):
SVP писал(а):Как-бы сделать так, чтобы линейно напряжение на выходе менялось, а не по экспоненте.
Характеристика заряда/разряда конденсатора нелинейна. Но можно использовать какой-то маленький её кусочек, на котором нелинейность не так заметна. Но для этого потребуется схема на ОУ, я тут соседней теме один из вариантов выложил.
Ммм... настолько нелинейна ? Хотя конденсатор там может довольно древний, нашел в сусеках.
Попробую найти какой-нибудь поновее. Есть ли информация о том, какие конденсаторы наиболее линейны ?
Откудаб выкусить :)

ОУ это хорошо, но пока я их закуплю...
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

Попробовал разные конденсаторы "посувать".
То, что было в наличии.
Толку в общем-то никакого, всё равно всё офигенно нелинейно.

Может какие-нибудь танталовые итп получше ? Ионисторы ? Гдеж их токо взять...

Выдергиваю его вообще, мультиметр начинает показывать вроде как гораздо более правильные значения.
(усредняет сам похоже)
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

Ок, другой вопрос, гдеб почитать и посмотреть примеры решения следующей задачи.
Хочу иметь некую таблицу соответствия "установленная скорость" - "подаваемое на pwm", т.е. корректировать вручную.
Или это только в исходники лезть ?
Где-то ведь производится рассчет исходя из текущей установленной скорости вращения, и максимальной необходимой.
Вот там-бы поправить...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Serg »

Дело не в типе конденсатора, а в его физике.
Вот график заряда конденсатора - это экспонента
cap-charge.png (2978 просмотров) <a class='original' href='./download/file.php?id=60948&mode=view' target=_blank>Загрузить оригинал (24.65 КБ)</a>
Например можно использовать только кусок этой характеристики от 0 до 20%, но тогда надо будет изменить частоту или ёмкость соотв. образом и напряжение на конденсаторе увеличить в 5 раз.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

Да, похоже четко соответствует наблюдаемому.

UAVpilot писал(а):Например можно использовать только кусок этой характеристики от 0 до 20%, но тогда надо будет изменить частоту или ёмкость соотв. образом и напряжение на конденсаторе увеличить в 5 раз.
Это понятно, и чем кусок меньше тем будет линейнее. Пока смирюсь с тем что есть, на будущее может имеет смысл подумать над ОУ итп.

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

Это всё для лазерной выжигалки. Хочется уметь корректировать её мощность нелинейно, т.к. в зависимости от материала, самого лаз. диода итп
для получения равномерного цвета нужно по-разному менять выходную мощность лазера в зависимости от установленной.
Т.е. там тоже всё нелиненое совсем.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Serg »

SVP писал(а):Но я предпочел-бы научиться исправлять программно.
Физика с математикой должны тебе помочь. :)
Формула зарада конденсатора известна (экспонента) - надо просто входное значение pwmgen скорректировать по обратной экспоненте.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

UAVpilot писал(а):
SVP писал(а):Но я предпочел-бы научиться исправлять программно.
Физика с математикой должны тебе помочь. :)
Формула зарада конденсатора известна (экспонента) - надо просто входное значение pwmgen скорректировать по обратной экспоненте.
Дык в этом и вопрос: где покурить примеры подобных доделок ?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Serg »

В учебниках физики и математики. :)

Если мне не изменяет мой склероз, напряжение на конденсаторе меняется согласно формуле:
mimetex.png
mimetex.png (901 байт) 2931 просмотр
Следовательно чтобы скомпенсировать её нелинейность входное значение должно меняться по обратному закону. Сейчас думать над такими высокими материями не готов, но как минимум в обратной формуле не должно быть "1-", степень вроде должна остаться отрицательной... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sas_75
Мастер
Сообщения: 463
Зарегистрирован: 10 мар 2015, 11:03
Репутация: 115
Настоящее имя: Сергей
Откуда: Владивосток
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение sas_75 »

Можно сделать проще: осуществить зарядку конденсатора постоянным током на одном транзисторе по схеме генератра тока, тогда зависимость напряжения на конденсаторе будет линейна от тока: U = I/C. Вот только напряжение с конденсатора надо подавать на полевой транзистор, либо использовать операционный усилитель с входным каскадом на полевиках. Можно и интегратор на ОУ использовать.

Про расчет транзисторного варианта можно почитать здесь:
http://www.electronicsblog.ru/impulsnay ... -toka.html
Вложения
ГТ.jpg
ГТ.jpg (13.04 КБ) 2925 просмотров
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

UAVpilot писал(а):В учебниках физики и математики.
Открыл парочку, ни в одном не нашел ничего про linuxCnC и его внутреннее устройство.
В какой главе за какой класс это описано ?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Serg »

SVP писал(а):В какой главе за какой класс это описано ?
Попробуй дальше мой пост почитать - я после той строчки, что ты отквотил практически всё написал, осталось уточнить детали.
Вот и помогай людям... :(
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

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

Есть проблема с тем, куда это всё в lcnc "сувать" :)
Пример-бы какой-нибудь...
Но уже ясно, что малой кровью не допилить, и придется читать маны.
Кто людям помогает - тот тратит время зря, хорошими делами прославится нельзя :).
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Сергей Саныч »

SVP писал(а):Есть проблема с тем, куда это всё в lcnc "сувать" :)
Имеет смысл копать здесь http://www.linuxcnc.org/docs/html/man/m ... rve.9.html
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Nick »

SVP писал(а):Пример-бы какой-нибудь...
Но уже ясно, что малой кровью не допилить, и придется читать маны.
1. надо понять как работать с пинами в hal, это http://www.cnc-club.ru/wiki/index.php/% ... %D1%8B_hal
2. потом прочитать про компонеты: http://www.cnc-club.ru/wiki/index.php/% ... %D1%8B_hal
3. Потом прикинуть какие компоненты и пины понадобятся: компоненты: http://www.cnc-club.ru/wiki/index.php/% ... %D1%8B_hal (внизу)

потом пробуешь все это сделать в custom.hal, ну и вешай сюда для дальнейших коментариев.
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

Почитал, немного непонятно.

Кажется, что для управления надо встроить в цепочку свой компонент, и в нем посредством функции производить расчеты.

Не могу понять пока только одного: где сам код выполняемой функции-то должен быть ?
Вот есть некий энкодер
http://linuxcnc.org/docs/html/man/man9/encoder.9.html

Своё мне такое как-куда добавить ? Как свой компонент hal сделать ? Личный, с моим поведением.
Или речь о том, что надо из имеющихся компонент собрать некий аля-конечный автомат, который модифицирует значение
посредством простых операций ?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Сергей Саныч »

SVP писал(а):Или речь о том, что надо из имеющихся компонент собрать некий аля-конечный автомат, который модифицирует значение
посредством простых операций ?
Свой компонент тоже разработать можно. Но это если "аля-конечный автомат" из готовых кубиков не получается собрать (нет каких-то кубиков, либо слишком громоздкая конструкция выходит.
SVP писал(а):Еще раз: нет проблем с тем, чтобы вычислить необходимые значения, более того, они не такие как получатся по твоей формуле,
их очевидно можно будет получить только путем калибровки, т.к. светимость лазерного диода не линейна, и поглощение
обрабатываемым телом излучения тоже не вполне линейно.
То есть в конечном итоге есть некая эмпирическая зависимость? Тогда, как я уже писал, имеет смысл вставить компонент LINCURVE. У него есть один "аналоговый" вход и один "аналоговый" выход. А зависимость выходного сигнала от входного задается таблицей из максимум 16 пар значений "вход-выход". Для промежуточных значений применяется линейная интерполяция.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Nick »

SVP писал(а):Не могу понять пока только одного: где сам код выполняемой функции-то должен быть ?
Вот есть некий энкодер
Вот он: http://git.linuxcnc.org/gitweb?p=linuxc ... d1;hb=HEAD

В подавляющем большинстве случаев писать свой компонент не приходится.
Опиши свою зависимость?
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение SVP »

Да, думаю lincurve мне подойдет, хотелось в целом понимать какие есть возможности.
Можно было-бы написать на С, как-то собрать и подключить свою функцию ?

Зависимость у меня пока не вполне понятная (надо еще на свежую голову подумать тщательно).
Но похоже по набору значений в первом приближении подойдет.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LCNC управление шпинделем "наоборот"

Сообщение Nick »

Да, можно. Ищи по форуму comp и halcompile

ну и
http://linuxcnc.org/docs/html/hal/comp.html
http://linuxcnc.org/docs/html/man/man1/ ... ile.1.html
Ответить

Вернуться в «LinuxCNC»