MAL4X Научно-технический форум разработчиков симуляторов и автоматики


Симуляторы перегрузок. DIY электроника. ЭВМ. Компьютерные сети.
Up

Новейшая прошивка для Arduino.

Строим реалистичный симулятор перегрузок своими руками. Рекомендации. Советы.

Модераторы: Death_Morozz, null, Ale

Re: Новейшая прошивка для Arduino.

Сообщение электрик » 24 июн 2015, 00:35

AleПотестил с маленьким мотором и VNH3SP30 в дефолттовых настройках
#define TIMER_FREQ_HZ 2000 // частота основного таймера (timer2)
#define TIMER_PERIOD 20 // делитель для основного таймера, в результате частота ШИМ будет 2000/20 = 100 Гц
#define PWM_MAXW 19 // максимальная скважность ШИМ = 19/20 (95%)!!! Обязательно хотя бы на 1 меньше чем TIMER_PERIOD
#define PWM_MINW 3
Крутится и меняет направление.
когда поменял на настройки из последнего поста моторчик подпевать начал. Но опять не показатель, завтра на большом моторе попробую.
Аватара пользователя
электрик
Резидент
 
Сообщения: 379
Зарегистрирован: 30 мар 2011, 15:48
Откуда: Москва
Благодарил (а): 68 раз.
Поблагодарили: 145 раз.
Баллы репутации: 66
Технарь

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 24 июн 2015, 21:12

Погонял прошивку на эмуляторе сервомотора (60 RPM, с потенциометром обратной связи)... Блин, надо думать. Думать над ПИД. Или ПИ, на худой конец. потому как отклик на "скачок" позиции меня совершенно не удовлетворяет. Ввел опять П регулирование - классика, так сказать. И ведет себя классически - то перелетает, то вяленько подъезжает...
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 24 июн 2015, 22:03

Во, собрал виртуальный тестовый стенд :lol:

В протеусе - эмулятор arduino, сервомотор, и виртуальный компорт, на который я с программы ardSimCtrl посылаю сигналы (и принимаю)

Единственная сложность - протеус не может в реальном времени симулировать мотор и микроконтроллер, поэтому отклик примерно раз в 5 медленнее, чем с реального устройства.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Новейшая прошивка для Arduino.

Сообщение электрик » 25 июн 2015, 09:27

Вчера не успел собрать стенд, иногда и работу работать надо :D Сегодня постараюсь.
Аватара пользователя
электрик
Резидент
 
Сообщения: 379
Зарегистрирован: 30 мар 2011, 15:48
Откуда: Москва
Благодарил (а): 68 раз.
Поблагодарили: 145 раз.
Баллы репутации: 66
Технарь

Re: Новейшая прошивка для Arduino.

Сообщение электрик » 25 июн 2015, 14:34

Как и обещал собрал по быстрому стенд 24в, мост ir2104.
При настройках
#define TIMER_FREQ_HZ 1000 // частота основного таймера (timer2)
#define TIMER_PERIOD 10 // делитель для основного таймера,
#define PWM_MAXW 9 // максимальная скважность ШИМ меньше чем TIMER_PERIOD
#define PWM_MINW 1 // минимальная скважность ШИМ
Мотор еле заметно дергается.
Поменял на настройки
#define TIMER_CLOCK_FREQ 125000.0 // частота (после прескалера) на таймере (timer2)
#define TIMER_FREQ_HZ 2000 // частота основного таймера (timer2)
#define TIMER_PERIOD 20 // делитель для основного таймера, в результате частота ШИМ будет 2000/20 = 100 Гц
#define PWM_MAXW 19 // максимальная скважность ШИМ = 19/20 (95%)!!! Обязательно хотя бы на 1 меньше чем TIMER_PERIOD
#define PWM_MINW 3 // минимальная скважность ШИМ = 3/20 - сразу запускает мотор порезвее ))
Мотор начал вращаться но очень медленно.
Ale писал(а):Единственная сложность - протеус не может в реальном времени симулировать мотор и микроконтроллер, поэтому отклик примерно раз в 5 медленнее, чем с реального устройства.

Возможно это не протеус виноват.
Качество видео не ахти затер стеклышко на телефоне, И ОТКЛЮЧИТЕ ЗВУК :D
phpBB [video]
Аватара пользователя
электрик
Резидент
 
Сообщения: 379
Зарегистрирован: 30 мар 2011, 15:48
Откуда: Москва
Благодарил (а): 68 раз.
Поблагодарили: 145 раз.
Баллы репутации: 66
Технарь

Re: Новейшая прошивка для Arduino.

Сообщение электрик » 25 июн 2015, 15:10

Ale писал(а):В общем, поставил 700, 7, 7, 1 - перелеты пропали.

так и при 2000,10,9,1 - еле двигается мотор, мост не греется
Аватара пользователя
электрик
Резидент
 
