|
|
  |
ПИД регулятор темперауры |
|
|
|
Dec 15 2008, 14:52
|
Группа: Участник
Сообщений: 11
Регистрация: 1-11-07
Пользователь №: 31 960

|
Помогите разобраться с цыфровым ПИД регулированием температуры. Моя цель: "разработать пид регулятор температуры на базе микроконтроллера AVR". Не могу разобраться с математикой пид регулирования.
|
|
|
|
|
Dec 15 2008, 15:23
|
Группа: Участник
Сообщений: 11
Регистрация: 1-11-07
Пользователь №: 31 960

|
Цитата(_Pasha @ Dec 15 2008, 18:05)  Поиск по слову терморегулятор или PID нынче рулит так, шо аж бегом  Спасибо! Поискавиком я пользовоться умею. Вопрос в другом.
|
|
|
|
|
Dec 15 2008, 15:41
|
Группа: Участник
Сообщений: 11
Регистрация: 1-11-07
Пользователь №: 31 960

|
Цитата(mempfis_ @ Dec 15 2008, 18:26)  Недавно занимался таким. В приложениях достаточно данных чтобы разобраться с ПИД и реализовать его на какой-нибудь ATMEGe  Благодарю за полезную информацию, буду разбираться.
|
|
|
|
|
Dec 15 2008, 19:17
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 19-11-08
Пользователь №: 41 761

|
Цитата(Bobi @ Dec 15 2008, 18:52)  Помогите разобраться с цыфровым ПИД регулированием температуры. Не могу разобраться с математикой пид регулирования. Что конкретно непонятно? Задайте вопрос. Собственно математика ПИД примитивна, обычно сложности начинаются на этапе достижения устойчивости, тут больше ТАУ. Рассмотрено неоднократно в том числе вроде и на данном форуме.
|
|
|
|
|
Dec 15 2008, 20:14
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 19-11-08
Пользователь №: 41 761

|
Цитата(evgeny_ch @ Dec 15 2008, 23:30)  Занудства для, следует отметить, что при регулировании температуры, буква Д в практике не используется. Да и в иных "бытовых"  применениях зачастую трудно обнаружить эффект этой буквы  , но здесь тема то, наверное, учебная, вся азбука должна быть реализована...
|
|
|
|
|
Dec 16 2008, 09:44
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(_Pasha @ Dec 16 2008, 13:33)  Это там где есть выход не только нагрева, но и охлаждения ? Жжош. Поясню, дифсоставляющая реагирует на скорость измения ошибки, компенсируя фазовое запаздывание в системе. В системах с активной нагрузкой нет фазового запаздывания. Чем систему вернуть назад, когда она перегрелась? Дифференциатором охладить?
--------------------
Quo vadis?
|
|
|
|
|
Dec 16 2008, 10:11
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(_Pasha @ Dec 16 2008, 13:50)  Ну, во-первых, мы ишшо не знаем, был там таковой (выход охлаждения) или нет. А если был, то наличие ручки "Д" вполне логично.  Если охлаждать, то оно конечно такида. Если объект микролептон (бозон) с кондиционером, то регулировать будет. Лучше.
Сообщение отредактировал evgeny_ch - Dec 16 2008, 10:14
--------------------
Quo vadis?
|
|
|
|
|
Dec 16 2008, 11:04
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(slog @ Dec 16 2008, 14:52)  P - 1..100 через 0.1 D - 1..10000 через 1 Как-то странно, учитывая то, что обычно D <= P/2 Цитата И еще момент мутный - что делать если интегратор зашкаливает. Ограничить интегратор. Было много сказано здесь
|
|
|
|
|
Dec 16 2008, 12:12
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Добавлю, что в реальных условиях Д помогает бороться с возникновением автоколебаний в малом. Т.е. очень часто регуляторы, особенно температуры, работают с мелкими автоколебаниями. Особенно хорошо это заметно если нагреватель можно только включить на 100% и выключить вообще. Если, например, задан период этого включения/выключения 0.1 секунды, то при мощности нагревателя 50% казалось-бы должно быть (0-выключено, 1-включено) так: 01010101010101010..., но в реальности видно, что происходит так: 1110011000111001110001100... Основная причина тут в задержке (чистая задержка) прохождения тепла от нагревателя до датчика температуры. Правильная настройка Д позволяет улучшить качество регулирования в этом случае. Хотя и не полностью. Иногда в регулятор специально приходится подмешивать случайную величину. Т.е. получается что-то типа сигма-дельта. Но это уже тема для всяких там диссертаций.
|
|
|
|
|
Dec 16 2008, 13:21
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(Tanya @ Dec 16 2008, 14:05)  Вряд ли... Они были грамотные.... Они даже это слово без ошибок могли писать.. И прибор был очень хороший для тех времен. Да и теперь их полно кое-где... И работают... И точность дают, каковая Вам и не снилась... Выходной тиристорный блок весил... именно для нагрева молекул и атомов... А про влияние буквы Д на "точность дают" можно поконкретнее? В процентах, применительно к весу.  Не нашёл документации на сие чудо.
Сообщение отредактировал evgeny_ch - Dec 16 2008, 13:24
--------------------
Quo vadis?
|
|
|
|
|
Dec 16 2008, 13:24
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 19-11-08
Пользователь №: 41 761

|
Цитата(slog @ Dec 16 2008, 15:30)  Как определить с какой частотой имеет смысл вызывать ПИД и до каких пределов ограничивать интегратор?
Ещё вопрос - какие есть алгоритмы автонастройки ПИД-регулятора. Частота сэмплирования дискретного пид регулятора, обычно, не менее чем в тридцать раз должна превышать постоянную времени объекта управления. Вообще период квантования входит в формулы вычисления коэффициентов. Интегратор ограничивается в пределах штатного диапазоны выходного сигнала, т.е. для нагревателя: от нуля до максимума мощности. Если же у Вас регулятор "улетает очень далеко", то это просто означает, что система возбуждается, в таком случае скорость реакции регулятора выше необходимой для данного объекта управления -- неправильно выбраны коэффициенты, в частности напрмиер необходимо уменьшить коэффициент пропорциональной составляющей (именно она определяет скорость выхода на установившийся режим (интегральная -- точность)). Коэффициенты определяются сущностью объекта управления, его реакцией на управляющие воздействия, его математическим описанием, все это рассматривается в теории автоматического кправления книге по ней и следует читать, в противном случае или когда модель объекта неизвестна только подбором, алгоритмы такого подбора существут и встречаются изложенными применительно к разнообразным объектам, следует заетить, что нагреватель является практически идеальным объектом управления, регулировать его проще вссего. Начинать настройку однозначно следует с отключенной дифференциальной составляющей (да и ненужна она уж для терморегулятора точно). Из папки тестс: Нашел какой-то старый образчик, там стабилизируется сопротвлеение нагревтеля паяльника  в целях стабилизации температуры оного, в первом приближении, на сколько помню, стабилизировал  , нормальный регулятор несколько сложнее, но принцип виден. Аеще стабилизатор частоты вращения, тот помнится возбуждался, но тоже стабилизировал
|
|
|
|
|
Dec 16 2008, 13:55
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(evgeny_ch @ Dec 16 2008, 16:21)  А про влияние буквы Д на "точность дают" можно поконкретнее? В процентах, применительно к весу. Не нашёл документации на сие чудо. И не найдете, наверное уже... Старо, как мир... А про букву Д никаких секретов нет... Непонятно мне, почему некоторые господа товарищи считают, что эта буква применима только к регуляторам нетемпературы... Но Вы-то... заикались про модель... А модель-то там сложнее намного, чем многим кажется... вот тепловые волны имеют аналогию? Хотя... если ап(п)роксимировать все прямой, а еще лучше константой..., все просто... А точность можно получить хорошую... Странно, что Вы считаете, что для больших объектов Д не нужна, а для малых, наоборот... Мне вот кажется, что, скорее, наоборот... Вы бы объяснили, отчего так получается... Хотя бы, исходя из концепции "быстрого" и "медленного" времени.
|
|
|
|
|
Dec 16 2008, 14:12
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(Tanya @ Dec 16 2008, 17:55)  ...Вы бы объяснили, отчего так получается... Хотя бы, исходя из концепции "быстрого" и "медленного" времени. Всё просто, у больших объектов больше инерционность, сл. они менее критичны к возмущающим воздействиям. Медленные оне, и скорость изменения их температуры малла. Посему Дериватив никчему. А вот мелкие... изменяют... температуру...концептуально иначе. ... - Это я опять икаю.
Сообщение отредактировал evgeny_ch - Dec 16 2008, 14:15
--------------------
Quo vadis?
|
|
|
|
|
Dec 16 2008, 14:20
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(evgeny_ch @ Dec 16 2008, 17:12)  Всё просто, у больших объектов больше инерционность, сл. они менее критичны к возмущающим воздействиям. Медленные оне, и скорость изменения их температуры малла. Посему Дериватив никчему. А вот мелкие... изменяют... температуру...концептульно иначе. ... - Это я опять икаю.  Все познается в сравнении с масштабом времени, температуры и воздействия... Не буду с вами спорить - это бесполезно и мне и Вам...
|
|
|
|
|
Dec 16 2008, 18:29
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Baser @ Dec 16 2008, 21:36)  Собственно вопрос: на сколько должно быть больше градаций ШИМа, чем градаций уставки, чтобы обеспечить требуемую точность. Имхо все равно зависит от физики: какое минимальное количество теплоты надо дать, чтобы температура объекта изменилась на 0,5 градации ? Цитата(slog @ Dec 16 2008, 22:01)  И получается что ПИД надо включать только при некотором приближени к установленной температуре. Это чё, нормально? Абсолютно да!
|
|
|
|
|
Dec 16 2008, 23:21
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 19-11-08
Пользователь №: 41 761

