Перейти к содержанию
    

Автоматическое регулирование

ключевое слово - нормировка

надо привести выход к безразмерной величине изменяемой от нуля до единицы и почитать пару лекций по ТАУ.

 

Нормировка обязательна? Осваиваю ПИД регулятор и эта нормировка не радует, т.к. придется работать с числами с плавающей точкой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нормировка обязательна? Осваиваю ПИД регулятор и эта нормировка не радует, т.к. придется работать с числами с плавающей точкой.

 

Нормировка - может и не обязательна, а вот без интегральной составляющей, статическую ошибку регулирования никак не устранить.

Удастся Вам посчитать интеграл ошибки регулирования в целых числах? Дифференциальная составляющая понадобиться для обеспечения требуемого быстродействия - тоже проблема в целых числах. На мой взгляд, без плавающей точки остается только пропорциональное регулирование.

 

PS: Что у вас за железо, что оно только с целыми числами работает????

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нормировка - может и не обязательна, а вот без интегральной составляющей, статическую ошибку регулирования никак не устранить.

Удастся Вам посчитать интеграл ошибки регулирования в целых числах? Дифференциальная составляющая понадобиться для обеспечения требуемого быстродействия - тоже проблема в целых числах. На мой взгляд, без плавающей точки остается только пропорциональное регулирование.

 

PS: Что у вас за железо, что оно только с целыми числами работает????

 

Железо быстрое, только и так уже сильно загружено. Ни как не удаётся освоить ПИД-регуляотр. Пытаюсь промоделировать примитивную задачу, но как-то не очень получается. Может кто разбирается в с Симулинке?

Задачу взял для освоения такого плана: Подвешенное тело на которое действует две силы подъемная (управление ее и регулируем) и сила тяжести. Имею такую диффуру:

m*y``=F-mg

y``=F/m-g

Строю модель в симулинке: и задаю небольшое начальное отклонение(во втором интеграторе):

1362405922_PID.jpg

И далее подбираю параметры.

Проблема, конечно, в подборе коэффициентов. =) Не очень понятна методика их получения... и вообще правильно ли Я построил модель.

Заранее благодарю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg

>На мой взгляд, без плавающей точки остается только пропорциональное регулирование.

 

Не надо "ля-ля". Лет так 35 назад на i8080 ( 580 ) - 8р проц. мы с удовольствием делали не только PID, но и более сложные вещи именно в формате с фиксированной запятой ( разновидность целочисленной арифметики ) в сетке 16-32 р.

 

 

>Не очень понятна методика их получения.

 

Методы расчета коэффициентов ПИД-регулятора давно "прозрачно разглажены".

Зиглер и Николс сделали это еще в 1942 г.

 

Инженеру о [С]ПИД

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И далее подбираю параметры.

Проблема, конечно, в подборе коэффициентов. =)

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

По поводу целых чисел полностью согласна с предыдущим оратором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg

>Подвешенное тело на которое действует

 

Термин "подвешенное" означает, что существует в некоторой точке жесткая/гибкая связь между телом и опорой. Выражайтесь грамотнее - у Вас на схеме нет "подвешенного" тела.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>Подвешенное тело на которое действует

 

Термин "подвешенное" означает, что существует в некоторой точке жесткая/гибкая связь между телом и опорой. Выражайтесь грамотнее - у Вас на схеме нет "подвешенного" тела.

 

Вот Я тоже думаю что где-то в схеме проблема, потому и написал здесь.... интуиция не подвела =)

 

Tanay, спасибо большое, это Я уже подробно вчитал. Про смысл и на что влияет каждый коэффициент. Но задачу решить пока не помогло.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg
Но задачу решить пока не помогло.

 

Начните с нуля, т.е. с примитивных задач и решений их - это помогает, серьезно.

 

 

>Написал для себя класс.

 

Это - в "орешник" :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!

 

Встала задача реализовать контроллер, который поддерживает постоянной скорость вращения ДВС электрогенератора.

Краткое описание в другой теме - http://electronix.ru/forum/index.php?showtopic=118178

 

С аппаратной частью проблем нет.

Собрали макет - сигнал от датчика принимается, частота считается, выход на 0-10В работает.

Контроллер будет 18F45K22 на 16MIPS. Выходное напряжение получается от ЦАП 10 бит.

 

А теперь начинается самое интересное, надо делать регулятор!

За последние два дня перечитал много всего по ПИД и его цифровой реализации.

За основу возьму аппноут от Микрочипа AN937. Все там вроде хорошо, но есть несколько несовсем понятных моментов приментельно к конкретной задачи:

 

