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


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

Симулятор от taran_ob

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

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

Re: Симулятор от taran_ob

Сообщение Ale » 20 дек 2012, 17:44

taran_ob писал(а):Уверен, никто не будет спорить с тезисами:
1. Угол поворота вала пропорционален координате.
2. Воздействие (ШИМ) - величина пропорциональная частоте вращения вала двигателя. Если ШИМ - константа, то и частота - константа.
3. Основная задача контроллера - принимать координаты и выдавать такие значения ШИМ, чтоб траектория построенная по показаниям обратной связи была копией траектории построенной по принятым координатам с некоторым смещением во времени.
4. Изменение координат происходит с ускорением.

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

Для всех остальных нужно обязательно оговаривать условия.
Второй тезис можно принять только в случае работы двигателя с НЕИЗМЕННОЙ нагрузкой на валу.
Четвертый можно принять только если движку надо ИЗМЕНИТЬ СКОРОСТЬ для достижения новой координаты к заданному времени. Но вполне может быть, что скорость менять не придется, ведь двигатель просто вращаясь БЕЗ УСКОРЕНИЯ изменяет координаты тоже...
так что..
taran_ob писал(а):.. давайте начнем с чистого листа, потому что было много сумбурных высказываний, недопониманий и подмен понятий.
;)

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

Re: Симулятор от taran_ob

Сообщение Ale » 20 дек 2012, 17:54

taran_ob писал(а): Имеем полноценный ПИ. Также становится возможным стабилизация скорости между расчетами ШИМ, и как следствие во всем задании.

А вот как раз эта задача в предложенном тобой алгоритме совершенно не реализована. За счет чего может происходить СТАБИЛИЗАЦИЯ скорости? Ну да, ошибка (x-x0) фактически пропорциональна необходимой скорости (x-x0)/t, поскольку вычисляется через равные промежутки времени. А вот дальше - классический ПИД, который в принципе заточен на достижение заданной координаты. Или за счет подбора коэффициентов мотор должен ехать с заданной скоростью?

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

Re: Симулятор от taran_ob

Сообщение taran_ob » 20 дек 2012, 20:00

kuzevan писал(а):С постоянной скоростью мы двигаемся только если ШИМ=К2.

Поясни, не понял.
kuzevan писал(а):Напрямую скорость от ШИМа не зависит, зависит ускорение.

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

Re: Симулятор от taran_ob

Сообщение taran_ob » 20 дек 2012, 20:12

Ale писал(а):Второй тезис можно принять только в случае работы двигателя с НЕИЗМЕННОЙ нагрузкой на валу.Четвертый можно принять только если движку надо ИЗМЕНИТЬ СКОРОСТЬ для достижения новой координаты к заданному времени. Но вполне может быть, что скорость менять не придется, ведь двигатель просто вращаясь БЕЗ УСКОРЕНИЯ изменяет координаты тоже...так что..

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

Re: Симулятор от taran_ob

Сообщение taran_ob » 20 дек 2012, 20:30

Ale писал(а):А вот как раз эта задача в предложенном тобой алгоритме совершенно не реализована. За счет чего может происходить СТАБИЛИЗАЦИЯ скорости? Ну да, ошибка (x-x0) фактически пропорциональна необходимой скорости (x-x0)/t, поскольку вычисляется через равные промежутки времени. А вот дальше - классический ПИД, который в принципе заточен на достижение заданной координаты. Или за счет подбора коэффициентов мотор должен ехать с заданной скоростью?

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

Re: Симулятор от taran_ob

Сообщение kuzevan » 20 дек 2012, 20:34

Еще в 1687 году Ньютон сформулировал свой второй закон:
F=m*a,
Но так, как мы не в безвоздушном пространстве, есть еще сила торможения:
F=m*a+F_торможения.
В моих терминах F - это ШИМ, m - K1, сила торможения - K2,
ШИМ=K1*a+K2,
Коэффициенты двигателя можно измерить моей прграммой, а вот откуда взять коэффициенты Kp, Ki, Kd ты не пояснил.
Аватара пользователя
kuzevan
Парторг
 