|
Цитата(slog @ Dec 16 2008, 22:01)  Но вот если ПИД включать с начала, пока паяльник холодный, получается ерунда. Пока паяльник прогревается, накопленная ошибка в интегральном звене улетает до предела, потом долго возвращается назад. Получается сильное перерегулирование. Подобрать коэффициенты чтобы и нагревало быстро и поддерживало хорошо - не получается. И получается что ПИД надо включать только при некотором приближени к установленной температуре. Это чё, нормально? Помните как в известном фильме "... когда Вы говорите, такое впечатление, что Вы бредите..."  . Какая (нах) ошибка в интегральном звене -- там не ошибка, а как раз значение выходного, управляющего сигнала. До какого предела?... Какое перерегулирование в тот момент пока паяльник не достиг заданной температуры..., в этот момент и должна быть выдана максимальная мощность и "интеграл", а следовательно и выход должен "лежать на упоре", "упереться" в максимум выхода, а вот по мере приближения к уставке должна снизиться скорость "подхода" (кстати это решается в том числе и дифференциальным звеном), но перегулирование обычно всегда есть, это всегда видно на соотвтствующих графиках. Ничего вкл/выкл не нужно, дискретное пид регулирование полный "аналог", например, аналоговой стабилизации напряжения (во всех блоках питания к примеру), там точно также есть интегральное звено, образованное емкостьюе "охватывающей" усилитель ошибки, пропорциональный элемент, задаваемый резисторами, устанавливающии коэффициент усиления того-же усилителя и дифференциал редко пристраивают, но, главное, никому и в голову прийти не может, даже не знаю как написать  , ключ что-ли поставить, что-бы включать/выключать стабилизацию  Теория автоматического управления очень хорошо разработана, недаром "...космические корабли бороздят просторы вселенной..."  , читайте книги, или подбирайте параметры.
|
|
|
|
|
Dec 17 2008, 05:50
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Цитата(Alex128 @ Dec 17 2008, 02:21)  Помните как в известном фильме "... когда Вы говорите, такое впечатление, что Вы бредите..."  . Какая (нах) ошибка в интегральном звене -- там не ошибка, а как раз значение выходного, управляющего сигнала. До какого предела?... Какое перерегулирование в тот момент пока паяльник не достиг заданной температуры..., в этот момент и должна быть выдана максимальная мощность Объясню на пальцах, но другими словами. В интергаторе накапливается сумма ошибок. Выход интегрального звена это коэф I умноженный на сумму ошибок накопленную за последнее время. И пока объект нагреется от холодного состояния до заданного - эта сумма ошибок успевает добежать до максимума. Естественно интегральное звено выдает при этом максимум на нагреватель. И оно продолжает выдавать максимум когда температура уже достигла установленной, в этот момент ошибка меняется на отрицательную, но интегральное звено и дальше продолжает выдавать слишком много, хоть уже и не не максимум. Нагреватель греет уже давно перегретый обьект. До тех пор пока отрицательная ошибка не скомпенсирует до разумных пределов то что накопилось в интеграторе за момент нагрева. Из-за этого возникает сильное перерегулирование. Когда этот процесс успокоится регулирование идёт нормально. Вот и хотелось бы понять как тут быть. Тем более когда "корабли бороздят..."
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
|
Dec 17 2008, 05:53
|

Частый гость
 
Группа: Свой
Сообщений: 161
Регистрация: 17-08-04
Из: Караганда
Пользователь №: 516

|
Цитата(Alex128 @ Dec 17 2008, 03:21)  Ничего вкл/выкл не нужно, дискретное пид регулирование полный "аналог", например, аналоговой стабилизации напряжения (во всех блоках питания к примеру), там точно также есть интегральное звено, образованное емкостьюе "охватывающей" усилитель ошибки, пропорциональный элемент, задаваемый резисторами, устанавливающии коэффициент усиления того-же усилителя и дифференциал редко пристраивают, но, главное, никому и в голову прийти не может, даже не знаю как написать  , ключ что-ли поставить, что-бы включать/выключать стабилизацию  Теория автоматического управления очень хорошо разработана, недаром "...космические корабли бороздят просторы вселенной..."  , читайте книги, или подбирайте параметры. Однако у любого регулятора есть ограниченая рабочая область и один набор коэффициентов не может охватить все режимы работы объекта регулирования. А на практике действительно есть такой ключ для включения и выключения "стабилизаци", например в АСУ ТП котлоагрегата есть кнопка автомат/дистанция на любом регуляторе и никому в голову не приходит включить автомат во время растопки.
|
|
|
|
|
Dec 17 2008, 07:37
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Baser @ Dec 16 2008, 20:36)  Встряну и я сюда со своим практическим вопросиком по теме: Есть достаточно инерционный объект, постоянная времени - минуты. Нужно его термостабилизировать при помощи ШИМа. Применяется пельтье, т.е. возможность нагревать/охлаждать. Уставка температуры должна иметь, к примеру, 1000 градаций. Точность регулирования, соответственно, желательно получить на уровне одной градации (+/-0.5 градации). Собственно вопрос: на сколько должно быть больше градаций ШИМа, чем градаций уставки, чтобы обеспечить требуемую точность. Когда дальнейшее увеличение разрешения ШИМа станет бессмысленным? Абсолютно неважно, какая постоянная времени, тем более, что у большого объекта много постоянных времени... Если теплоотдача (приток) линейно зависит от температуры, то, естественно, подводимая средняя мощность равна отводимой в стационарном режиме. Поэтому разрядность интегрального члена должна быть больше 1000. А разрядность ШИМа... может быть...1. Как в сигма-дельта преобразователе. Важно только, чтобы один квант энергии не нагревал объект больше половины градации.
|
|
|
|
|
Dec 17 2008, 07:46
|

Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669

