Например TDA7294

Форум РадиоКот • Просмотр темы - Стабилизация скорости вращения двигателя.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс янв 18, 2026 10:09:16

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Стабилизация скорости вращения двигателя.
СообщениеДобавлено: Пт мар 06, 2009 15:35:42 
Друг Кота

Карма: 14
Рейтинг сообщений: 372
Зарегистрирован: Вс фев 15, 2009 01:04:58
Сообщений: 5066
Откуда: Kaluga
Рейтинг сообщения: 0
Задача стоит в поддержании стабильной мгновенную скорость некоего двигателя путем манипулирования системой осуществляющей торможение его вала. (Порошковый магнитный тормоз - тормозной момент растет более менее линейно, как функция питающего тока, но зависит от скорости вращения причем нелинейно, плюсом ко всему имеется гистерейзис (как у любой магнитной системы)). Датчик скорости - прецизионный энкодер, выдает 10000 импульсов на оборот. Управление тормозом - ЦАПом с разрешением 10 бит. Диапазон скоростей 40-180 Об/мин. Нагрузка быстропеременная в пределах одного оборота. Точность поддержания скорости +/- 1 Об/мин вне зависимости от величины (тоесть на меньших скоростях потребная точность падает). Есть-ли какие идеи, ссылки на подобные реализации. Я пробывал реализовать ПИ регулятор на ATMEGA8 но имею на выходе самовозбуждение системы в тределах 1-10 Гц (зависит от скорости). На большее не хватает знаний. Еще проблема - что при испытаниях система быстро перегревается (типичное время работы 20 сек через час) и уже после 2х минут работы нужно останавливаться для охлаждения. Тоесть на режим надо выходить за 1-2 оборота.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 14, 2009 01:54:02 
Первый раз сказал Мяу!
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб окт 04, 2008 00:23:25
Сообщений: 34
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
После такого вопроса тут все перегреются... :)) ПИ-регулятор реализовал, а жалуешься на нехватку знаний.
Может ПИ-регулятор "кривенький"? Или настроен неправильно? Может его шаг дискретизации великоват? Может сделать адаптивный ПИ и в зависимости от скорости вращения менять его коэффициенты?
Если невозможно настроить систему непосредственно, может создать математическую модель и синтезировать для неё регулятор?
Короче, тут без знаний не обойтись...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 14, 2009 13:55:18 
Друг Кота

Карма: 14
Рейтинг сообщений: 372
Зарегистрирован: Вс фев 15, 2009 01:04:58
Сообщений: 5066
Откуда: Kaluga
Рейтинг сообщения: 0
Вот потому и пишу, что знаний не хватает. Хватило-бы не написал. Хотя де факто я с того места уже практически уволился, задача "задела за живое". Пол года бился. Как сделать адаптивную систему ? Были мысли сделать многопроцессорную систему, где каждый процессор отрабатывает свою часть задачи. (сейчас все в одной ATMEGA8 крутится (начиналось на 2313). Сейчас система такая - в каждом цикле (10 циклов/сек) текущая величина ошибки (скорость замеряется за предыдущие 0,1 сек) умножается на К и добавляется с учетом знака к числу в интеграторе. После масштабирования выдается в ЦАП. Вот коэффициентом К и масштабным коэффициентом, а так-же числом пропущенных цеклов на 1 акт интегрирования и начальным значением в интеграторе я и игрался. Мат модель беспереспективна ибо исследуемый объект (двигатель) настолько нелинеен и вообще непонятно как работает. "Чёрный ящик" параметры которого в разных точках мех. характеристики надо снимать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 14, 2009 15:30:26 
Первый раз сказал Мяу!
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб окт 04, 2008 00:23:25
Сообщений: 34
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Хех, уволился, а движок с собой что-ли прихватил? Может забыть как страшний сон?
Что за движок-то? От электричества работает?

Цитата:
текущая величина ошибки (скорость замеряется за предыдущие 0,1 сек) умножается на К и добавляется с учетом знака к числу в интеграторе

А потом эти величины "П" и "И" складываешь?

Цитата:
После масштабирования выдается в ЦАП

Что выдаётся?

Вот формулка ПИ-регулятора у которого в качестве уставок полоса пропорциональности и время интегрирования, а на выходе сигнал 0-100%:
Yi = 1/Xp * (Ei + 1/tи*сумма(Ei*дtизм))*100% , где
Yi - выходной (управляющий сигнал);
Xp - полоса пропорциональности;
Ei - ошибка;
- постоянная времени интегратора;
дtизм - время между двумя соседними измерениями (это вот твои 0,1 сек);
сумма(Ei*дtизм) - накопленная сумма рассогласований (за время интегрирования tи);
Реализуется, в принципе, просто - считаешь ошибку, храня в памяти предыдущее её значение, на каждом шаге кладёшь её в интегратор (всё с учётом знака). В начале интеграл будет равным 0 пока не накопится ошибка (т.е. закончится время интегрирования), до этого момента (вышло время) интегральная часть не выдаёт своё значение, а действует предыдущее. Как появляется новое - его в память и регулятор работает с ним, а интегратор считает следующее. Только вот программируется непросто... :)
По хорошему бы сюда прикрутить защиту интегратора от насыщения, то есть задать рамки в которых он может работать (например +/-5% от уставки) если вышел за них - всё, интегральная часть равна 0.
Ну и ещё поиграться с шагом измерений - уменьшить, будеть только лучше - "сгладим" регулирование. Ежели вспомнить теорему Котельникова - то надо выбирать этот интервал в два раза меньше минимальной постоянной времени системы. Если частоту, то в два раза больше максимальной частоты какого-либо компонента системы. Вот и смотри что у тебя самое "быстрое". Наверное, нагрузка, раз она "быстропеременная в пределах одного оборота"? И все твои 10000 импульсов/оборот с энокодера за 0,1 сек идут на смарку. Отсюда и самовозбуждение и всё прочее...
Может "Д" добавить для увеличения реакции регулятора на изменения. Получится ПИД. Если захочешь, вот дополнение к формуле, вставишь вместо знака "+":
+ tд*(Ei/дtизм) + , где
- время дифференцирования.
Ну и почитай, например ТУТ . В общем, за применение к твоей системе ПИ-регулятора я не ручаюсь, хотя, может и подходит, так что всё вышесказанное не относится к построению твоей системы, а просто ремарка по поводу ПИ-регулятора.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс мар 15, 2009 11:37:16 
Друг Кота

