Страница 2 из 2

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

Добавлено: 17 окт 2015, 23:36
Serg
SVP писал(а):Как-бы сделать так, чтобы линейно напряжение на выходе менялось, а не по экспоненте.
Характеристика заряда/разряда конденсатора нелинейна. Но можно использовать какой-то маленький её кусочек, на котором нелинейность не так заметна. Но для этого потребуется схема на ОУ, я тут соседней теме один из вариантов выложил.

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

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

ОУ это хорошо, но пока я их закуплю...

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

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

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

Выдергиваю его вообще, мультиметр начинает показывать вроде как гораздо более правильные значения.
(усредняет сам похоже)

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

Добавлено: 18 окт 2015, 00:02
SVP
Ок, другой вопрос, гдеб почитать и посмотреть примеры решения следующей задачи.
Хочу иметь некую таблицу соответствия "установленная скорость" - "подаваемое на pwm", т.е. корректировать вручную.
Или это только в исходники лезть ?
Где-то ведь производится рассчет исходя из текущей установленной скорости вращения, и максимальной необходимой.
Вот там-бы поправить...

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

Добавлено: 18 окт 2015, 00:22
Serg
Дело не в типе конденсатора, а в его физике.
Вот график заряда конденсатора - это экспонента
cap-charge.png (3000 просмотров) <a class='original' href='./download/file.php?id=60948&mode=view' target=_blank>Загрузить оригинал (24.65 КБ)</a>
Например можно использовать только кусок этой характеристики от 0 до 20%, но тогда надо будет изменить частоту или ёмкость соотв. образом и напряжение на конденсаторе увеличить в 5 раз.

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

Добавлено: 18 окт 2015, 14:38
SVP
Да, похоже четко соответствует наблюдаемому.

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

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

Это всё для лазерной выжигалки. Хочется уметь корректировать её мощность нелинейно, т.к. в зависимости от материала, самого лаз. диода итп
для получения равномерного цвета нужно по-разному менять выходную мощность лазера в зависимости от установленной.
Т.е. там тоже всё нелиненое совсем.

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

Добавлено: 18 окт 2015, 20:29
Serg
SVP писал(а):Но я предпочел-бы научиться исправлять программно.
Физика с математикой должны тебе помочь. :)
Формула зарада конденсатора известна (экспонента) - надо просто входное значение pwmgen скорректировать по обратной экспоненте.

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

Добавлено: 18 окт 2015, 22:06
SVP
UAVpilot писал(а):
SVP писал(а):Но я предпочел-бы научиться исправлять программно.
Физика с математикой должны тебе помочь. :)
Формула зарада конденсатора известна (экспонента) - надо просто входное значение pwmgen скорректировать по обратной экспоненте.
Дык в этом и вопрос: где покурить примеры подобных доделок ?

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

Добавлено: 19 окт 2015, 01:06
Serg
В учебниках физики и математики. :)

Если мне не изменяет мой склероз, напряжение на конденсаторе меняется согласно формуле:
mimetex.png
mimetex.png (901 байт) 2953 просмотра
Следовательно чтобы скомпенсировать её нелинейность входное значение должно меняться по обратному закону. Сейчас думать над такими высокими материями не готов, но как минимум в обратной формуле не должно быть "1-", степень вроде должна остаться отрицательной... :)

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

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

Про расчет транзисторного варианта можно почитать здесь:
http://www.electronicsblog.ru/impulsnay ... -toka.html

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

Добавлено: 19 окт 2015, 09:58
SVP
UAVpilot писал(а):В учебниках физики и математики.
Открыл парочку, ни в одном не нашел ничего про linuxCnC и его внутреннее устройство.
В какой главе за какой класс это описано ?

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

Добавлено: 19 окт 2015, 12:42
Serg
SVP писал(а):В какой главе за какой класс это описано ?
Попробуй дальше мой пост почитать - я после той строчки, что ты отквотил практически всё написал, осталось уточнить детали.
Вот и помогай людям... :(

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

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

Есть проблема с тем, куда это всё в lcnc "сувать" :)
Пример-бы какой-нибудь...
Но уже ясно, что малой кровью не допилить, и придется читать маны.
Кто людям помогает - тот тратит время зря, хорошими делами прославится нельзя :).

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

Добавлено: 19 окт 2015, 13:50
Сергей Саныч
SVP писал(а):Есть проблема с тем, куда это всё в lcnc "сувать" :)
Имеет смысл копать здесь http://www.linuxcnc.org/docs/html/man/m ... rve.9.html

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

Добавлено: 21 окт 2015, 13:04
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, ну и вешай сюда для дальнейших коментариев.

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

Добавлено: 21 окт 2015, 15:17
SVP
Почитал, немного непонятно.

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

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

Своё мне такое как-куда добавить ? Как свой компонент hal сделать ? Личный, с моим поведением.
Или речь о том, что надо из имеющихся компонент собрать некий аля-конечный автомат, который модифицирует значение
посредством простых операций ?

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

Добавлено: 21 окт 2015, 15:47
Сергей Саныч
SVP писал(а):Или речь о том, что надо из имеющихся компонент собрать некий аля-конечный автомат, который модифицирует значение
посредством простых операций ?
Свой компонент тоже разработать можно. Но это если "аля-конечный автомат" из готовых кубиков не получается собрать (нет каких-то кубиков, либо слишком громоздкая конструкция выходит.
SVP писал(а):Еще раз: нет проблем с тем, чтобы вычислить необходимые значения, более того, они не такие как получатся по твоей формуле,
их очевидно можно будет получить только путем калибровки, т.к. светимость лазерного диода не линейна, и поглощение
обрабатываемым телом излучения тоже не вполне линейно.
То есть в конечном итоге есть некая эмпирическая зависимость? Тогда, как я уже писал, имеет смысл вставить компонент LINCURVE. У него есть один "аналоговый" вход и один "аналоговый" выход. А зависимость выходного сигнала от входного задается таблицей из максимум 16 пар значений "вход-выход". Для промежуточных значений применяется линейная интерполяция.

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

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

В подавляющем большинстве случаев писать свой компонент не приходится.
Опиши свою зависимость?

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

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

Зависимость у меня пока не вполне понятная (надо еще на свежую голову подумать тщательно).
Но похоже по набору значений в первом приближении подойдет.

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

Добавлено: 21 окт 2015, 16:51
Nick
Да, можно. Ищи по форуму comp и halcompile

ну и
http://linuxcnc.org/docs/html/hal/comp.html
http://linuxcnc.org/docs/html/man/man1/ ... ile.1.html