|
Цитата(Tanya @ Dec 16 2008, 11:04)  Вот это новость. Видели когда-нибудь ВРТ-2(3)? Древний-древний девайс...Без контроллеров... Высокоточный регулятор температуры называется..... А был еще (до сих пор применяется) прецизионный регулятор БПРТ-3
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Dec 17 2008, 09:50
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(slog @ Dec 17 2008, 08:50)  Объясню на пальцах, но другими словами. В интергаторе накапливается сумма ошибок. Выход интегрального звена это коэф I умноженный на сумму ошибок накопленную за последнее время. И пока объект нагреется от холодного состояния до заданного - эта сумма ошибок успевает добежать до максимума. Естественно интегральное звено выдает при этом максимум на нагреватель. И оно продолжает выдавать максимум когда температура уже достигла установленной, в этот момент ошибка меняется на отрицательную, но интегральное звено и дальше продолжает выдавать слишком много, хоть уже и не не максимум. Нагреватель греет уже давно перегретый обьект. До тех пор пока отрицательная ошибка не скомпенсирует до разумных пределов то что накопилось в интеграторе за момент нагрева. Из-за этого возникает сильное перерегулирование. Когда этот процесс успокоится регулирование идёт нормально. Вот и хотелось бы понять как тут быть. Тем более когда "корабли бороздят..." Когда ошибка более 10% от уставки можно просто обнулять интегратор Ведь он реально нужен лишь для компенсации статической ошибки в установившемся режиме. Конечно, всё зависит от объекта. Можно позволить пользователю регулировать эту величину (проценты от уставки). Вы проведите моделирование в matlab и сразу всё поймёте. Рассуждать можно бесконечно...
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Dec 17 2008, 10:20
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Цитата(demiurg_spb @ Dec 17 2008, 12:50)  Когда ошибка более 10% от уставки можно просто обнулять интегратор Ведь он реально нужен лишь для компенсации статической ошибки в установившемся режиме. Конечно, всё зависит от объекта. Можно позволить пользователю регулировать эту величину (проценты от уставки). Вы проведите моделирование в matlab и сразу всё поймёте. Рассуждать можно бесконечно... Я уже провёл, не моделирование, а экспериментирование, в натуре. И вообщем всё примерно понял. ПИД надо включать только после того как при 100% выходной мощности обьект прогреется до момента, после которого отключение выхода не вызовет перегрева объекта из за тепловой инерции. А вот после предварительного прогрева уже можно включить и ПИД.
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
|
Dec 17 2008, 10:49
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(slog @ Dec 17 2008, 13:20)  Я уже провёл, не моделирование, а экспериментирование, в натуре. И вообщем всё примерно понял. ПИД надо включать только после того как при 100% выходной мощности обьект прогреется до момента, после которого отключение выхода не вызовет перегрева объекта из за тепловой инерции. А вот после предварительного прогрева уже можно включить и ПИД. "Этот Ваш момент" уже имеется до включения устройства... На самом деле, правильный момент наступает при уменьшении скорости нагрева раз в ... 3-5 при использовании только пропорционального управления. Это если тупо... А если с умом, то его можно вычислить, зная теплоемкость и разность температур, если точно учитывать подведенное и отведенное тепло. После чего можно включать интегральный член с ненулевым значением... Его тоже можно узнать заранее... Может лучше ограничить скорость изменения задания, если не слишком торопимся?
|
|
|
|
|
Dec 17 2008, 13:39
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(_Pasha @ Dec 17 2008, 16:19)  Это справедливо только в случае, если достаточно мала инерционность, и в системе достаточно интенсивный теплообмен с окружающей средой. Что вы называете малой инерционностью и интенсивным теплообменом? По сравнению с чем? Вот Вам пример для размышления... Берем тонкую-тонкую проволочку. Помещаем ее в ведро с водой...теплоизолированное... Температуру проволоки измеряем по ее сопротивлению... 1. Пропускаем маленький ток... такой маленький, что проволочка сразу не нагревается (на грани нашей чувствительности)... Теперь будем долго-долго наблюдать нагревание ведра воды...может год... 2. Даем побольше. Проволочка сразу нагрелась на 5 градусов, потом медленно прогревается... может день.. 3. Пропускаем средний ток. Температура проволочки - 105 градусов... через одну микросекунду, секунду, час... 4. Пропускаем большой ток... Проволочка сгорела... Вопросы. Тут разная инерционность? Разный теплообмен? Разные постоянные времени?
|
|
|
|
|
Dec 17 2008, 13:58
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Tanya @ Dec 17 2008, 17:39)  Вот Вам пример для размышления... Спасибо, хороший пример. Значит, я неправильно выразился. Попытка номер 2. Цитата греть на полной мощнеости пока не попадём в зону регулировки. 2sloq: Как Вы сможете гарантировать, а) что при попадании в зону регулировки у Вас не будет перегрева объекта регулирования за счет накопленного тепла, б) что ширина зоны регулирования, при которой обеспечивается соблюдение условия а), приемлима для обеспечения точности. ?
|
|
|
|
|
Dec 17 2008, 14:22
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Цитата(_Pasha @ Dec 17 2008, 16:58)  Как Вы сможете гарантировать, а) что при попадании в зону регулировки у Вас не будет перегрева объекта регулирования за счет накопленного тепла, б) что ширина зоны регулирования, при которой обеспечивается соблюдение условия а), приемлима для обеспечения точности. ? А-а-а так вот это самое интересное. Предположим что параметры обьекта заранее точно не известны. Ведь теплоёмкость и инерционность печки зависит от массы и теплоёмкости загруженного в неё добра. Но прикинуть примерно то можно. Начинаем греть на 100% мощности и меряем время которое прошло с момента включения нагревателя до момента начала нагрева обьекта. Кроме того нас интересует скорость с какой нагревается обьект, т.е. увеличение температуры за единицу времени, вообщем производная dT/dt. Ну а дальше из этого уже можно делать кое-какие выводы, думать надо.
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
|
Dec 17 2008, 14:33
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 19-11-08
Пользователь №: 41 761

