Перейти к содержанию
    

А можно поинтересоваться у ТСа - этот станок одноразовый? Отрезал и все...через час включат или непрерывно на равные части? Вы тут о позиционировании говорите,об останове, а зачем? Вращалка вращается и режет на равные длины всегда.Привод будет держать скорость. Если он там раз в час режет, то еще проще- использовать энкодер как микрик: нажал кнопку - сделал рез - сработал микрик-отключился -программа вывела в рабочую точку медленно. Какие-то траектории придумываете, обратные связи по положению

Изменено пользователем somebody111

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но автор имеет свободу в выборе интервала времени.

У него задача позиционирования.

Да, у него разомкнутое по времени управление, т.е. необходимо обеспечить совмещение цели и объекта в заданной координате и с заданной скоростью объекта.

И это не позиционирование в чистом смысле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ну? Cами прочитайте что написали.

Нет никакого желаемого движения.

В реальности есть только задача попасть в нужную точку и есть ограниченный но достаточно произвольный промежуток времени на это.

 

И еще, для решения задачи по оптимальному выбору траектории (терминальное управление в вашем смысле) требуется каждый раз решать систему уравнений.

Т.е. оптимизировать. Да, и модель объекта надо знать точно. Абсурд.

 

С тем же успехом можно предложить использовать нейросети, и они вам и объект идентифицируют и точнейшую траекторию укажут.

Чипсеты уже производят, только автору свой контроллер придётся выкинуть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну? Cами прочитайте что написали.

Нет никакого желаемого движения.

В реальности есть только задача попасть в нужную точку и есть ограниченный но достаточно произвольный промежуток времени на это.

Т.е. Вы не понимаете, что такое фазовые координаты и управление с ограничениями?

Тогда и смысла говорить для Вас очень мало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

бррр

#define encoder_end_point 5000 //где надо начать тормозить - выбирать с учётом проноса

#define encoder_start_point 1000 //начальное положение - выбирать с учетом проноса

#define speed_eps 0.01 //скорость, которую считаем нулевой

#define min_speed_zero 10 //скорость, с которой двигатель должен вернуть нож в начальное положение

bla-bla-bla

--

if (encoder_pos>=encoder_end_point) //если нож в точке, где начать тормозить включить флаг начала торможения

begin_tormoz=true;

 

---

if (begin_tormoz) //если работает процедура торможения: даёт задание приводу 0 и ждем, пока частота вращения не снизится до минимума; как только дойдет, торможение завершено и //запускаем процедуру возврата в исходное положения

{

speed_ref=0;

if (abs(speed)<=speed_eps)

{

begin_tormoz=false;

begin_zero_pos=true;

}

if (begin_zero_pos)

speed_ref=min_speed_zero;

if (encoder_pos>=encoder_start_point)

begin_zero_pos=0;speed_ref=0;

}

Прецизионно и наличие разработчика не требуется, понятно даже Васе-столяру.Будет работать как атомные часы 25 лет. Могу сделать на релейной автоматике без программы, тогда без замены реле года 2 ;)

Изменено пользователем somebody111

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прецизионно и наличие разработчика не требуется, понятно даже Васе-столяру.Будет работать как атомные часы 25 лет. Могу сделать на релейной автоматике без программы, тогда без замены реле года 2 ;)

Нет коллеги.

Все что действительно автору нужно - это генерация нормальных сорсов тюнингированного в Matlab-e PIDа. (ADRC я пока тут выкладывать не буду :biggrin: )

Потому что он сейчас не может сопоставить свою реализацию PID-а с Matlab-овской.

Выглядит это так:

Тюнингируется штатный дискретный PID как я писал в самом начале.

Потом строится такая модель с тюнингированным пидом и параллельно для сравнения идентичности подсистема полностью копирующая штатный PID

post-2050-1492203139_thumb.png

Подсистему сделал я. Чтобы она совпадала в штатном пиде должен быть выбран режим clamping для anti-windup.

Подсистема внутри выглядит так:

