реклама на сайте
подробности

 
 
> Алгоритм линейного ускорения-торможения ШД, Есть элегантное решение?
dinam
сообщение May 4 2009, 04:53
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Сваял плату управления четырьмя ШД. В известной статье , авторства Л.Pидико есть формула: T = T0/(1+T0At), где T – длительность шага, T0 – начальная длительность шага, A – ускорение, t – текущее время. У меня управление ШД сделано на самом хилом Cyclone II. При попытке в лоб реализовать эту формулу съедаются все ресурсы FPGA даже при управлении одного ШД. Может быть есть более элегантное решение позволяющее вычислить период следующего шага при линейном ускорении-торможении?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Methane
сообщение May 4 2009, 05:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(dinam @ May 4 2009, 07:53) *
Сваял плату управления четырьмя ШД. В известной статье , авторства Л.Pидико есть формула: T = T0/(1+T0At), где T – длительность шага, T0 – начальная длительность шага, A – ускорение, t – текущее время. У меня управление ШД сделано на самом хилом Cyclone II. При попытке в лоб реализовать эту формулу съедаются все ресурсы FPGA даже при управлении одного ШД. Может быть есть более элегантное решение позволяющее вычислить период следующего шага при линейном ускорении-торможении?

Там же есть макрофункция ROM. В нее и запишите значения. А потом просто инкрементируйте адресс, с данных получайте время шага. Хотя что-то сомнительно что одно умножение на константу у вас циклон второй съело.
Go to the top of the page
 
+Quote Post
dinam
сообщение May 4 2009, 06:04
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Не совсем понял про какую вы таблицу говорите. Ведь у меня в этой формуле есть три переменные. T0 и А задаются с компьютера и t берется со счетчика в FPGA. Умножение практические не съедает ресурсов, используются аппаратные умножители. Основная проблема в делениии.
Go to the top of the page
 
+Quote Post
Methane
сообщение May 4 2009, 06:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(dinam @ May 4 2009, 09:04) *
Не совсем понял про какую вы таблицу говорите. Ведь у меня в этой формуле есть три переменные. T0 и А задаются с компьютера и t берется со счетчика в FPGA. Умножение практические не съедает ресурсов, используются аппаратные умножители. Основная проблема в делениии.

Ну так замените деление умножением. Если не можете формулу упростить.
Go to the top of the page
 
+Quote Post
dinam
сообщение May 4 2009, 07:38
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(Methane @ May 4 2009, 13:29) *
Ну так замените деление умножением. Если не можете формулу упростить.
А поконкретнее можно?
Цитата(evgeny_ch @ May 4 2009, 14:14) *
Не совсем верный заголовок в части формулировки линейное ускорение/торможение.
Ускорение ШД (точнее механизма с ШД) принимается равным константе, а изменяется лишь скорость (частота вращения).
Правильно говорить разгон/торможение как закон изменения скорости, который может быть и нелинейным.
Возможно вы и правы cheers.gif . Сейчас у меня реализован нелинейный закон изменения скорости при разгоне и торможении. К тому же ещё и можно задавать разные значения при разгоне/торможении. И всё это хозяйство немного ресурсов требует. А вот линейное изменение скорости у меня пока не получается.
Go to the top of the page
 
+Quote Post
Methane
сообщение May 4 2009, 07:51
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(dinam @ May 4 2009, 10:38) *
А поконкретнее можно?

Ну вынесите в таблицу значения

Y[i]=T0/(1+T0*A*t[i])

Или вообще сделайте обратную связь по перемещению шагового двигателя.
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение May 4 2009, 08:06
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(Methane @ May 4 2009, 11:51) *
Ну вынесите в таблицу значения

Y[i]=T0/(1+T0*A*t[i])

Или вообще сделайте обратную связь по перемещению шагового двигателя.

А без обратной связи по скорости ИМХО задача для произвольной нагрузки вообще не решается.
Go to the top of the page
 
+Quote Post
Methane
сообщение May 4 2009, 08:11
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(VladimirYU @ May 4 2009, 11:06) *
А без обратной связи по скорости ИМХО задача для произвольной нагрузки вообще не решается.