|
Цитата(slog @ Dec 17 2008, 15:15)  Задача нагреть с максимальной скоростью, но перегреть никак нельзя. Значит у Вас очень ответственный и особенный термостат(?), в таком случае действительно придется применить специальную процедуру быстрого разогрева и подхода к области регулирования. Просто обычно именно нагреватели не очень ответственны и точны. Но это уже не универсальный метод. Например мне при стабилизации скорости вращения большущего (  )и ответственнейшего(  ) судового дизель-генератора приходилось снимать характеристику процесса его начальной раскрутки после запуска и чисто таблично управлять подводя обороты к уставке после старта, а затем действительно включать автоматическое регулирование, но это уже не система автоматического регулирования, а автоматизированная система управления, также как в случае с АСУ ТП котлоагрегата, такого рода сложные объекты, естественно, не могут быть описаны простыми зависимостями АР. Но дело тут не в ограниченном диапазоне регулирования, т.к. по определению он должен покрываться весь, к примеру, нас окружают тысячи маленьких системок автоматического регулирования в виде разнообразнейших стабилизаторов напряжения у которых диапазоны изменения нагрузки исчисляются порядками (от отсутствия нагрузки до ее максимального значения) и ничего все справляются. Дело в сложности внутренней структуры объекта управления проявляющейся в сложности внешнего проявления его поведения и соответственно в сложности управления (еще ядерные реакторы можно вспомнить с их особенными режимами, например, выхода на рабочий режим и вывода из работы). Коль скоро Ваш нагреватель столь требователен, то изучите его, характеристики его инерционности и "подводите" к области регулирования так как хочется с учетом возможной необходимости (?) различных уставок. Если же недопустимо именно перерегулирование в начальный момент, то обычно используют плавное нарастание уставки регулятора, т.е. регулятор регулирует, но то что он стремится поддержать (уставка) плавно подводится к целевой уставке, но это, естественно, долго. Опять же стабилизаторы БП пользуются такой методой, но это уже надстройка над чисто регулятором, неважно какой он природы дискретной или аналоговой. Такой метод обеспечивет хорошую скорость реакции, отклик в процессе работы при отсутствии перерегулирования в момент включения. Иначе можно просто "завалить" реакцию регулятора, он не будет перерегулировать на старте (вне зависимости от инерционности объекта, все определяется коэффициентами), но и реакция у такого регулятора будет медленной.
|
|
|
|
|
Dec 17 2008, 14:43
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(slog @ Dec 17 2008, 18:22)  А-а-а так вот это самое интересное. Про вакуумную печь вот тут обсуждалосьСделать по-людски, как предлагали, с контролем температуры нагрева, не представлялось возможным. Решил зонами: 1) необязательный нагрев до 50% уставки (печка холодная), 2) нагрев на 1 градус и измерение времени вкл. нагревателя 3) регистрация параметров заброса 4) Формирование выходного воздействия с учетом 2 и 3 5) Ожидание, когда температура достигнет уставки 6) Ожидание, когда температура упадет на 1 градус ниже уставки 7) переход к п.4 Где-то так. Параметры может и не ахти какие, но перегрев не больше 5 градусов, заказчика устраивает.
|
|
|
|
|
Dec 17 2008, 14:52
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(slog @ Dec 17 2008, 17:22)  А-а-а так вот это самое интересное. Предположим что параметры обьекта заранее точно не известны. Ведь теплоёмкость и инерционность печки зависит от массы и теплоёмкости загруженного в неё добра. Но прикинуть примерно то можно. Начинаем греть на 100% мощности и меряем время которое прошло с момента включения нагревателя до момента начала нагрева обьекта. Кроме того нас интересует скорость с какой нагревается обьект, т.е. увеличение температуры за единицу времени, вообщем производная dT/dt. Ну а дальше из этого уже можно делать кое-какие выводы, думать надо. Вы уже на верном пути... к истине... Только надо бы еще в Вашем случае тщательно следить за реальной мощностью нагревателя (интегрировать ее), а она зависит от напряжения сети (квадратично), сопротивления нагревателя... и теплоотдачей(внутренняя-внешняя температура)... еще теплоемкость... Не знаю. что за печь там у Вас... Если маленькая, то ее теплоемкость, скорее всего больше теплоемкости содержимого... В любом случае, суммарную теплоемкость можно узнать заранее... Все правильно учтете - получите точность порядка тысячной градуса...
|
|
|
|
|
Dec 17 2008, 16:01
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Замечу, что все здесь почему-то считают, что в природе бывают только 3 звена (САУ университетский курс): 1 Пропорциональное. 2 Интегральное. 3 Дифференциальное. И из этих предпосылок рассчитывают регулятор. Конечно такой рассчёт совершенно не сложен. И он отлично проработан в САУ (3й..4й курс). Видимо все учились по одним учебникам. И в университетах, к сожалению, занимаются тем, что одни люди учат других сдавать экзамены. И все пытаются описать объект регулирования именно вышеописанными звеньями. Как-будто делают курсач. Но жизнь сложнее. Кроме вышеназванных звенье есть другие, которые в университетах не проходят, или проходят в ознакомительном режиме. Пример: чистая задержка. Никаким из трёх звеньев её описать невозможно (и соответственно скомпенсировать). А в нагревателях она присутствует обязательно. Пример: один конец гвоздя (жала паяльника) нагрет докрасна, а второй имеет комнатную температуру. Тепло просто ещё не дошло от одного конца до другого. Ещё лучший пример задержки - жидкостное охлаждение/нагревание. В одном конце трубы (там стоит нагреватель) течёт горячая вода, а в другом (там стоит датчик температуры) совершенно холодная (ещё не дотекла). Или по краям трубы вода холодная, а в середине горячая. Вы представляете как в таких условиях будет работать ПИД регулятор? Насколько придётся искусственно зарезать его быстродействие, чтобы получить приемлемый уровень автоколебаний! А насчёт интегратора - конечно нужно его ограничивать. И уровень этого ограничения находится очень просто. Необходимо чтобы одна только интегральная составляющая могла включить нагреватель/охладитель на полную мощность. Больше интегрировать смысла нет. Дальше от интегратора будет только вред.
|
|
|
|
|
Dec 20 2008, 14:01
|

Группа: Участник
Сообщений: 7
Регистрация: 8-11-08
Из: Киев
Пользователь №: 41 471

|
Разрешите вставить свои пять копеек, т.к. регуляторами температуры приходится заниматься регулярно. Любой регулятор нужно настраивать. Настройка сводится с подбору коэффициентов пропорционального, интегрального и дифференциального звена. В общем виде: P=Kп*X+Kи*SUMMA(X)+Kд*(dX/dT), где: X-разность между установленной и измеренной температурой; P-значение выходной мощности; SUMMA(X)-сумма значений X; (dX/dT)-разность между значениями X от измерения к измерению; Kп,Kи,Kд-кэффициенты пропорционального, интегрального и дифференциального звена. Если объект инерционный (время реакции на воздействие от 1 сек. и больше, приблизительно конечно), то дифференциальное звено погоды делать не будет. Диф. звено используется в динамичных объектах и позволяет резко поддавать мощи или также резко убирать. Можно сделать только проп. регулятор, но там всегда будет иметься отклонение от уст. температуры (статизм). С интегратором этого нет, т.к. в установившемся режиме X болтается около ноля. Часто алгоритм регулятора включают в каком-то диапазоне от уст. величины, чтобы небыло различных залетов интегратора и т.п. Есть алгоритмы самонастройки регуляторов. Книг по этой теме миллион. Иногда такие объекты попадаются, что мозги вскипают. А с появлением микропроцессоров сколько разработчиков - столько и решений.
|
|
|
|
|
Dec 21 2008, 20:28
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 19-11-08
Пользователь №: 41 761

|
Цитата(galjoen @ Dec 17 2008, 20:01)  Замечу, что все здесь почему-то считают, что в природе бывают только 3 звена Дык, Вы свое "звено" предложите, опишите, мы, все и станем его с удовольствием использовать, а нвзывавть его станем Г-звено, от "galjoen", а то все дурачье, не знают что там galjoen на 5,6,7...и прочих бестужевских курсах прошел.
|
|
|
|
|
Dec 21 2008, 20:38
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 21-11-08
Пользователь №: 41 832

|
Цитата(Леонид Иванович @ Dec 21 2008, 18:30)  Удобно пользоваться дифференциальной формой записи ПИД-регулятора. Возможно не совсем по теме. А здесь и безударный переход с ручного на автомат проще реализовать: e[i]=0 и все Используя, P=Kп*X+Kи*SUMMA(X)+Kд*(dX/dT), приходилось вычислять начальное значение интегратора при переходе "ручной-автомат".
|
|
|
|
|
Dec 22 2008, 12:11
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Alex128 @ Dec 21 2008, 23:28)  Дык, Вы свое "звено" предложите, опишите, мы, все и станем его с удовольствием использовать, а нвзывавть его станем Г-звено, от "galjoen", а то все дурачье, не знают что там galjoen на 5,6,7...и прочих бестужевских курсах прошел. Просто удивительно, что мой пост вызвал такую реакцию. Я имел ввиду следующее: 1. ПИД регулятор предполагает, что объект управления с достаточной точностью описывается П. И. Д. звеньями. 2. Не все реальные объёкты можно представить в виде вышеуказанных звеньев с достаточной точностью. 3. Применение ПИД регулятора для управления таким объектом не позволит добится достаточного качества регулирования. 4. Неверно представление о том, что ПИД регулятор это "лекарство от всех болезней, нужно только его правильно настроить". 5. Прежде чем делать регулятор нужно понять чем является объект управления. Желательно попытаться построить его математическую модель. Цитата(slog @ Dec 17 2008, 17:22)  А-а-а так вот это самое интересное. Предположим что параметры обьекта заранее точно не известны. Ведь теплоёмкость и инерционность печки зависит от массы и теплоёмкости загруженного в неё добра. Но прикинуть примерно то можно. Начинаем греть на 100% мощности и меряем время которое прошло с момента включения нагревателя до момента начала нагрева обьекта. Кроме того нас интересует скорость с какой нагревается обьект, т.е. увеличение температуры за единицу времени, вообщем производная dT/dt. Ну а дальше из этого уже можно делать кое-какие выводы, думать надо. Вот пример правильного подхода. Ещё лучше построить математическую модель пустой печки. Тогда по отличию реального процесса нагрева от того, что происходит в модели можно будет узнать сколько тепла понадобилось дополнительно. И даже понять куда уходит тепло - в железяку, засунутую в печь, или через неплотно закрытую дверцу в окружающую среду. Если в железяку, то можно оценить её теплоёмкость и скорректировать регулятор. На таком принципе (использование мат. модели) я сделал систему в которой измеряется кол-во тепла, ушедшего на нагрев объекта, а не самого нагревателя. Там именно это было значимым.
|
|
|
|
|
Dec 23 2008, 11:35
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 21-11-08
Пользователь №: 41 832

