Специальные цены   новые товары
Закрытая тема
Показано с 1 по 16 из 16

Регулятор скорости с обратной связью от энкодера на ATmega

Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; Добрый день. Пытаюсь сделать простой регулятор скорости с обратной обратной связью от энкодера на Atmega8535 в Proteus. Управление мотором через ...

  1. #1

    Регистрация
    22.05.2011
    Адрес
    Санкт-петербург
    Возраст
    30
    Сообщений
    2

    Регулятор скорости с обратной связью от энкодера на ATmega

    Добрый день.
    Пытаюсь сделать простой регулятор скорости с обратной обратной связью от энкодера на Atmega8535 в Proteus.
    Управление мотором через ШИМ от 2-го таймера.
    Измерение скорости осуществляю подсчетом импульсов от энкодера (300 имп/об) за 0.05с таймером Т0 (до 1000 об/мин).
    промежуток 0.05с формирую по прерыванию сравнения от таймера T1. В этом же прерывании произвожу корректирование скорости:
    VM=TCNT0;//полученная скорость за 0.05 (до 250 если скорость <1000 об/мин)
    VF=ADCH;//нужная скорость задаем с потенциометра на АЦП
    if (VF>VM)
    {
    ER=VF-VM;
    PWM=PWM+ER;
    ER=0;
    };
    if (VF<VM)
    {
    ER=VM-VF;
    PWM=PWM-ER;
    ER=0;
    };
    OCR2=PWM;
    Работает крайне неважно - скорость постоянно колеблется с огромной ошибкой. Я новичек в вопросе управления и регулирования.
    Подскажите как лучше программно реализовать измерение скорости и регулирование в данном случае.

  2.  
  3. #2

    Регистрация
    28.09.2005
    Адрес
    санкт петербург
    Возраст
    27
    Сообщений
    667
    Записей в дневнике
    2
    Вам нужен ПИДр

  4. #3

    Регистрация
    29.06.2008
    Адрес
    Россия, Cимферополь
    Возраст
    28
    Сообщений
    6,650
    Предлагаешь ему в ж*** засунуть провода?

  5. #4

    Регистрация
    26.12.2005
    Адрес
    Москва,Севастополь
    Возраст
    42
    Сообщений
    212
    Цитата Сообщение от sashok17 Посмотреть сообщение
    Предлагаешь ему в ж*** засунуть провода?
    вы ошиблись форумом, здесь это означает: http://ru.wikipedia.org/wiki/%D0%9F%...82%D0%BE%D1%80

  6.  
  7. #5

    Регистрация
    29.06.2008
    Адрес
    Россия, Cимферополь
    Возраст
    28
    Сообщений
    6,650
    Прошу прощения, не знал

  8. #6

    Регистрация
    22.05.2011
    Адрес
    Санкт-петербург
    Возраст
    30
    Сообщений
    2
    Попытался реализовать ПИД-регулятор

    Основная часть программы:

    // требуемая скорость
    #define Target 100
    // коэффициент пропорционального усиления
    #define Kp 5
    // коэффициент интегрального усиления
    #define Ki 0.3
    // коэффициент дифференциального усиления
    #define Kd 5
    // максимальная сумма ошибок
    #define MaxIntegral 1000

    volatile signed int Error; // отклонение измеренной величины от заданной
    volatile signed int PrevValue; // предыдущее значение измерения
    volatile signed int P_Term; // пропорциональный компонент
    volatile signed int I_Term; // интегральный компонент
    volatile signed int D_Term; // дифференциальный компонент
    volatile signed int Out; // управляющее воздействие
    volatile signed int Integral; // сумма ошибок

    // Timer 0 overflow interrupt service routine
    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    {
    // Place your code here
    Perepol++;
    }

    // Timer1 overflow interrupt service routine
    interrupt [TIM1_OVF] void timer1_ovf_isr(void)
    {
    // Reinitialize Timer1 value
    TCNT1H=0xF78F >> 8;
    TCNT1L=0xF78F & 0xff;
    // Place your code here
    VMH=Perepol;
    VML=TCNT0;
    Error = Target - TCNT0;
    P_Term = Kp * Error;

    if (Integral > MaxIntegral) {Integral = MaxIntegral;}
    else if (Integral < - MaxIntegral) {Integral = - MaxIntegral;}
    else Integral += Error;

    I_Term = Ki * Integral;
    D_Term = Kd * (PrevValue - TCNT0);
    PrevValue = TCNT0;
    Out = P_Term + I_Term + D_Term;

    if(Out > 0xFF) { OCR2 = 0xFE; }
    else if(Out < 0) { OCR2 = 0;}
    else OCR2 = Out;
    pwm=OCR2;
    TCNT0=0;
    Perepol=0;
    }

    В принципе кое-как работает, но слишком медленно стабилизируется и есть колебания.
    Возможно стоит производить измерения скорости между импульсами с энкодера.
    Если у кого есть подобный проект в Proteus с исходниками, то не могли бы вы его выложить для изучения на примере.

  9. #7

    Регистрация
    28.09.2005
    Адрес
    санкт петербург
    Возраст
    27
    Сообщений
    667
    Записей в дневнике
    2
    Ну так коэффициенты настраивать надо. Либо Циглер-Никольс, либо на глазок

  10.  
  11. #8

    Регистрация
    01.03.2006
    Адрес
    Киров
    Возраст
    47
    Сообщений
    1,597
    Записей в дневнике
    1
    не понял как вы считаете интеграл, может выкинуть пока и посчитать только П и Д ?

  12. #9
    Забанен
    Регистрация
    09.03.2008
    Адрес
    Украина, граница между Днеп
    Возраст
    57
    Сообщений
    1,671
    Есть готовое и проверенное устройство на 88-й меге. С тахометром, все коэфф. настраиваются с клавы, при клине движка останавливает, навороченное, в общем. В смысле схема, прошивка, правда всё это на 220.

  13. #10

    Регистрация
    14.08.2011
    Адрес
    Кировоград, украина
    Возраст
    30
    Сообщений
    2
    Цитата Сообщение от Dj_smart Посмотреть сообщение
    Есть готовое и проверенное устройство на 88-й меге. С тахометром, все коэфф. настраиваются с клавы, при клине движка останавливает, навороченное, в общем. В смысле схема, прошивка, правда всё это на 220.
    а Вы не можете выложить схемку с прошивкой. Ато есть парочка двигателей на 220.

  14. #11

    Регистрация
    30.04.2006
    Адрес
    Ленинградская область
    Возраст
    50
    Сообщений
    577
    Записей в дневнике
    6
    Цитата Сообщение от kapusta Посмотреть сообщение
    а Вы не можете выложить схемку с прошивкой. Ато есть парочка двигателей на 220.
    +100500!!!!

  15. #12
    Забанен
    Регистрация
    09.03.2008
    Адрес
    Украина, граница между Днеп
    Возраст
    57
    Сообщений
    1,671
    Цитата Сообщение от kapusta Посмотреть сообщение
    Вы не можете выложить схемку с прошивкой.
    Народ, извиняюсь, давно не заходил. Короче там настраиваются тьма параметров пида с кнопок... В общем всё тут, плата, прошивка. http://www.cncmasterkit.ru/modules.p...ewtopic&t=1409 Тамс 29-го поста. Только желательно почитать всё, вносились изменения. Да! Движки только коллекторные(фрезер, дрель, и тд). Я сделал на фрезер с ЧПУ, не нарадуюсь, обороты держит как немое. А движок полтора киловата. Так что...

  16. #13

    Регистрация
    14.08.2011
    Адрес
    Кировоград, украина
    Возраст
    30
    Сообщений
    2
    Цитата Сообщение от Dj_smart Посмотреть сообщение
    Народ, извиняюсь, давно не заходил. Короче там настраиваются тьма параметров пида с кнопок... В общем всё тут, плата, прошивка. http://www.cncmasterkit.ru/modules.p...ewtopic&t=1409 Тамс 29-го поста. Только желательно почитать всё, вносились изменения. Да! Движки только коллекторные(фрезер, дрель, и тд). Я сделал на фрезер с ЧПУ, не нарадуюсь, обороты держит как немое. А движок полтора киловата. Так что...
    Спасибо большое.. Вот с движком от дрельки или болгарки проблем нету..

  17. #14
    Забанен
    Регистрация
    09.03.2008
    Адрес
    Украина, граница между Днеп
    Возраст
    57
    Сообщений
    1,671
    Вот, как оно в натуре выглядит. Я его тогда только сделал, так что хз какие кнопки тыкать.


  18. #15

    Регистрация
    29.06.2008
    Адрес
    Россия, Cимферополь
    Возраст
    28
    Сообщений
    6,650
    "А бардак"...как у меня

  19. #16
    Забанен
    Регистрация
    09.03.2008
    Адрес
    Украина, граница между Днеп
    Возраст
    57
    Сообщений
    1,671
    Это "творческий беспорядок" .

Закрытая тема

Похожие темы

  1. Куплю регулятор скорости Tamiya TEU-103BK для 2 моторов недорого
    от tarascar в разделе Барахолка. Электродвигатели, регуляторы хода, аксессуары
    Ответов: 6
    Последнее сообщение: 22.06.2011, 23:53
  2. Подключение регулятора скорости
    от aanabar в разделе Бортовая электроника
    Ответов: 13
    Последнее сообщение: 21.04.2011, 23:28
  3. КиллСвитч из коллекторного регулятора скорости.
    от Vaselek в разделе Бензиновые двигатели
    Ответов: 24
    Последнее сообщение: 03.02.2011, 22:39
  4. Программа для регулятора скорости на Atmega8
    от Skiludr в разделе Самодельная электроника, компьютерные программы
    Ответов: 5
    Последнее сообщение: 27.07.2010, 09:42
  5. Продам Мотор, регуляторы скорости, спур
    от GanGan в разделе Барахолка. Моторы ДВС, топливо и аксессуары
    Ответов: 2
    Последнее сообщение: 07.07.2010, 23:21

Ваши права

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