реклама на сайте
подробности

 
 
7 страниц V  « < 4 5 6 7 >  
Reply to this topicStart new topic
> Автоматическое регулирование
Артур
сообщение Mar 4 2013, 15:16
Сообщение #76





Группа: Участник
Сообщений: 11
Регистрация: 27-01-12
Пользователь №: 69 912



Цитата(LordN @ Aug 29 2006, 23:18) *
ключевое слово - нормировка
надо привести выход к безразмерной величине изменяемой от нуля до единицы и почитать пару лекций по ТАУ.


Нормировка обязательна? Осваиваю ПИД регулятор и эта нормировка не радует, т.к. придется работать с числами с плавающей точкой.
Go to the top of the page
 
+Quote Post
AndreyVN
сообщение Mar 4 2013, 15:45
Сообщение #77


Знающий
****

Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458



Цитата(Артур @ Mar 4 2013, 18:16) *
Нормировка обязательна? Осваиваю ПИД регулятор и эта нормировка не радует, т.к. придется работать с числами с плавающей точкой.


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

PS: Что у вас за железо, что оно только с целыми числами работает????
Go to the top of the page
 
+Quote Post
Артур
сообщение Mar 5 2013, 16:12
Сообщение #78





Группа: Участник
Сообщений: 11
Регистрация: 27-01-12
Пользователь №: 69 912



Цитата(AndreyVN @ Mar 4 2013, 19:45) *
Нормировка - может и не обязательна, а вот без интегральной составляющей, статическую ошибку регулирования никак не устранить.
Удастся Вам посчитать интеграл ошибки регулирования в целых числах? Дифференциальная составляющая понадобиться для обеспечения требуемого быстродействия - тоже проблема в целых числах. На мой взгляд, без плавающей точки остается только пропорциональное регулирование.

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


Железо быстрое, только и так уже сильно загружено. Ни как не удаётся освоить ПИД-регуляотр. Пытаюсь промоделировать примитивную задачу, но как-то не очень получается. Может кто разбирается в с Симулинке?
Задачу взял для освоения такого плана: Подвешенное тело на которое действует две силы подъемная (управление ее и регулируем) и сила тяжести. Имею такую диффуру:
m*y``=F-mg
y``=F/m-g
Строю модель в симулинке: и задаю небольшое начальное отклонение(во втором интеграторе):

И далее подбираю параметры.
Проблема, конечно, в подборе коэффициентов. =) Не очень понятна методика их получения... и вообще правильно ли Я построил модель.
Заранее благодарю.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 5 2013, 16:33
Сообщение #79





Guests






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

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


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

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

Инженеру о [С]ПИД
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 5 2013, 16:42
Сообщение #80


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Артур @ Mar 5 2013, 20:12) *
И далее подбираю параметры.
Проблема, конечно, в подборе коэффициентов. =)

В такой Вашей модельной задаче не обойтись без дифференциального члена, если Вы регулируете положение, а не скорость. Такая вот особенность - пропорциональный член является "пружинкой".
По поводу целых чисел полностью согласна с предыдущим оратором.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 5 2013, 16:53
Сообщение #81





Guests






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

Термин "подвешенное" означает, что существует в некоторой точке жесткая/гибкая связь между телом и опорой. Выражайтесь грамотнее - у Вас на схеме нет "подвешенного" тела.
Go to the top of the page
 
+Quote Post
Артур
сообщение Mar 5 2013, 17:05
Сообщение #82





Группа: Участник
Сообщений: 11
Регистрация: 27-01-12
Пользователь №: 69 912



Цитата(TSerg @ Mar 5 2013, 20:53) *
>Подвешенное тело на которое действует

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


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

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

Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 5 2013, 17:20
Сообщение #83





Guests






Цитата(Артур @ Mar 5 2013, 21:05) *
Но задачу решить пока не помогло.


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


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

Это - в "орешник" sm.gif
Go to the top of the page
 
+Quote Post
Abrams
сообщение Jan 22 2014, 19:52
Сообщение #84


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 10-02-09
Из: Выборг
Пользователь №: 44 667



Добрый день!

Встала задача реализовать контроллер, который поддерживает постоянной скорость вращения ДВС электрогенератора.
Краткое описание в другой теме - 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 и используют только положительные значения. Где правда?

Заранее благодарен за помощь!
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 23 2014, 06:37
Сообщение #85


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Abrams @ Jan 22 2014, 23:52) *
Добрый день!

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


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

Она будет без знака. Вы ведь не собираетесь (я даже думаю, что не можете) крутить генератор в другую сторону.
Просто обрезаете снизу. В младших разрядах будет копиться интеграл. Можно его отдельно копить. 16 разрядов должно хватить.
Go to the top of the page
 
+Quote Post
Abrams
сообщение Jan 23 2014, 11:39
Сообщение #86


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 10-02-09
Из: Выборг
Пользователь №: 44 667



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

Управление скоростью вращения двигателя осуществляется заслонкой в канале подачи газового топлива.
Необходимо всегда держать частоту вращения двигателя 3000 об/мин.
Сама заслонка управляется напряжением 0-10В:
0В - минимальный угол открытия (устанавливается механически), обеспечивающий холостой ход двигателя (около 1500 об/мин)
10В - максимальный угол открытия 90 град. - максимальные обороты двигателя (около 4500 об\мин)

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

Получается, если результат ПИД будет меньше 0, то считаем его равным 0 и заслонка должна быть закрыта, а двигатель работать на ХХ?
Если же результат положительный, то просто "беру" старшие 10 бит от 24-битного результата и пишу в ЦАП?

P.S. Прошу сильно не бить, что так дотошно все переспрашиваю и уточняю. Спасибо!
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 23 2014, 15:28
Сообщение #87


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Abrams @ Jan 23 2014, 15:39) *
Получается, если результат ПИД будет меньше 0, то считаем его равным 0 и заслонка должна быть закрыта, а двигатель работать на ХХ?

Если правильно настроить, то не будет. В установившемся режиме главный член - интегральный.
Go to the top of the page
 
+Quote Post
thermit
сообщение Jan 24 2014, 07:23
Сообщение #88


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(Abrams @ Jan 22 2014, 22:52) *
Добрый день!

Встала задача реализовать контроллер, который поддерживает постоянной скорость вращения ДВС электрогенератора.
Краткое описание в другой теме - 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 и используют только положительные значения. Где правда?

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


как быстро реагирует двигатель на изменение положения заслонки при максимальной нагрузке?
Go to the top of the page
 
+Quote Post
Abrams
сообщение Jan 24 2014, 08:00
Сообщение #89


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 10-02-09
Из: Выборг
Пользователь №: 44 667



Цитата(thermit @ Jan 24 2014, 11:23) *
как быстро реагирует двигатель на изменение положения заслонки при максимальной нагрузке?


К сожалению точно не знаю sad.gif
Заказчик говорит, что на других генераторах, при изменении нагрузки с минимума до максимальной двигатель реагирует практически мгновенно и просаживания частоты генератора не заметно. Но это все на глаз, по индикатору выходной частоты генератора.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 24 2014, 08:15
Сообщение #90


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Abrams @ Jan 24 2014, 12:00) *
К сожалению точно не знаю sad.gif

Да это и не важно - двигатель такой, какой есть. Регулятор должен быть настроен адекватно. Время тут относительная величина с точки зрения масштаба.
Go to the top of the page
 
+Quote Post

7 страниц V  « < 4 5 6 7 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.0147 секунд с 7
ELECTRONIX ©2004-2016