|
Цитата(Tanya @ Dec 22 2008, 12:32)  Представьте себе переменный резистор (потенциометр). Представить могу, реализовывать никогда. Шорохи от резистора испортят всю красоту.
|
|
|
|
|
Dec 24 2008, 13:10
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(an_ga @ Dec 20 2008, 17:01)  Разрешите вставить свои пять копеек, т.к. регуляторами температуры приходится заниматься регулярно.Любой регулятор нужно настраивать....А с появлением микропроцессоров сколько разработчиков - столько и решений.  немного не соглашусь. лично сам разработал алгоритм позволяющий регулировать водяные калориферы БЕЗ ВСЯКИХ настроек. ЛЮБЫЕ. Чем выше КПД теплообменника те ТОЧНЕЕ держит (если более 50% то 1,5 градуса если более 10% 2,5 градуса). Настройка только одна - ЖЕЛАЕМАЯ ТЕМПЕРАТУРА. испытывался на реальных объектах с короткими теплотрассами, с биениями котлов(более 20 градусов) и прочей мути. удачи Вам (круглый) ЗЫ Кстати алгоритм на азме строк 80 занимает всего....
|
|
|
|
|
Dec 24 2008, 18:44
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(kolobok0 @ Dec 24 2008, 16:40)  ответ очевиден. Вообще-то сказано "Не давши слова, крепись, а давши - держись!". А то получается как бы все остальные не сумеют "лично разарботать алгоритм"...
|
|
|
|
|
Dec 25 2008, 13:22
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Уважаемый All, может кто-нибудь в этой теме проконсультировать по ПИД-регулятору применительно к связке ДВС от ВАЗ-2101 + 3-х фазный генератор. Или лучше создать новую тему? Не могу стабилизировать систему хоть убейся. Не пойму в чем моя ошибка. Читал все что под руку попадаось, смотрел примеры, пытался разобраться. Раньше с ПИД-регулированием дела не имел, поэтому за основу взял пример из AVR221, если не ошибаюсь. Управляю воздушной заслонкой карбюратора при помощи шагового двигателя с шагом 1,8° через червячный редуктор 1:40. Обороты измеряю при помощи энкодера 10раз/сек, с такой же частотой обсчитываю ПИД. Шаговый двигатель делает 25шагов/сек. При И и Д коэффициентах отличных от нуля система идет в разнос. Еще как-то работает П звено, но с коэффициентами 0,01-0,02 не более, дальше перерегулирование начинатеся большое.
|
|
|
|
|
Dec 25 2008, 14:34
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Вот исходники ПИД-регулятора... *.h Коэффициенты введены для примера Код #define K_P 0.22 #define K_I 0.006 #define K_D 0.001
#define SCALING_FACTOR 128
typedef struct PID_DATA{ int lastProcessValue; long sumError; int P_Factor; int I_Factor; int D_Factor; int maxError; long maxSumError; } pidData_t;
#define INT16_MAX 32767 #define INT32_MAX 2147483647
#define MAX_INT INT16_MAX #define MAX_LONG INT32_MAX #define MAX_I_TERM (MAX_LONG / 2)
extern struct pidData_t PID_DATA;
void pid_Init(int p_factor, int i_factor, int d_factor, struct PID_DATA *pid); int pid_Controller(int setPoint, int processValue, struct PID_DATA *pid_st); *.c Код #include "pid.h"
void pid_Init(int p_factor, int i_factor, int d_factor, struct PID_DATA *pid) { pid->sumError = 0; pid->lastProcessValue = 0;
pid->P_Factor = p_factor; pid->I_Factor = i_factor; pid->D_Factor = d_factor; pid->maxError = MAX_INT / (pid->P_Factor + 1); pid->maxSumError = MAX_I_TERM / (pid->I_Factor + 1); }
int pid_Controller(int setPoint, int processValue, struct PID_DATA *pid_st) { int error, p_term, d_term; long i_term, ret, temp;
error = setPoint - processValue;
//----- Calculate Pterm and limit error overflow if (error > pid_st->maxError){ p_term = MAX_INT; } else if (error < -pid_st->maxError){ p_term = -MAX_INT; } else{ p_term = pid_st->P_Factor * error; }
//----- Calculate Iterm and limit integral runaway temp = pid_st->sumError + error; if(temp > pid_st->maxSumError){ i_term = MAX_I_TERM; pid_st->sumError = pid_st->maxSumError; } else if(temp < -pid_st->maxSumError){ i_term = -MAX_I_TERM; pid_st->sumError = -pid_st->maxSumError; } else{ pid_st->sumError = temp; i_term = pid_st->I_Factor * pid_st->sumError; }
//----- Calculate Dterm d_term = pid_st->D_Factor * (pid_st->lastProcessValue - processValue);
pid_st->lastProcessValue = processValue;
ret = (p_term + i_term + d_term) / SCALING_FACTOR; if(ret > MAX_INT){ ret = MAX_INT; } else if(ret < -MAX_INT){ ret = -MAX_INT; }
return((int)ret); } Инициализация выглядит примерно так: Код pid_Init(K_P * SCALING_FACTOR, K_I * SCALING_FACTOR , K_D * SCALING_FACTOR, &pidData);
|
|
|
|
|
Dec 25 2008, 14:58
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(Maik-vs @ Dec 24 2008, 21:44)  Вообще-то сказано... я не хотел никого обидеть...но как это по русски - я хочу извлечь из этого прибыль. это зазорно? или запрещено законом? с уважением (круглый)
|
|
|
|
|
Dec 25 2008, 20:42
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 19-11-08
Пользователь №: 41 761