post-2050-1492203272_thumb.png

И теперь автор может спокойно из Simulimk-а сгенерить сорсы на C для своего контроллера для этой подсистемы.

Он получит понятную функцию без магических matlabовских чисел, где все константы передаются как аргументы.

А константы он будет брать из полей в диалоге штатного PID-а каждый раз когда будет перетюнингировать его.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно поинтересоваться у ТСа - этот станок одноразовый? Отрезал и все...через час включат или непрерывно на равные части?

Режет без остановки по несколько часов на равные части.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возвращаемся в самое-самое начало - зачем тебе позиционировать нож в начальное положение, если он будет всегда вращаться?Длина полотна будет определяться временем оборота ножа на 360 и скоростью полотна. Первое -ты задаешь просто частотой вращения, а второе ты влиять не можешь. За время одного оборота твоя картонка сместится на расстояние L=скорость линии*время оборота ножа. Стабилизируешь скорость - стабилизируешь длину того,что режешь.Ну хорошо -сделай опцию, чтобы перед каждой резкой нож возвращался в начальное положение по алгоритму выше- определяешь в какую сторону вращаться, даёшь небольшую скорость, чтобы не проскочить и пока энкодер на насчитает нужное число вращать, как только насчитает - стоп. Алгоритм есть выше. Оно тебе надо делать отрезной станок вертикального взлета с самонаведением?

Изменено пользователем somebody111

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возвращаемся в самое-самое начало - зачем тебе позиционировать нож в начальное положение, если он будет всегда вращаться?Длина полотна будет определяться временем оборота ножа на 360 и скоростью полотна. Первое -ты задаешь просто частотой вращения, а второе ты влиять не можешь. За время одного оборота твоя картонка сместится на расстояние L=скорость линии*время оборота ножа. Стабилизируешь скорость - стабилизируешь длину того,что режешь.Зачем его позиционировать?Ну если хочешь выделиться, ну сделай функцию последнего реза по алгоритму выше, чтобы свести к минимуму "лишние обрезки", но не делай глупости типо -обратной связт по положению

На каждом обороте будет остановка, чтобы выдержать требуемую среднюю скорость и при этом не отрезать на слишком маленькой скорости.

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

Это я уже писал раньше, но пост разросся, Вы позже подключились мне помогать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему не получается? Привод в 0 плавает?Реза не получается?

Усилия не хватает, полотно начинает прыгать, т.к. его уже не режут, а не спеша давят на него. Картон ломается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Графики-то будут? :)

Хотелось бы увидеть реакцию на скачок 1 - 4 В, а, после установившейся скорости, скачок обратно 4 -1 В.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Графики-то будут? :)

Хотелось бы увидеть реакцию на скачок 1 - 4 В, а, после установившейся скорости, скачок обратно 4 -1 В.

Будут, возможно даже сегодня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предложи поменять редуктор.Дело в том, что реализуемость вашего решения определяется приведенным моментом инерции.Если он большой, то резкий разгон/тормоз возможен будет, если поднять стопорный ток в приводе-это не есть хорошо для непрерывно работающего двигатель.А редуктор уменьшит и момент инерции, и нагрузку на двигатель. С вашими 4:1, приведенный момент инерции уменьшен в 16 раз и нагрузка на двигатель в 4 раза.Если сделаете 5:1, момент инерции уменьшится в 25 раз.Как влияет инерция на разгон смотрите выше в картинках.Изготовить редуктор-дорогое удовольствие, могут послать.Надо тогда предупредить, что по другому может не сработать, подведите их к станку, дайте Макс.задание скорости и обратите внимание на время разгона.Пусть сами увидят возможности двигателя.

---

Или наоборот, надо увеличить момент инерции на выходе редуктора/изменить конструкцию ножа и пр.Это проблема не электропривода-это проблема механиков и технологов.22кВт разогнать за 0.1 сек даже не обсуждается, редуктор быстро умрет.Можно извращаться над станком, но хорошего изделия не получится

Изменено пользователем somebody111

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...