Карма: 14
Рейтинг сообщений: 372
Зарегистрирован: Вс фев 15, 2009 01:04:58
Сообщений: 5066
Откуда: Kaluga
Рейтинг сообщения: 0
Нет не складываю. Интегратор призван как-бы сгладить метания пропорционального регулятора на гистерейзисном звене исполнительного механизма иначе выходит генератор. На выходе число 0-1023 идущее в ЦАП, с ЦАП - на УМ с него на тормоз. 0-1023 соответствует 0,1-6,5 А выхода. Усилитель однотактный в чистом А классе. Защита интегратора нет, но есть граничение на величину ошибки в каждом такте. Шаг замеров уменьшать как-бы не хотелось - время выбрано оптимальное для перекрытия всего диапазона скоростей (полный диапазон 20-210 Об/мин) одним 16 разрядным счетчиком. Если поставит датчик с большим числом импульсов на оборот (есть 90000) то для больших скоростей разрядности не хватит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс мар 15, 2009 18:36:26 
Первый раз сказал Мяу!
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб окт 04, 2008 00:23:25
Сообщений: 34
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
А почему мы движком не можем управлять? Ну в смысле ток менять? Или состав горючей смеси? Турбина там... или ещё чего... Вроде, движки-то все изучены, база знаний имеется? Или он настолько хитрый, или совсем никак?
То есть, грубо говоря, движок всегда крутится на полную и мы можем регулировать его скорость вращения только этим самым тормозом. Если я всё правильно понял, то управляющее воздействие на тормоз формируется за 0,1 сек и действует оно это время пока не выработается новое? Смотри, при 180 об/мин вал пройдёт 1 оборот за 0,33 сек. То есть на максимальной скорости весь твой вал "разбит" на (грубо) три участка для принятия решения о замедлении его или ускорении и за это время приходит 3300 импульсов +/- ошибка. То есть получается +/-километр, плавного и точного регулирования тут не получится. Может нагрузка изменяется за 0,03 секунды, а у тебя тормоз действует 0,1 секунду и движок "проскакивает" твою уставку скорости. Отсюда и автоколебания... Сам же признался, что они зависят от скорости... Другой крайний случай - на минимальной скорости (40 об/мин) вал пройдёт оборот за 1,5 сек, т.е 15 интервалов - это уже хоть что-то для принятия решения о замедлении или ускорении, есть где разгуляться, но всё равно мало. Поэтому автоколебания есть, но поменьше...
Я не к тому, что ставить другой энкодер. Но "поделить" вал хотя бы на 100 или 1000 участков, то есть взять шаг дискретизации не 0,1, а 0,01.
Пример - шаговый двигатель - какой будет плавнее крутиться - у которого 20 шагов на оборот или 200? Можно и 20 заставить - при помощи ШИМ... Но опять же - частота дискретизации увеличивается...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн мар 16, 2009 00:26:58 
Друг Кота

Карма: 14
Рейтинг сообщений: 372
Зарегистрирован: Вс фев 15, 2009 01:04:58
Сообщений: 5066
Откуда: Kaluga
Рейтинг сообщения: 0
К сожалению доступа к двигателю не имею кроме сигнала старт и стоп. Задача фиксировать изменение вращающего момента на валу при постоянной скорости. Он падает по некоторому закону по мере нагрева привода. А со временем принятия решения - я понял, что надо уменьшать.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Sergey_61 и гости: 38


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y