|
Цитата(MSprut @ Dec 25 2008, 17:22)  Уважаемый All, может кто-нибудь в этой теме проконсультировать по ПИД-регулятору применительно к связке ДВС от ВАЗ-2101 + 3-х фазный генератор. Или лучше создать новую тему? Не могу стабилизировать систему хоть убейся. Не пойму в чем моя ошибка. Читал все что под руку попадаось, смотрел примеры, пытался разобраться. Раньше с ПИД-регулированием дела не имел, поэтому за основу взял пример из AVR221, если не ошибаюсь. Управляю воздушной заслонкой карбюратора при помощи шагового двигателя с шагом 1,8° через червячный редуктор 1:40. Обороты измеряю при помощи энкодера 10раз/сек, с такой же частотой обсчитываю ПИД. Шаговый двигатель делает 25шагов/сек. При И и Д коэффициентах отличных от нуля система идет в разнос. Еще как-то работает П звено, но с коэффициентами 0,01-0,02 не более, дальше перерегулирование начинатеся большое. Очень низкая частота дискретизации, для значительно более инерционного дизельгенератора экспериментально была выяснена минимально допустимая: 300Гц (200-1000Гц), номинальная частота вращения 1500 м-1. У Вас получился регулятор, который "медленнее" объекта регулирования, сие недупустимо. Еще раз частота дискретизации не менее чем в 30 раз должна превышать постоянную времени объекта. Возможно медленен и шаговывый привод, это вообще что за установка (?), промышленного производства (?), встречал в подобных генераторах только бесступенчатый соленоидный привод, (например в моем случае была частота 200Гц). Что это за "Обороты измеряю при помощи энкодера" (?), так было сделано до Вас (?), необходимо мерить не менее сотни раз за оборот, мерить период и тщательно его обрабатывать, точность важна (!), применял комплексную скользящую медианную отбраковку/усреднение (медианная отбраковка крайних сэмплов в серии отбрасывает промахи, выбросы, короче грубые ошибки, а усреднении средних сэмплов сглаживает результат, скользящая, т.к. важно "часто" получать готовые результаты). Обычно индуктивным датчиком с зубьев маховика (обычно 120-140 шт., у ВАЗ-2101 не знаю, у ВАЗ-2108 как будто 128 шт.), может его есть куда прикрутить в картер сцепления или что там его заменяет  , когда-то были зубчатые шкивы коленвала для классики, даже целые установочные комплекты с датчиками  .
|
|
|
|
|
Dec 26 2008, 07:45
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(Alex128 @ Dec 25 2008, 22:42)  Возможно медленен и шаговывый привод, это вообще что за установка (?), промышленного производства (?), встречал в подобных генераторах только бесступенчатый соленоидный привод, (например в моем случае была частота 200Гц). Что это за "Обороты измеряю при помощи энкодера" (?), так было сделано до Вас (?), необходимо мерить не менее сотни раз за оборот, мерить период и тщательно его обрабатывать, точность важна (!), применял комплексную скользящую медианную отбраковку/усреднение (медианная отбраковка крайних сэмплов в серии отбрасывает промахи, выбросы, короче грубые ошибки, а усреднении средних сэмплов сглаживает результат, скользящая, т.к. важно "часто" получать готовые результаты). Обычно индуктивным датчиком с зубьев маховика (обычно 120-140 шт., у ВАЗ-2101 не знаю, у ВАЗ-2108 как будто 128 шт.), может его есть куда прикрутить в картер сцепления или что там его заменяет  , когда-то были зубчатые шкивы коленвала для классики, даже целые установочные комплекты с датчиками  . Это резервный генератор. Двигатель от ВАЗ-2101 бензиновый, карбюраторный в связке с 3-х фазным синхронным генератором 8кВт. Между ними коробка передач. К карбюратору адаптирован однозаходный червячный редуктор с шаговым двигателем. Установка самопальная. Энкодер - диск с 60-ю метками на валу генератора (обороты в 2 раза выше оборотов двигателя) + оптопара на отражение и формирователь импульсов. До этого импульсы брал с датчика Холла системы зажигания и измерял период с простым усреднением, но было очень медленно. Собственно энкодер наверное является аналогом зубчатого венца. К маховику лезть не хочется, есть свои заморочки по механической части. Установка уже в работе, только руками все управляется сейчас, а автоматика не может управлять из-за отсутствия регулирования оборотов. Номинальные обороты двигателя 2250 -2300 об/мин.
|
|
|
|
|
Dec 26 2008, 08:27
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Цитата(MSprut @ Dec 25 2008, 17:34)  Вот исходники ПИД-регулятора... Расчеты в целых числах а коэффициенты дробные 0.001 или 0.006. А SCALING_FACTOR всего 128. При иницализации 0.001*128 = меньше 1 округлится до 0. Я использовал такой же код, но мне было лень разбираться с переводами в целочисленную арифметику, поэтому я все сделал во float. Быстродействия проца хватит. И ещё могут быть косяки в согласовании выхода регулятора и диапазона действия исполнительного органа.
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
|
Dec 26 2008, 08:45
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(MSprut @ Dec 26 2008, 11:45)  Это резервный генератор. Двигатель от ВАЗ-2101 бензиновый, карбюраторный в связке с 3-х фазным синхронным генератором 8кВт. Между ними коробка передач. К карбюратору адаптирован однозаходный червячный редуктор с шаговым двигателем. Установка самопальная. Энкодер - диск с 60-ю метками на валу генератора (обороты в 2 раза выше оборотов двигателя) + оптопара на отражение и формирователь импульсов. До этого импульсы брал с датчика Холла системы зажигания и измерял период с простым усреднением, но было очень медленно. Собственно энкодер наверное является аналогом зубчатого венца. К маховику лезть не хочется, есть свои заморочки по механической части. Установка уже в работе, только руками все управляется сейчас, а автоматика не может управлять из-за отсутствия регулирования оборотов. Номинальные обороты двигателя 2250 -2300 об/мин. Что вам мешает управлять, используя в кач. сигнала ОС конечный параметр, а не обороты двигателя ВАЗ-2101? ШД (гибридные) проектировались для работы без ОС, поскольку там есть статический синхронизирующий момент, им не нужно управлять постоянно. Вы знаете КПД червячного редуктора и момент ШД?
Сообщение отредактировал evgeny_ch - Dec 26 2008, 09:14
--------------------
Quo vadis?
|
|
|
|
|
Dec 26 2008, 09:23
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(slog @ Dec 26 2008, 10:27)  Расчеты в целых числах а коэффициенты дробные 0.001 или 0.006. А SCALING_FACTOR всего 128. При иницализации 0.001*128 = меньше 1 округлится до 0. Я использовал такой же код, но мне было лень разбираться с переводами в целочисленную арифметику, поэтому я все сделал во float. Быстродействия проца хватит. И ещё могут быть косяки в согласовании выхода регулятора и диапазона действия исполнительного органа. Коэффициенты взяты для примера, SCALING_FACTOR можно увеличить, но сути это не меняет. А float не хочу использовать потому что проц загружен и так; измерение RMS напряжений, токов и частот по всем 3-м фазам, контроль за двигателем и интерфейс с другим девайсом, в который переганяется вся информация для отображения. Думаю float здоровье сильно не поправит. Цитата(evgeny_ch @ Dec 26 2008, 10:45)  Что вам мешает управлять, используя в кач. сигнала ОС конечный параметр, а не обороты двигателя ВАЗ-2101? ШД (гибридные) проектировались для работы без ОС, поскольку там есть статический синхронизирующий момент, им не нужно управлять постоянно. Вы знаете КПД червячного редуктора и момент ШД? От оборотов двигателя зависит частота тока на выходе генератора, к ней критично оборудование питаемое, а так больше ничего не мешает. Конструкция карбюратора, управляющего редуктора и вибрация не позволяют отпускать ШД в свободное плавание. КПД не знаю. Пишу вот это все и начинаю понимать, что система хуже некуда вырисовывается.
|
|
|
|
|
Dec 26 2008, 09:51
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(MSprut @ Dec 26 2008, 13:23)  ... От оборотов двигателя зависит частота тока на выходе генератора, к ней критично оборудование питаемое, а так больше ничего не мешает. Конструкция карбюратора, управляющего редуктора и вибрация не позволяют отпускать ШД в свободное плавание. КПД не знаю. Пишу вот это все и начинаю понимать, что система хуже некуда вырисовывается. Измеряя частоту генератора, управляйте шд. Гибридный шд имеет максимальнный момент на частоте приемистости, дальше меньше. Постоянно "дёргая" шд "кривой" ОС вы измучаетесь что-либо регулировать. Двигаете заслонку до нужной частоты генератора, потом следите в +/- , шагами двигателя.
--------------------
Quo vadis?
|
|
|
|
|
Dec 26 2008, 10:15
|
Группа: Участник
Сообщений: 4
Регистрация: 25-05-08
Пользователь №: 37 799