Сообщения: 60
Зарегистрирован: 25 окт 2011, 17:17
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Баллы репутации: -6

Re: Симулятор от taran_ob

Сообщение taran_ob » 20 дек 2012, 20:34

Ale писал(а):Могу помочь тебе реализовать этот алгоритм в коде.

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

Re: Симулятор от taran_ob

Сообщение taran_ob » 20 дек 2012, 22:37

kuzevan писал(а):Но так, как мы не в безвоздушном пространстве, есть еще сила торможения:F=m*a+F_торможения.В моих терминах F - это ШИМ, m - K1, сила торможения - K2,ШИМ=K1*a+K2,

Не могу понять такую аналогию.
Коэффициенты двигателя можно измерить моей прграммой, а вот откуда взять коэффициенты Kp, Ki, Kd ты не пояснил.

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

Re: Симулятор от taran_ob

Сообщение taran_ob » 20 дек 2012, 22:58

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

Re: Симулятор от taran_ob

Сообщение Ale » 21 дек 2012, 07:34

taran_ob писал(а):Как математически (эмпирически) рассчитать (прикинуть)

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

Re: Симулятор от taran_ob

Сообщение taran_ob » 21 дек 2012, 16:29

Согласен, а как с дискретностью обратной связи... не совсем понятно... Для пида частота расчета и скорость изменения регулируемого параметра связаны. А скорость изменения регулируемого параметра зависит, как бы, от его дискретности. Замкнутый круг. Что то нужно зафиксировать. Ок, фиксируем период передачи данных из игры 10мс. Пусть внутри будет 10 микрорасчетов, то есть 1мс. На сколько изменятся показания энкодера или ацп при макс скорости за 1мс? Пусть весь диапазон 1024 максимум за 0,5с (2048 в 1с). Тогда 2048*0,001= всего 2 отсчета, и это на макс скорости. Значит слишком быстро считаем для этого разрешения?, ведь при меньшей скорости изменений вообще не будет. А если считать будем медленней, как это повлияет на точность? А какая мин скорость?
пс где можно посмотреть реальную траекторию с игры?
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Re: Симулятор от taran_ob

Сообщение Ale » 21 дек 2012, 16:44

taran_ob писал(а):пс где можно посмотреть реальную траекторию с игры?

Не знаю, есть ли такая возможность в буржуйском софте, А в моем - уже практически есть.
Вот тут пример
http://www.youtube.com/watch?v=FAGIx7RU5pA&list=UUvgWBHjBrYaFVUXDk_8T_Vg&index=8
Правда, график пока малоинформативен, но я могу прикрутить экспорт данных а текстовый файл, что бы его можно было хоть в экселе открыть и обработать. Но, хочу заметить, что как раз к "реальной" траектории данные имеют относительное касательство. Данные для оси делает сам пользователь обрабатывая по определенному закону ускорения и перемещения, поступающие из игры.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Симулятор от taran_ob

Сообщение taran_ob » 21 дек 2012, 16:56

С разрешением ЗАДАНИЯ в 256 отсчетов согласен, ну в крайнем случае 512 для сима на 3х ногах. Выше сказанное относится именно к разрешению ОБРАТНОЙ СВЯЗИ.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Re: Симулятор от taran_ob

Сообщение taran_ob » 21 дек 2012, 17:41

Ale писал(а):но я могу прикрутить экспорт данных а текстовый файл,

Хотелось бы посмотреть на такой файлик

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

Re: Симулятор от taran_ob

Сообщение Ale » 21 дек 2012, 21:51

taran_ob писал(а):А для теста в проге просто синусоида?

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

Пред.След.

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

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

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

cron
x

#{title}

#{text}