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


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

Тестирование прошивки для АМС1.5

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

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

Сообщение taran_ob » 20 ноя 2012, 12:00

Ale писал(а):Физических ограничений нет, как я понимаю. Логически (программно) я в прошивке небольшое ограничение ввел.

Рекомендуют не больше 95% для нормальной подкачки верхнего ключа.

Ale писал(а):В паузах на ножках ШИМ низкий лог. уровень. Остальное зависит от моста. Как правило это означает, что открыты нижние ключи - динамическое торможение.

Было бы не плохо иметь возможность конфигурировать режим управления мостом: направление + ШИМ; 2 сигнала ШИМ с нулем на отключенном плече; 2 сигнала ШИМ, прямой и инверсный с синхронно симметрично меняющейся скважностью - улучшает стабилизацию в ущерб скорости.

Ale писал(а):Да. Только я бы убрал слово "интегрирования"

Я бы не убирал...

Ale писал(а):Т.е добавить дифференциальную составляющую в регулятор? Реализовать ПД регулирование вместо П? Пока не думал, но давай предложения по алгоритму. Обсудим.

Наверно нет, по этому повременил со степ диром. Скорей нужно стабилизировать вторую производную скорости - как говорит вики - jerk. Пока не соображу как. Это будит основное отличие от серво ПИД контроллера для ЧПУ .
Как то так: ШИМ=Kp*dS +(я бы все таки попробовал ввести интегральную составляющую ), где Kp функция от третей производной перемещения. В результате - адаптивный регулятор.
Вот еще нагуглил http://edu.dvgups.ru/METDOC/GDTR...K/frame/13_2.htm


Ale писал(а):Скорость порта в прошивке - 115200 бод. С такой скоростью передавать команду из 5 байт на контроллер можно с максимальной частотой 2 КГц (период 0.5 мс). Но смысла в этом нет, так как период обработки ШИМ 3.7 мс. Я думаю, что наиболее разумным периодом передачи в данном конкретном случае является период порядка 8..10 мс.

Получается, что мы "додумываем" динамику вместо того чтоб получать реальную необходимую? Не лучше ли расчет ШИМ проводить с частотой получения задания?

(Добавление)
Ale писал(а):Порядка 10 кгц. Вообще в прошивке опрос энкодеров происходит по таймеру, период опроса = 20 кГц.

Защита от дребезга есть?
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение null » 20 ноя 2012, 18:32

taran_ob писал(а):Получается, что мы "додумываем" динамику вместо того чтоб получать реальную необходимую? Не лучше ли расчет ШИМ проводить с частотой получения задания?

ИМХО положение платформы и текущее задание вещи конечно связанные, но не так уж и напрямую. Возможно и не имеет смысла так часто пересчитывать ШИМ - действительно делать это реже, но это скорее вопрос оптимизации выполнения программы. Если она необходима конечно ....
Русский X-Simulator
Изображение
За пределами форума. Мой инстаграмм.
Аватара пользователя
null
SIMER
 
Сообщения: 1041
Зарегистрирован: 03 мар 2010, 18:42
Откуда: Ростов-на-Дону
Благодарил (а): 219 раз.
Поблагодарили: 160 раз.
Баллы репутации: 138
ТехнарьТехнарь

Сообщение Ale » 20 ноя 2012, 19:06

taran_ob писал(а):Рекомендуют не больше 95% для нормальной подкачки верхнего ключа.

Кто рекомендует? И кто мне мешает ПОЛНОСТЬЮ открыть верхний ключ? Эта ситуация ничем не отличается от полностью открытого нижнего ключа. Просто мотор в этот момент будет напрямую подключен к источнику питания.
taran_ob писал(а):Было бы не плохо иметь возможность конфигурировать режим управления мостом: направление + ШИМ; 2 сигнала ШИМ с нулем на отключенном плече; 2 сигнала ШИМ, прямой и инверсный с синхронно симметрично меняющейся скважностью - улучшает стабилизацию в ущерб скорости.

Нельзя объять необъятное и впихнуть невпихуемое Изображение . Я предпочитаю принцип разумной достаточности. Хотя я не очень силен в шимах, но (ИМХО), режимы, реализованные сейчас перекрывают 90% потребностей...
taran_ob писал(а):Защита от дребезга есть?