|
Здравствуйте! Что бы не создавать новую тему, подскажите пожалуйста, чем отличается ПИД регулирование и ПДД2 регулирование. И если можно пример на Си ПДД2 регулирования. И еще маленький вопросик, как можно реализовать автонастройку ПИД?
|
|
|
|
|
Dec 26 2008, 10:16
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(evgeny_ch @ Dec 26 2008, 11:51)  Измеряя частоту генератора, управляйте шд. Гибридный шд имеет максимальнный момент на частоте приемистости, дальше меньше. Постоянно "дёргая" шд "кривой" ОС вы измучаетесь что-либо регулировать. Двигаете заслонку до нужной частоты генератора, потом следите в +/- , шагами двигателя. Прошу прощения, но не могу понять при чем момент ШД? Момента мне хватает. Вы предлагаете вообще исключить ПИД из системы? Поддерживать обороты пошаговым приближением? А как же тогда система сможет быстро возвращаться к заданным оборотам?
|
|
|
|
|
Dec 26 2008, 10:31
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(MSprut @ Dec 26 2008, 14:16)  Прошу прощения, но не могу понять при чем момент ШД? Момента мне хватает. Вы предлагаете вообще исключить ПИД из системы? Поддерживать обороты пошаговым приближением? А как же тогда система сможет быстро возвращаться к заданным оборотам? Шаговый двигатель это синхронный двигатель, т. е. его ротор следует за полем статора, без отклонений более шага коммутации. Если, как вы пишете, момента хватает, то он отработает ровно столько импульсов, сколько дадите, и будет находиться в этом положении сколь угодно долго. Зачем здесь пид? Вы должны вычислить ошибку частоты и привести её значение к углу заслонки, подав необходимое количество импульсов коммутации на ШД убрать ошибку. С учётом разгона/торможения, естественно.
Сообщение отредактировал evgeny_ch - Dec 26 2008, 10:35
--------------------
Quo vadis?
|
|
|
|
|
Dec 26 2008, 10:41
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(evgeny_ch @ Dec 26 2008, 12:31)  ...и будет находиться в этом положении сколь угодно долго. Зачем здесь пид? В моей системе не будет он находится в фиксированном положении. Из-за вибраци система склонна к самоходу, т.е вибрация, возвратные пружины на заслонках карбюратора через какое-то время приводят к провороту вала и уменьшению оборотов. Так же присутствуют броски нагрузки в обе стороны.
|
|
|
|
|
Dec 26 2008, 11:17
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(MSprut @ Dec 26 2008, 14:41)  В моей системе не будет он находится в фиксированном положении. Из-за вибраци система склонна к самоходу, т.е вибрация, возвратные пружины на заслонках карбюратора через какое-то время приводят к провороту вала и уменьшению оборотов. Так же присутствуют броски нагрузки в обе стороны. Тогда вам не хватает синхронизирующего момента ШД. Нужен двигатель с большим моментом (габаритом, током). Срыв синхронизации ШД это нештатный режим работы. О регулировании не может быть разговора.
Сообщение отредактировал evgeny_ch - Dec 26 2008, 11:18
--------------------
Quo vadis?
|
|
|
|
|
Dec 26 2008, 11:24
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(evgeny_ch @ Dec 26 2008, 13:17)  Тогда вам не хватает синхронизирующего момента ШД. Нужен двигатель с большим моментом (габаритом, током). Срыв синхронизации ШД это нештатный режим работы. О регулировании не может быть разговора. К сожалению не имею возможности приобрести нужный ШД и система не подлежит переделке не по моей прихоти. И закончить работу нужно было "еще вчера". Есть какой-нибудь компромиссный выход?
|
|
|
|
|
Dec 26 2008, 12:31
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(MSprut @ Dec 26 2008, 16:28)  Редуктор был маленький, от какого-то летательного аппарата неизвестного происхождения, на коленке с помощью "Божьей матери" адаптирован к карбюратору и ШД. Маем то шо маем. Отвечая на все вопросы, сам начинаю понимать какая засада куда не ткни.  Скажите, как называется ваш двигатель. Какой ток у драйвера? У ШД можно поднимать ток, при соответствующем охлаждении. Это позволяет пропорционально поднять момент, в разумных пределах.
Сообщение отредактировал evgeny_ch - Dec 26 2008, 12:38
--------------------
Quo vadis?
|
|
|
|
|
Dec 26 2008, 12:48
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(evgeny_ch @ Dec 26 2008, 14:31)  Скажите, как называется ваш двигатель. Какой ток у драйвера? ДШИ-200-1-1, если память не изменяет. Драйвер L298, питание 12-14В, последовательно с парой обмоток резисторы по 10Ом, управление от МК. Параметры нашел где-то здесь на форуме: 1) сопротивление фазных обмоток, Ом 1,56±0,15; 2) максимальный статический синхронизирующий момент, н*м, не менее 0,25; 3) максимальная частота приемистотсти, Гц не менее 1200; 4) единичный шаг и статическая погрешность отработки шага, угл. Мин. 108±3,25 (при полушаговой управляющей последовательности); 5) максимальная потребляемая мощность, Вт не более 8,8. Рекомендуемое производителем напряжение питания -12В. Последовательно с каждой фазной обмоткой рекомендуется включать резистор 5,8Ом.
|
|
|
|
|
Dec 26 2008, 13:41
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(slog @ Dec 26 2008, 15:28)  Резистор последовательно с обмоткой это древний способ увеличить скорость нарастания тока. Во времена ШИМ не актуален. L298 ток ШИМом стабилизирует? В общем выкинуть можно эти резисторы, и добавить току если шаговик сейчас не очень горячий. L298 это просто два моста на биполярных транзисторах. А шаговик еще подогревается снаружи, потому что расположен над выпускным коллектором. И зачем ему ток добавлять? Его и без редуктора с трудом можно было руками остановить.
|
|
|
|
|
Dec 26 2008, 14:13
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(Tanya @ Dec 26 2008, 16:04)  Из Ваших предыдущих постов следовало, что тряска может скручивать ШД. Так ли это? Да.
|
|
|
|
|
Dec 26 2008, 14:18
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(MSprut @ Dec 26 2008, 17:41)  L298 это просто два моста на биполярных транзисторах. А шаговик еще подогревается снаружи, потому что расположен над выпускным коллектором. И зачем ему ток добавлять? Его и без редуктора с трудом можно было руками остановить. Не понимаю тогда, в чём же заключается проблема. Ток двигателя вы специально уменьшили, а момент хотите получить достаточный. Рукой не остановить, это не определение момента, тем более, что червячный редуктор его уменьшает ещё процентов на 20 (без учёта коэфф. передачи). ДШИ 200й серии могут работать при температуре корпуса 90 градусов без проблем, поэтому выбрасывайте резисторы и устанавливайте номинальный ток (1,5А) для начала. Тогда вы можете утверждать, что у вас номинальный момент, хотя бы в статике. Последовательное включение резисторов для другого способа коммутации, у вас мостовая схема. Если момент, который у вас получится, будет недостаточным, смотрите правильность подкл. обмоток.
Сообщение отредактировал evgeny_ch - Dec 26 2008, 14:19
--------------------
Quo vadis?
|
|
|
|
|
Dec 26 2008, 14:34
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(MSprut @ Dec 26 2008, 16:41)  L298 это просто два моста на биполярных транзисторах. А шаговик еще подогревается снаружи, потому что расположен над выпускным коллектором. И зачем ему ток добавлять? Его и без редуктора с трудом можно было руками остановить. Как же - руками не остановить, а от тряски проворачивается? Вы, часом, не отключаете ток в обмотках, когда двигатель стоит? И нужно поменять L298 на драйвер шаговика, он будет стабилизировать ток в обмотках ШД, всё управление шаговиком сведётся к командам "шаг влево" - "шаг вправо". Посмотрите у allegro там разные есть.
Сообщение отредактировал Maik-vs - Dec 26 2008, 14:39
|
|
|
|
|
Dec 26 2008, 14:47
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(evgeny_ch @ Dec 26 2008, 16:18)  Не понимаю тогда, в чём же заключается проблема. Ток двигателя вы специально уменьшили, а момент хотите получить достаточный. Рукой не остановить, это не определение момента, тем более, что червячный редуктор его уменьшает ещё процентов на 20 (без учёта коэфф. передачи). ДШИ 200й серии могут работать при температуре корпуса 90 градусов без проблем, поэтому выбрасывайте резисторы и устанавливайте номинальный ток (1,5А) для начала. Тогда вы можете утверждать, что у вас номинальный момент, хотя бы в статике. Последовательное включение резисторов для другого способа коммутации, у вас мостовая схема. Если момент, который у вас получится, будет недостаточным, смотрите правильность подкл. обмоток. Похоже я чего-то недопонимаю... Я так понимаю, что регулировать мне мешают негаразды со статическим моментом? Получается, что в то время, когда не происходит регулирование, на обмотки должно подаваться питание определенной полярности и это должно удерживать ротор в неподвижном состоянии? Если так, то зачем мне лишнее тепло. Сейчас в паузах между регулированием обмотки полностью отключаются. И именно когда отключены все обмотки вал ШД скручивается от установленного до этого положения.
|
|
|
|
|
Dec 26 2008, 14:58
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(MSprut @ Dec 26 2008, 17:47)  Похоже я чего-то недопонимаю... Я так понимаю, что регулировать мне мешают негаразды со статическим моментом? Получается, что в то время, когда не происходит регулирование, на обмотки должно подаваться питание определенной полярности и это должно удерживать ротор в неподвижном состоянии? Если так, то зачем мне лишнее тепло. Сейчас в паузах между регулированием обмотки полностью отключаются. И именно когда отключены все обмотки вал ШД скручивается от установленного до этого положения. Похоже именно это Вы и недопонимаете. Если двигатель отключать, то потом он может даже не в ту сторону немного... А тепло... Да... Можно для остановки уменьшать ток, но отключать не надо. С шаговыми так. Но они именно на это и настроены. Странно, что у Вас червячный редуктор проворачивается назад...
|
|
|
|
|
Dec 26 2008, 15:00
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(Tanya @ Dec 26 2008, 16:58)  Похоже именно это Вы и недопонимаете. Если двигатель отключать, то потом он может даже не в ту сторону немного... Думаете в этом вся проблема? Если сделаю правильно с моментом и частотой измерения оборотов и скоростью вращения ШД, то и ПИД начнет работать?
|
|
|
|
|
Dec 26 2008, 15:14
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(MSprut @ Dec 26 2008, 18:47)  Похоже я чего-то недопонимаю... Я так понимаю, что регулировать мне мешают негаразды со статическим моментом? Получается, что в то время, когда не происходит регулирование, на обмотки должно подаваться питание определенной полярности и это должно удерживать ротор в неподвижном состоянии? Если так, то зачем мне лишнее тепло. Сейчас в паузах между регулированием обмотки полностью отключаются. И именно когда отключены все обмотки вал ШД скручивается от установленного до этого положения. Вы путаете статический фиксирующий момент без тока, со статическим синхронизирующим моментом. Они отличаются на порядки. Двигатель отключать нельзя. Для случаев обесточивания предусматриваются тормозные муфты. Ток можно снижать, до 50%, при полном отключении тока у вас рвётся контур ОС.
Сообщение отредактировал evgeny_ch - Dec 26 2008, 15:19
--------------------
Quo vadis?
|
|
|
|
|
Dec 26 2008, 15:24
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(evgeny_ch @ Dec 26 2008, 17:14)  Вы путаете статический фиксирующий момент без тока, со статическим синхронизирующим моментом. Они отличаются на порядки. Двигатель отключать нельзя. Для случаев обесточивания предусматриваются тормозные муфты. Ток можно снижать, до 50%, при полном отключении тока у вас рвётся контур ОС. Все, теперь понял о чем речь была. А двигатель не стошнит от постоянно включенных обмоток? И как это повлияет на ПИД-регулятор? Получается все что нужно для счастья это увеличить частоту измерения оборотов и сделать правильный драйвер для ШД и все заработает. В качестве драйвера подойдут L62xx от STmicro? Ну например: L6208
|
|
|
|
|
Dec 26 2008, 15:33
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(MSprut @ Dec 26 2008, 18:00)  Думаете в этом вся проблема? Если сделаю правильно с моментом и частотой измерения оборотов и скоростью вращения ШД, то и ПИД начнет работать? В этом точно часть проблемы. Начните с П, потом добавите другие буквы. Рекомендую если есть ножки свободные поставить резисторы переменные (потенциометры) для считывания с них коэффициентов... Так удобнее - руками крутить... Потом зашить эти значения... Цитата(MSprut @ Dec 26 2008, 18:24)  Все, теперь понял о чем речь была. А двигатель не стошнит от постоянно включенных обмоток? И как это повлияет на ПИД-регулятор? Получается все что нужно для счастья это увеличить частоту измерения оборотов и сделать правильный драйвер для ШД и все заработает. В качестве драйвера подойдут L62xx от STmicro? Ну например: L6208Подойдут, если у Вас две обмотки...
|
|
|
|
|
Dec 26 2008, 15:37
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094

