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


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

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

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

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

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

Сообщение Ale » 28 июн 2015, 11:01

Пока не удалось собрать полноценный стенд (дома нет места, на работу не могу пронести железки - потом не вынесу) отлаживаю софт на эмуляторе

К сожалению пока не знаю - может ли протеус моделировать "нагрузку" на ось двигателя, поэтому пока мотор как бы не нагружен. Но все равно результат довольно показателен

Вот отработка "ступеньки" при простом "П" регуляторе (коэффициент Kp большой, поэтому быстро доезжаем но есть перерегулирование
П регулирование.jpg
П регулирование.jpg (225.28 КБ) Просмотров: 2133


Вот отработка "ступеньки" при простом "П" регуляторе (коэффициент Kp маленький, медленно доезжаем)
П регулирование - 2.jpg
П регулирование - 2.jpg (226.43 КБ) Просмотров: 2133


А вот отработка настроенным "ПД" регулятором
ПД регулирование.jpg
ПД регулирование.jpg (219.62 КБ) Просмотров: 2133


Есть еще мелкие доделки прошивки. Иногда залипает в крайних положениях. Допилю и опубликую...
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1415
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 536 раз.
Поблагодарили: 567 раз.
Баллы репутации: 272
ТехнарьТехнарьТехнарь

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

Сообщение Fox-48 » 28 июн 2015, 13:07

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

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

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

Надо было с лампочки начинать. С другой стороны вчера 12В моторчик через шилд покрутил - ничего не горело.

Привет. Я, похоже, точно так же спалил новый мост. В одну сторону крутит, в другую поет. Где, говоришь, звонить надо?

P.S. Нет, у меня другая история... Я случайно замкнул корпус блока питания с корпусом двигателя через опорную раму моего сима. И на этот раз, похоже, вылетели оба моста. Пойду свечку поставлю, а то не везет мне что-то... :cry:
Fox-48
Комсорг
 
Сообщения: 128
Зарегистрирован: 28 июн 2011, 09:33
Благодарил (а): 27 раз.
Поблагодарили: 12 раз.
Баллы репутации: 15
Новичок

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

Сообщение Fox-48 » 28 июн 2015, 14:20

В дополнение к предыдущему посту: целы мосты. Устранил замыкание и мосты оказались рабочими. Свечка помогла :D
Fox-48
Комсорг
 
Сообщения: 128
Зарегистрирован: 28 июн 2011, 09:33
Благодарил (а): 27 раз.
Поблагодарили: 12 раз.
Баллы репутации: 15
Новичок

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

Сообщение Ale » 29 июн 2015, 22:04

Блин, не могу понять - чего у меня мост сгорел. IBT-2... Читаю даташит - у него вроде встроенная защита от всего... А у меня движок только дернулся и ага, моста нет... :(
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1415
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 536 раз.
Поблагодарили: 567 раз.
Баллы репутации: 272
ТехнарьТехнарьТехнарь

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

Сообщение Fox-48 » 29 июн 2015, 23:57

Ale писал(а):Блин, не могу понять - чего у меня мост сгорел. IBT-2... Читаю даташит - у него вроде встроенная защита от всего... А у меня движок только дернулся и ага, моста нет... :(

Я так понял, у тебя такой же мост, что и у меня? Может сам мост бракованый попался? У меня все работает на них, сегодня около часа "катался" - все хорошо. Если надо, могу схему нарисовать как у меня подключено.
Fox-48
Комсорг
 
Сообщения: 128
Зарегистрирован: 28 июн 2011, 09:33
Благодарил (а): 27 раз.
Поблагодарили: 12 раз.
Баллы репутации: 15
Новичок

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

Сообщение Spirit » 30 июн 2015, 03:42

С интересом слежу за веткой... жаль половины информации пока не понимаю :D , ну да ладно со временем разберусь.
Я хотел уточнить- Вы ШИМ подаете на вход INH (3 нога BT79xx), а направление на вход IN?
Судя по таблице из даташита, если подавать на INH ШИМ, то драйвер будет постоянно выключаться при 0.
Почему Вы не подключаете так как указано в даташите... тобиш ШИМ на вх. IN, лог. еденицн - на INH, а направление задавать логикой - переключая ШИМ между входами IN 1 и 2 ключа? Или я что-то не правильно понял из описания?

Еще вопрос к Але по поводу ваших моторов. Я долго и безрезультатно пытался выбить у Китайцев график зависимости потребляемого тока от нагрузки. Они к сожалению не говорят, какую мощность они указали в даташите. 350 Вт - это выходная мощность или потребляемая. номинальная или максимальная. Если 350Вт это все же номинальная выходная, то судя по графикам аналогичных моторов других производителей, потребляемая может легко переваливать за 1 кВт... а рассчитан ли на такие нагрузки этот мост?
Аватара пользователя
Spirit
SIMER
 
Сообщения: 273
Зарегистрирован: 18 ноя 2014, 14:40
Откуда: Киев
Благодарил (а): 73 раз.
Поблагодарили: 91 раз.
Баллы репутации: 46
Пользователь

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

Сообщение Ale » 30 июн 2015, 09:03

Fox-48 писал(а):Я так понял, у тебя такой же мост, что и у меня? Может сам мост бракованый попался? У меня все работает на них, сегодня около часа "катался" - все хорошо. Если надо, могу схему нарисовать как у меня подключено.


Как я понял, у тебя 12В движки? На какую мощность рассчитаны?

Spirit писал(а):С интересом слежу за веткой... жаль половины информации пока не понимаю , ну да ладно со временем разберусь.
Я хотел уточнить- Вы ШИМ подаете на вход INH (3 нога BT79xx), а направление на вход IN?
Судя по таблице из даташита, если подавать на INH ШИМ, то драйвер будет постоянно выключаться при 0.
Почему Вы не подключаете так как указано в даташите... тобиш ШИМ на вх. IN, лог. еденицн - на INH, а направление задавать логикой - переключая ШИМ между входами IN 1 и 2 ключа? Или я что-то не правильно понял из описания?


Давай на "ты"? Все ты правильно понял. Просто при стандартном управлении для IBT-2 потребуется четыре ноги управления (и два канала ШИМ). А при нестандартном - три (при этом схема управления становится как раз "классической" - один ШИМ и два пина направления).

В даташите на BTS7960 написано, что подача "лог 0" на ногу INH драйвера приводит к ВЫКЛЮЧЕНИЮ обоих силовых ключей (верхнего и нижнего). А вот при подаче "лог 1" на эту ногу один из ключей включается (какой именно зависит от сигнала на ноге IN драйвера).
Отсюда и возник альтернативный способ управления (описанный, кстати, в даташите на IBT-2) - подавать ШИМ на объединенные ноги INH обоих драйверов, а направление задавать установкой ног PWM. Тогда при "лог 0" на ШИМ все 4 силовых ключа должны быть выключены, а при "лог 1" включаются два драйвера, а вот верхний или нижний ключи зависит от уровней сигналов на ногах IN (PWM) моста.

Но что-то пошло не так :(

Spirit писал(а):Еще вопрос к Але по поводу ваших моторов. Я долго и безрезультатно пытался выбить у Китайцев график зависимости потребляемого тока от нагрузки. Они к сожалению не говорят, какую мощность они указали в даташите. 350 Вт - это выходная мощность или потребляемая. номинальная или максимальная. Если 350Вт это все же номинальная выходная, то судя по графикам аналогичных моторов других производителей, потребляемая может легко переваливать за 1 кВт... а рассчитан ли на такие нагрузки этот мост?


В спецификации на мой мотор, которую дали китайцы, указан еще ток - 25А. Но в таком случае мощность электрическая должна быть равна 24В * 25А = 600Вт. В общем, непонятки пока. Нужно будет самому измерить. Я пока для себя решил, что 600Вт это подводимая мощность, а 350Вт как раз полезная, что в общем укладывается в теорию...
Но даже если мост и не рассчитан на такие нагрузки (хотя он по паспорту до 43А, а кратковременно до 60А), должна сработать защита по перегрузке. А он просто сгорел. Вот что удручает.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1415
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 536 раз.
Поблагодарили: 567 раз.
Баллы репутации: 272
ТехнарьТехнарьТехнарь

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

Сообщение Fox-48 » 30 июн 2015, 11:06

Ale писал(а):Как я понял, у тебя 12В движки? На какую мощность рассчитаны?

Да, на 12. Про мощьность что-то не знаю, не смотрел. Движки от ВАЗ 2110, на второй скорости пишут, что ток 5А.
Ale писал(а):В спецификации на мой мотор, которую дали китайцы, указан еще ток - 25А. Но в таком случае мощность электрическая должна быть равна 24В * 25А = 600Вт. В общем, непонятки пока. Нужно будет самому измерить. Я пока для себя решил, что 600Вт это подводимая мощность, а 350Вт как раз полезная, что в общем укладывается в теорию...
Но даже если мост и не рассчитан на такие нагрузки (хотя он по паспорту до 43А, а кратковременно до 60А), должна сработать защита по перегрузке. А он просто сгорел. Вот что удручает.

На моем первом мосту тоже защита не сработала, правда у меня там по-другому получилось, но плечо выгорело.
Fox-48
Комсорг
 
Сообщения: 128
Зарегистрирован: 28 июн 2011, 09:33
Благодарил (а): 27 раз.
Поблагодарили: 12 раз.
Баллы репутации: 15
Новичок

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

Сообщение Spirit » 01 июл 2015, 01:53

Ale писал(а):В даташите на BTS7960 написано, что подача "лог 0" на ногу INH драйвера приводит к ВЫКЛЮЧЕНИЮ обоих силовых ключей (верхнего и нижнего). А вот при подаче "лог 1" на эту ногу один из ключей включается (какой именно зависит от сигнала на ноге IN драйвера).
Отсюда и возник альтернативный способ управления (описанный, кстати, в даташите на IBT-2) - подавать ШИМ на объединенные ноги INH обоих драйверов, а направление задавать установкой ног PWM. Тогда при "лог 0" на ШИМ все 4 силовых ключа должны быть выключены, а при "лог 1" включаются два драйвера, а вот верхний или нижний ключи зависит от уровней сигналов на ногах IN (PWM) моста.

Спасибо за подробный ответ, теперь все разложилось по полочкам. А если по какой-то случайности на оба пина одновременно попадет "лог.1" драйвер это нормально воспримет?

Ale писал(а):В спецификации на мой мотор, которую дали китайцы, указан еще ток - 25А. Но в таком случае мощность электрическая должна быть равна 24В * 25А = 600Вт. В общем, непонятки пока. Нужно будет самому измерить. Я пока для себя решил, что 600Вт это подводимая мощность, а 350Вт как раз полезная, что в общем укладывается в теорию...
Но даже если мост и не рассчитан на такие нагрузки (хотя он по паспорту до 43А, а кратковременно до 60А), должна сработать защита по перегрузке. А он просто сгорел. Вот что удручает.


Я так понял, что 25А, - это номинальный ток и его при старте можно смело умножать на 3. Судя по графику аналогичного двигателя, он может тягать достаточный вес, правда вне зоны эффективности.

Но ты же без нагрузки двигатель запускал... Странно, что защита не сработала. Может китайцы просто при сборке где-то накосячили? Я после получения моста убирал шарики припоя между ногами BTN :(. Китайцы не удосужились помыть плату.

Изображение
Аватара пользователя
Spirit
SIMER
 
Сообщения: 273
Зарегистрирован: 18 ноя 2014, 14:40
Откуда: Киев
Благодарил (а): 73 раз.
Поблагодарили: 91 раз.
Баллы репутации: 46
Пользователь

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

Сообщение Ale » 01 июл 2015, 10:21

Spirit писал(а):Спасибо за подробный ответ, теперь все разложилось по полочкам. А если по какой-то случайности на оба пина одновременно попадет "лог.1" драйвер это нормально воспримет?


При одинаковых сигналах на ногах IN обоих драйверов моста и при "лог1" на ногах INH обоих драйверов мотор будет должен по идее находиться в режиме "динамического" торможения, поскольку оба конца его обмотки будут подключены либо к силовой "земле" (если на ногах IN "лог0", или к силовому питанию.
И тут конечно вопрос щекотливый - по сути обмотка через какие-то милиОмы получается закороченная... Я не очень представляю, к чему приводит попытка закоротить обмотки раскрученного мотора. Обычно для "динамического" торможения обмотки не закорачиваются, а подключаются к тормозному резистору...
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1415
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 536 раз.
Поблагодарили: 567 раз.
Баллы репутации: 272
ТехнарьТехнарьТехнарь

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

Сообщение SimAl » 01 июл 2015, 12:05

Ale писал(а):Блин, не могу понять - чего у меня мост сгорел. IBT-2... Читаю даташит - у него вроде встроенная защита от всего... А у меня движок только дернулся и ага, моста нет... :(
По поводу токовой защиты там написано "•Linear current limiter". Хз, что это значит, но вполне возможно, что это защита не от пикового тока, а от постоянного. Можно попробовать ставить в параллель с мотором низкоомный резистор порядка 0,1Ом. Он понизит высокий (пусковой) ток, но не сильно будет влиять на низкий. Если это следствие повышенного тока, конечно, а не обратного напряжения или еще чего-то.

Upd. :oops: Это я про VNH2SP30. Что такое IBT-2... я не знаю.
Аватара пользователя
SimAl
SIMER
 
Сообщения: 324
Зарегистрирован: 22 ноя 2013, 20:03
Откуда: Кропивницкий
Благодарил (а): 56 раз.
Поблагодарили: 219 раз.
Баллы репутации: 108
ТехнарьТехнарь

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

Сообщение Ale » 01 июл 2015, 13:26

SimAl писал(а):Upd. Это я про VNH2SP30. Что такое IBT-2... я не знаю.

IBT-2 - это полный мост на двух BTS7960
Вот тут автор не заморачивается, а управляет всего по ДВУМ ножкам - два ШИМ подает (строго по очереди - если одни ШИМ включен - другой выход = 0) А остальные ноги управления прямо от источника питания притягивает на +5 В
http://www.hessmer.org/blog/2013/12/28/ibt-2-h-bridge-with-arduino/
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1415
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 536 раз.
Поблагодарили: 567 раз.
Баллы репутации: 272
ТехнарьТехнарьТехнарь

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

Сообщение Ale » 01 июл 2015, 18:55

В общем - вот прошивка для Arduino и MonsterMotor Shield (ноги ардуины соответствуют ногам шилда).
Как там пишут буржуи - используйте ее на свой страх и риск, изменяйте как хотите. Я ни за что не отвечаю :lol: :lol: :lol:

Особенности прошивки:
1 - управление - передача данных формате "LXXRXX" , где XX - 16-ричное предствление байта задаваемой позиции.

2 - В прошивке реализовано PD регулирование. Соответственно коэффициенты Kp и Kd. Можно перед компиляцией в тексте программы править, а можно и в процессе отладки, послав по интерфейсу команду (по три символа на коэффициент). Формат:

"PXX" - установка параметра Kp (XX - 16-ричное число) для коэффициента Kp
"DXX" - установка параметра Kd

3 - частота ШИМ - 100 Гц. Шим реализуется программно, на таймере.

В тексте программы - комментарии

Так же предлагаю программу для настройки и визуализации.

Ale_2DOF_Arduino_code_PD.rar
(4.95 КБ) Скачиваний: 53


ardSimCTRL.rar
(331.26 КБ) Скачиваний: 47
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1415
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 536 раз.
Поблагодарили: 567 раз.
Баллы репутации: 272
ТехнарьТехнарьТехнарь

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

Сообщение Death_Morozz » 01 июл 2015, 19:29

Ale А ПИД регулирование планируется?
Хочешь сделать хорошо - сделай это сам: http://infarctrec.ru/texts.htm
Изображение
Аватара пользователя
Death_Morozz
Фраерок
 
Сообщения: 2610
Зарегистрирован: 11 янв 2007, 23:35
Откуда: Ростов-на-Дону
Благодарил (а): 738 раз.
Поблагодарили: 290 раз.
Баллы репутации: 200
ТехнарьТехнарьТехнарь

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

Сообщение Ale » 01 июл 2015, 19:33

Death_Morozz писал(а):Ale А ПИД регулирование планируется?


Дед, А зачем? Для СИМа полный ПИД не нужен (ИМХО). Но теперь я примерно представляю как его сделать. Если поймем, что действительно нужен. Собственно "I" составляющая просто минимизирует ошибки регулирования - позволяет МЕДЛЕННО доехать до точной позиции. Нужно ли это для СИМа? Давай обсудим. ;)
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1415
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 536 раз.
Поблагодарили: 567 раз.
Баллы репутации: 272
ТехнарьТехнарьТехнарь

Пред.След.

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

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

Сейчас этот форум просматривают: Yahoo [Bot], Yandex [Bot] и гости: 9

x

#{title}

#{text}