Насколько я понимаю - да. В самом алгоритме обработки.
taran_ob писал(а):Получается, что мы "додумываем" динамику вместо того чтоб получать реальную необходимую? Не лучше ли расчет ШИМ проводить с частотой получения задания?

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

Сообщение taran_ob » 20 ноя 2012, 19:07

taran_ob писал(а):Как то так: ШИМ=Kp*dS +(я бы все таки попробовал ввести интегральную составляющую ), где Kp функция от третей производной перемещения. В результате - адаптивный регулятор.Вот еще нагуглил http://edu.dvgups.ru/METDOC/GDTR...K/frame/13_2.htm


Практически нужно с периодом расчета ШИМ определять предыдущую скорость, по ней ускорение, а по ускорению - плавность хода (jerk, РЫВОК). По плавности хода рассчитывать коэффициенты Кр (может и Кi) регулятора положения, или ввести как дополнительную составляющую формулы, нужно пробовать.

Мне кажется понятие комфортности (зависящей от плавности хода) для сима очень важным. Если сим дергает "не комфортно", то игра, наверно, напоминает одну сплошную аварию! И хоть комфортность немного философское понятие, и в интерпретации сима понимается мной как готовность (ожидаемость) к перегрузкам (наклон, вибрация и тд) исходя из визуальных ощущений, думаю ее все же можно зафиксировать.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение Ale » 20 ноя 2012, 19:23

taran_ob писал(а):Практически нужно с периодом расчета ШИМ определять предыдущую скорость, по ней ускорение, а по ускорению - jerk (РЫВОК), то есть по трем точкам. По полученному РЫВКУ рассчитывать коэффициенты Кр (может и Кi) регулятора положения, или ввести как дополнительную составляющую формулы, нужно пробовать

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

Сообщение taran_ob » 20 ноя 2012, 19:53

Ale писал(а):Кто рекомендует? И кто мне мешает ПОЛНОСТЬЮ открыть верхний ключ? Эта ситуация ничем не отличается от полностью открытого нижнего ключа. Просто мотор в этот момент будет напрямую подключен к источнику питания.

Просто повышенное напряжение в драйвере (интегральные драйвера типа ir2184, ir2101, ir2104 и тд) для открытия верхнего ключа формируется за счет шима на конденсаторе подкачки, а если ШИМ 100%-импульсов нет, то ключ не откроется. http://roboforum.ru/forum11/topic1963.html


Ale писал(а):Насколько я понимаю - да. В самом алгоритме обработки.

А можно как то глянуть?

taran_ob писал(а):Если мы будем производить расчет ШИМ только при получении очередного задания - мы перейдем в режим регулировки скорости вместо регулировки положения. Т.е до следующего задания ШИМ будет неизменным и мотор будет ехать и ехать. И если вдруг прервется связь, мотор уедет в бесконечность. А в настоящее время контроллер именно что регулирует позицию мотора, что позволяет, в общем случае, в достаточно широких (разумных) пределах регулировать период передачи заданий на контроллер без видимого изменения реакции платформы.

Так я же и спрашивал о максимальной скорости приема данных от пк. Если их реально получать даже чаще чем происходит расчет ШИМа, то изменения положения будут такие как надо - как вытягиваются из игры. И не куда мотор не уедет, он уедет до последней полученной координаты, и будет ждать следующую от пк. Может мы не до поняли друг друга: предполагаю что сейчас реализовано так - c частотой 270Гц (3,7мс) рассчитывается ШИМ=Kp(S заданное - S текущее), S заданное меняется с частотой F<<270Гц. Почему бы не делать все тоже самое только S заданное меняется с частотой F=270Гц?

taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение Ale » 20 ноя 2012, 20:07

taran_ob писал(а):А можно как то глянуть?

Нет проблем, пришли свое мыло (можно в личку), я вышлю тебе исходники.
taran_ob писал(а):Почему бы не делать все тоже самое только S заданное меняется с частотой F=270Гц?

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

Сообщение taran_ob » 21 ноя 2012, 01:35

Ale писал(а):Давай попробуй перевести в формулы. А формулы уже можно просимулировать на компе