|
Цитата(MSprut @ Dec 26 2008, 19:24)  Все, теперь понял о чем речь была. А двигатель не стошнит от постоянно включенных обмоток? И как это повлияет на ПИД-регулятор? Получается все что нужно для счастья это увеличить частоту измерения оборотов и сделать правильный драйвер для ШД и все заработает. В качестве драйвера подойдут L62xx от STmicro? Ну например: L6208Вам достаточно того драйвера, что имеется. Всего-то надо, выбросить все пиды и замкнуть ОС по частоте генератора программно. Я уже об это ранее говорил. Тошнота при высокой температуре не из той оперы. Внимательно читайте предыдущие посты, вам уже всё разжевали. Цитата Некоторая часть инжекторных систем оснащена регулятором ХХ с приводом от электродвигателя, который с помощью зубчатой передачи перемещает шток, который через простую кинематическую пару поворачивает ось дроссельной заслонки. Находят применение, как обычные двигатели постоянного тока, так и шаговые двигатели, которые обеспечивают более точное позиционирование и не нуждаются в системе ОС. Дерзайте, и у вас получится.
Сообщение отредактировал evgeny_ch - Dec 26 2008, 16:08
--------------------
Quo vadis?
|
|
|
|
|
Dec 26 2008, 15:41
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(Tanya @ Dec 26 2008, 17:33)  В этом точно часть проблемы. Начните с П, потом добавите другие буквы. Рекомендую если есть ножки свободные поставить резисторы переменные (потенциометры) для считывания с них коэффициентов... Так удобнее - руками крутить... Потом зашить эти значения... Подойдут, если у Вас две обмотки... Две. Только посмотрел что с доставабельностью проблема у этого драйвера, аллегровский драйвер есть А3977, говорят можно заменить на него. Не подскажете как по вражески режим работы драйвера называется, когда на обмотки подают комбинацию не крутящую?
|
|
|
|
|
Dec 26 2008, 15:55
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(Tanya @ Dec 26 2008, 17:48)  Никак это не называется. Любая комбинация не крутящая, а стоячая... держачая. Почитайте, как устроены ШД. С аллегровскими непросто - посмотрите на их корпуса... внимательно. Просто подумал, что может аллегро за 15уев сделает такое чудо, ан нет. А корпус меня сейчас меньше всего пугает, если только этот драйвер и доступен. Пока всем спасибо. Удаляюсь на выходные. Если еще будут мысли, то с благодарностью "выслушаю" в понедельник.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|