Не по скорости а по перемещению. И решается. Если забивать в программу момент который эта нагрузка создает. Но это в теории. А на практике, лучше повесить на двигатель енкодер с дырками, и по этому енкодеру смотреть, шагнул двигатель или еще нет.
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение May 4 2009, 08:23
Сообщение #9


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(Methane @ May 4 2009, 11:11) *
Не по скорости а по перемещению. И решается. Если забивать в программу момент который эта нагрузка создает. Но это в теории. А на практике, лучше повесить на двигатель енкодер с дырками, и по этому енкодеру смотреть, шагнул двигатель или еще нет.
Не совсем так или так но не совсем.
В этом случае коммутация ШД осуществляется импульсами энкодера,
т. н. автокоммутация. Позволяет избавиться от резонансов и потери шагов.
Это делается просто на аппаратном уровне, как в контроллерах для BLDC
приводов HDD и пр. крутилок.

Сообщение отредактировал evgeny_ch - May 4 2009, 08:28


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
Methane
сообщение May 4 2009, 08:26
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(evgeny_ch @ May 4 2009, 11:23) *
Не совсем так или так но не совсем.
В этом случает коммутация ШД осуществляется импульсами энкодера,
т. н. автокоммутация. Позволяет избавиться от резонансов и потери шагов.

Ну? Нафига в таком случае тот ваш алгоритм?
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение May 4 2009, 10:44
Сообщение #11


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(Methane @ May 4 2009, 11:26) *
Ну? Нафига в таком случае тот ваш алгоритм?
Тот алгоритм это какой? biggrin.gif
Я вроде и не предлагал алгоритмов.
Что касаемо ускорения, то его нужно рассматривать
применительно к механизму, но это не алгорим, аксиома называется.
Ненагруженный ШД (т. е. соотношение момента к инерции нагрузки)
может стартовать с максимальным ускорением, нагруженный с меньшим.
Что касается автонастройки, то без ОС это невозможно.


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dinam   Алгоритм линейного ускорения-торможения ШД   May 4 2009, 04:53
- - LessNik   С Cyclone II не работал. Но думаю, можешь сгенерит...   May 4 2009, 05:18
||- - dinam   Цитата(Methane @ May 4 2009, 14:51) Ну вы...   May 4 2009, 08:03
|||- - Methane   Цитата(dinam @ May 4 2009, 11:03) Если б ...   May 4 2009, 08:09
|||- - VladimirYU   Цитата(Methane @ May 4 2009, 12:11) Не по...   May 4 2009, 08:21
||- - dinam   Цитата(VladimirYU @ May 4 2009, 15:06) А ...   May 4 2009, 08:13
|- - evgeny_ch   Цитата(dinam @ May 4 2009, 10:38) А покон...   May 4 2009, 08:11
- - evgeny_ch   Цитата(dinam @ May 4 2009, 07:53) Сваял п...   May 4 2009, 07:14
- - _Pasha   Я тут подумал: раз у нас все сводится к конечным з...   May 4 2009, 08:53
|- - Огурцов   Поставьте датчик ускорения - будет красиво   May 4 2009, 09:38
- - khach   "Красиво" управлять шаговиком- это тольк...   May 4 2009, 10:22
|- - Methane   Цитата(khach @ May 4 2009, 13:22) По обра...   May 4 2009, 10:41
|- - khach   Цитата(Methane @ May 4 2009, 12:41) Зачем...   May 4 2009, 11:56
|- - dpss   Цитата(khach @ May 4 2009, 15:56) При пла...   May 5 2009, 15:51
|- - _Pasha   Цитата(dpss @ May 5 2009, 18:51) При S об...   May 5 2009, 17:13
- - Skywolf   а самый младший Cyclone II это 5 тыс. который что ...   May 7 2009, 07:01
- - dinam   Да это на 4600 LEs. По поводу разрядности делителя...   May 8 2009, 06:55


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 06:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01485 секунд с 7
ELECTRONIX ©2004-2016