Блин, знал бы прикуп -жил бы в Сочи...
Пытаюсь какие то формулы родить, читаю, третья производная точно пригодится:
Цитата:
Кстати, а знаете ли вы, что у каждого из нас в голове есть шикарный прибор, чувствительный к скорости изменения ускорения, или по-научному, к третьей производной от координаты по времени? Это вестибулярный аппарат. Он очень чувствительно реагирует на всплеск третьей производной, то бишь на слишком резкое изменение ускорения.
Самый простой способ убедиться в этом -- пронаблюдать за своими ощущениями в автобусе при медленном торможении. В последнюю секунду перед полной остановкой кажется, что все, уже ничего не движется, скорость равна почти нулю, но сила инерции все равно "тянет" вперед. А потом резко наступает "рывок" -- ускорение быстро сбросилось до нуля (ни координата, ни скорость при этом не изменились, как были нули, так и остались). Во время этого рывка на какую-то долю секунды человек теряет ориентацию -- мир как будто слегка перевернулся. Это ощущение идет именно от резкого изменения ускорения, т.е. от резкого изменения сил, действующих внутри вестибулярного аппарата.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение taran_ob » 21 ноя 2012, 13:55

Хочу спросить у кого есть сим, в каких конкретных случаях у вас возникает необходимость в подстройке контроллера?
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение Ale » 21 ноя 2012, 14:40

taran_ob писал(а):Хочу спросить у кого есть сим, в каких конкретных случаях у вас возникает необходимость в подстройке контроллера?

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

Сообщение Death_Morozz » 21 ноя 2012, 22:02

Симы у всех разной конфигурации и конструкции, настройка под конкретный сим происходит (1~3) раза. Остальное - софт, который в данный момент переписывается, с точки зрения поиска правильного решения симеров, которые, красивой реализацией этой задачи сейчас и занимаются.
Хочешь сделать хорошо - сделай это сам.
Изображение
Аватара пользователя
Death_Morozz
Фраерок
 
Сообщения: 2839
Зарегистрирован: 11 янв 2007, 23:35
Откуда: Ростов-на-Дону
Благодарил (а): 822 раз.
Поблагодарили: 312 раз.
Баллы репутации: 200
ТехнарьТехнарьТехнарь

Re: Тестирование нового программного обеспечения (прошивки)

Сообщение Ale » 24 ноя 2012, 12:45

Танос вот тут
http://x-sim.de/forum/viewtopic.php?f=32&t=607
... повысил скорость обработки всего и вся. Хорошо, конечно. Но, ИМХО, не это главная проблема. Хотя в любом случае можно понять, какие возможности имеются. :D
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Тестирование нового программного обеспечения (прошивки)

Сообщение taran_ob » 24 ноя 2012, 13:17

Я там, конечно, ни чего не понял из-за не знания языка, но он не дурак! Скорость в любом регуляторе ооочень важна. Была бы эта тема лет 10 тому назад, доказал бы это формулами. Лирика, диплом у меня был: волновая функция электрона в сферической наногетеро системе гидраргиум с, кадмий с, бла... бла... бла..., збыл все, на хрен...
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Re: Тестирование нового программного обеспечения (прошивки)

Сообщение Ale » 24 ноя 2012, 21:02

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

Re: Тестирование нового программного обеспечения (прошивки)

Сообщение taran_ob » 24 ноя 2012, 22:59

Ale писал(а):3 - изготовление своего преобразователя, автономного, тогда на всех контроллерах вместо USB преобразователя набо будет ставить по две микрухи 485 (на вход и выход)


По одной микрухи приемопередатчика rs485 sn75176. Полно схем преобразователей, в том числе и с развязкой на http://www.rs485.com . Я себе делал переходничек USB-RS485 - размером с флешку https://skydrive.live.com/redir?resid=B ... lSqJABmiiI

Ale, хоть ты и не склонен к 485, не бог бы в протокол заложить такую возможность? Там нужно одной нагой контроллера дергать для управления приемопередатчиком : 0-прием, 1-передача. Хочу попробовать портировать твою программу на 8ю мегу.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Пред.След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 149

cron
x

#{title}

#{text}