1. Входная ошибка "error" - это разница между частотами вращения, правильно? Т.е. я просто вычитаю из необходимой номинальной частоты (3000 об/мин) текущую частоту (например 2500 об/мин) и эту разницу (500 об/мин) в явном виде присваиваю переменной "error" и переводить об/мин в "попугаи" не надо?

 

2. Результат работы ПИД "pid_out" - это 24-битная переменная, да еще и со знаком. Правильно ли я понимаю, что мне просто надо этот результат привести к диапазону 0-1023 и подавать на ЦАП?

 

3. Если п.2 = ДА, то как правильно пересчитать "pid_out" в 0-1023 для ЦАП? Ноль "pid_out" - это 0 или 511? В большинстве реализаций, что я видел, отрицательные значения результата считают равным 0 и используют только положительные значения. Где правда?

 

Заранее благодарен за помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!

 

Встала задача реализовать контроллер, который поддерживает постоянной скорость вращения ДВС электрогенератора.

 

 

2. Результат работы ПИД "pid_out" - это 24-битная переменная, да еще и со знаком. Правильно ли я понимаю, что мне просто надо этот результат привести к диапазону 0-1023 и подавать на ЦАП?

Она будет без знака. Вы ведь не собираетесь (я даже думаю, что не можете) крутить генератор в другую сторону.

Просто обрезаете снизу. В младших разрядах будет копиться интеграл. Можно его отдельно копить. 16 разрядов должно хватить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разумеется генератор и сам двигатель крутяться всегда в одну сторону, это я понимаю. :rolleyes:

 

Управление скоростью вращения двигателя осуществляется заслонкой в канале подачи газового топлива.

Необходимо всегда держать частоту вращения двигателя 3000 об/мин.

Сама заслонка управляется напряжением 0-10В:

0В - минимальный угол открытия (устанавливается механически), обеспечивающий холостой ход двигателя (около 1500 об/мин)

10В - максимальный угол открытия 90 град. - максимальные обороты двигателя (около 4500 об\мин)

 

Таким образом мне надо результат работы ПИД преобразовать в 0-1023 и прямо подать на ЦАП?

 

Получается, если результат ПИД будет меньше 0, то считаем его равным 0 и заслонка должна быть закрыта, а двигатель работать на ХХ?

Если же результат положительный, то просто "беру" старшие 10 бит от 24-битного результата и пишу в ЦАП?

 

P.S. Прошу сильно не бить, что так дотошно все переспрашиваю и уточняю. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получается, если результат ПИД будет меньше 0, то считаем его равным 0 и заслонка должна быть закрыта, а двигатель работать на ХХ?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!

 

Встала задача реализовать контроллер, который поддерживает постоянной скорость вращения ДВС электрогенератора.

Краткое описание в другой теме - http://electronix.ru/forum/index.php?showtopic=118178

 

С аппаратной частью проблем нет.

Собрали макет - сигнал от датчика принимается, частота считается, выход на 0-10В работает.

Контроллер будет 18F45K22 на 16MIPS. Выходное напряжение получается от ЦАП 10 бит.

 

А теперь начинается самое интересное, надо делать регулятор!

За последние два дня перечитал много всего по ПИД и его цифровой реализации.

За основу возьму аппноут от Микрочипа AN937. Все там вроде хорошо, но есть несколько несовсем понятных моментов приментельно к конкретной задачи:

 

1. Входная ошибка "error" - это разница между частотами вращения, правильно? Т.е. я просто вычитаю из необходимой номинальной частоты (3000 об/мин) текущую частоту (например 2500 об/мин) и эту разницу (500 об/мин) в явном виде присваиваю переменной "error" и переводить об/мин в "попугаи" не надо?

 

2. Результат работы ПИД "pid_out" - это 24-битная переменная, да еще и со знаком. Правильно ли я понимаю, что мне просто надо этот результат привести к диапазону 0-1023 и подавать на ЦАП?

 

3. Если п.2 = ДА, то как правильно пересчитать "pid_out" в 0-1023 для ЦАП? Ноль "pid_out" - это 0 или 511? В большинстве реализаций, что я видел, отрицательные значения результата считают равным 0 и используют только положительные значения. Где правда?

 

Заранее благодарен за помощь!

 

как быстро реагирует двигатель на изменение положения заслонки при максимальной нагрузке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как быстро реагирует двигатель на изменение положения заслонки при максимальной нагрузке?

 

К сожалению точно не знаю :(

Заказчик говорит, что на других генераторах, при изменении нагрузки с минимума до максимальной двигатель реагирует практически мгновенно и просаживания частоты генератора не заметно. Но это все на глаз, по индикатору выходной частоты генератора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению точно не знаю :(

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...