Сообщения: 379
Зарегистрирован: 30 мар 2011, 15:48
Откуда: Москва
Благодарил (а): 68 раз.
Поблагодарили: 145 раз.
Баллы репутации: 66
Технарь

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 25 июн 2015, 15:48

электрик писал(а):
Ale писал(а):В общем, поставил 700, 7, 7, 1 - перелеты пропали.

так и при 2000,10,9,1 - еле двигается мотор, мост не греется

Поставь 2000,20,19,10 (последняя цифра - это минимальный ШИМ, ей можно играть (но не больше чем максимальный шим)
Я сейчас над новой прогой работаю... есть идеи...
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Новейшая прошивка для Arduino.

Сообщение электрик » 25 июн 2015, 16:01

Да немного веселей пошло но все равно очень медленно.
Аватара пользователя
электрик
Резидент
 
Сообщения: 379
Зарегистрирован: 30 мар 2011, 15:48
Откуда: Москва
Благодарил (а): 68 раз.
Поблагодарили: 145 раз.
Баллы репутации: 66
Технарь

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 25 июн 2015, 16:31

электрик писал(а):Да немного веселей пошло но все равно очень медленно.

Осциллограф есть? ШИМ можешь посмотреть? Скважность и вообще?
и поставь 2000,20,19,18 Даже интересно
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Новейшая прошивка для Arduino.

Сообщение электрик » 25 июн 2015, 16:34

Теперь только завтра, осциллограф дома. Хотя если получится то попозже вечером посмотрю.Отпишусь.
Аватара пользователя
электрик
Резидент
 
Сообщения: 379
Зарегистрирован: 30 мар 2011, 15:48
Откуда: Москва
Благодарил (а): 68 раз.
Поблагодарили: 145 раз.
Баллы репутации: 66
Технарь

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 26 июн 2015, 14:29

А у тебя на видео это именно звук мотора? он так на 100 Гц поет?

Я тут подумал - а чего мы не используем динамический тормоз, который как правило мостами реализуется (просто коротятся обмотки при установки обоих пинов DIR в одинаковый уровень. Ведь при этом мотор должен тормозиться?

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

Есть прошивка на "попробовать"
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Новейшая прошивка для Arduino.

Сообщение электрик » 27 июн 2015, 09:21

День добрый. Я тут приболел малех. Через пару дней из больницы приеду продолжим.
А звук это у меня на работе в мастеской компрессор 50кВт так орет.
Аватара пользователя
электрик
Резидент
 
Сообщения: 379
Зарегистрирован: 30 мар 2011, 15:48
Откуда: Москва
Благодарил (а): 68 раз.
Поблагодарили: 145 раз.
Баллы репутации: 66
Технарь

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 27 июн 2015, 12:08

электрик писал(а):День добрый. Я тут приболел малех. Через пару дней из больницы приеду продолжим.
А звук это у меня на работе в мастеской компрессор 50кВт так орет.

Выздоравливай.

А у меня вроде есть прогресс. Мне удалось завести не просто П, но ПД (пропорционально-дифференциальное) регулирование.
Тут ведь обычная проблема в том, что при наших скоростях и наших временах диф-составляющую довольно сложно отловить - мотор практически не успевает переместиться за 10 мс... Так вот я ввел кольцевой буфер с суммированием на 8 отсчетов, и в результате теперь диф составляющая (читай - "скорость") вполне разумно определяется и может участвовать в расчетах

Собственно теперь формула регулирования следующая

pwm = (error*Kp - speed*Kd);

Причем если скорость слагаемое speed*Kd по модулю больше чем error*Kp , то еще до достижения конечной точки мотор врубается в ОБРАТНОМ направлении - активно тормозится.

Поэтому в принципе коэффициент пропорционального регулирования Kp может быть достаточно большим (для чувствительной реакции на маленькие возмущения), при этом при больших возмущениях начинает работать Kd на активное торможение, исключая перелет.

Хотелось бы конечно более быстрого торможения... Но в любом случае надо пробовать то что есть... А дальше будем думать еще
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 27 июн 2015, 18:32

Ну воот. Хотел свой большой моторчик через IBT-2 покрутить.
Подключил так - R_EN и L_EN объединил и подал туда "медленный" шим, а на ноги LPWM и RPWM - сигналы направления.

Мотор проехал четверть оборота и все, бок питания в защите. Звоню мост - короткое по силовым ногам...

В общем - я неприятно удивлен и весьма озадачен. Никакие защиты не сработали... Похоже пусковым током выжгло.

Надо было с лампочки начинать. С другой стороны вчера 12В моторчик через шилд покрутил - ничего не горело.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 27 июн 2015, 20:31

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

Кстати, и у шилда есть токовые сенсоры. Тоже хорошо бы использовать... Так что вот...
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Пред.След.

Вернуться в X-SIMULATOR и RU-SIMULATOR & SimTools

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 22

cron
x

#{title}

#{text}