15.6 Пример разработки 4: термостат
==1069
Это пример, в котором контроллер, не поверите, занимается управлением . Вообразим, что требуется удерживать температуру объёма с однородным раствором, в который погружён нагреватель и термодатчик. На первый взгляд всё просто: требуется охватить схему обратной связью, используя в качестве сигнала ошибки разницу между имеющейся температурой, т.е. показаниями термодатчика, и требуемым значением. Поднимая усиление в петле обратной связи можно добиться уменьшения сигнала ошибки до желательного уровня [* как сказали бы математики, «загнать отклонение в «эпсилон окрестность» вокруг целевого значения» ] . В точности так это происходит с операционными усилителями.
Описанная задача - классическая проблема управления, которая часто встречается в промышленных процессах ( управление температурой, потоком ), роботизированных системах ( управление движением ) и т.п. ( рис. 15.9 ). Простая обратная связь работает здесь плохо, потому что во всём контуре управления имеются задержки, т.е. запаздывание фазы, ведущее к возникновению колебаний. Если снизить коэффициент передачи в петле обратной связи, чтобы подавить колебания, недостаточное усиление не позволит точно выдержать желаемое состояние процесса [* попасть в «эпсилон окрестность» ] и приведёт к замедлению реакции на возмущение.
Рис. 15.9 Классическая серво система. В примере «setpoint» - требуемая температура, «plant» - набор нагреватель-объём-термодатчик, а «controller» - управляющая схема. Микроконтроллер сравнивает требуемую и актуальную температуру и меняет активную длительность сигнала ШИМ на нагревателе
Существует масса книг по самой задаче и по принципам организации и настройки обратной связи для возможно более точного соответствия параметрам процесса ( его обычно называют «plant» - фабрика ). Основной целью является построение аналоговыми или цифровыми методами ПИД-регулятора ( от Пропорциональный, Интегральный, Дифференциальный ) ( “PID” ), в котором изменение сигнала ошибки по времени раскладывается по этим трём составляющим, а затем аккуратно комбинируется в нужных пропорциях, чтобы получить коррекционное воздействие для процесса. Настройка коэффициентов ветвей - идейно довольно очевидная задача ( хотя её часто превращают в настоящую мистерию ). Понятнее всего смотрится диаграмма Боде ( см. Часть _4 ). Усилитель, интегратор и дифференциатор легко сделать на ОУ, но микроконтроллер изначально отлично подходит для построения ПИД-регуляторов. Плюс, у него есть возможность доложить о состоянии, получить новые настроечные параметры и реализовать какой-нибудь нелинейный алгоритм управления.
==1070
15.6.1 Аппаратная часть
Чаще всего в качестве датчиков температуры используют:
- термопары ( соединение двух разных специально подобранных металлов, имеющее большую величину термо-ЭДС [* эффект Зеемана ] , обычные цифры 20...40 μV/°C ),
- термисторы ( резистивный материал с отрицательным температурным коэффициентом, обычная величина –4%/°C ),
- полупроводниковые термодатчики ( используют температурный коэффициент –2.1 mV/°C прямого падения на кремниевом переходе ) и
- платиновые термометры сопротивления - RTD ( проволочный резистор с номинальным сопротивлением 100 Ω при 0°C и ТКС 0.385%/°C ).
Все эти «первичные преобразователи» различаются рабочим диапазоном температур, точностью, стабильностью, размером и ценой. Для примера выбран платиновый термометр сопротивления. Основные причины ( если не пытаться открыть ящик Пандоры пошире ) - отличная стабильность, высокая линейность и широкий температурный диапазон ( –200...+600°C ). Все термодатчики можно найти в защищённом исполнении. Ещё одна необходимая деталь - нагреватель. Здесь достаточно мощного резистора, и вновь, можно подобрать герметичный корпус ( «погружной нагреватель» ) 24 .
Управлять нагревателем можно разными способами. Самый простой путь - включать нагреватель, когда нужен подогрев, и выключать, когда не нужен: именно так работают домовые отопительные системы. Данный подход называется «релейная логика» . Он гарантирует циклическое колебание температуры возле целевого значения, т.е. не слишком хорош, зато экономичен, потому что мощный транзистор работает в ключевом режиме с очень низким тепловыделением.
Более точный способ, если аппаратура позволяет, - пропорциональное управление. Здесь нужен линейный выходной каскад, регулирующий ток через нагреватель в непрерывном режиме. Основной недостаток - высокая рассеиваемая мощность. Сюда хорошо ложится широтно-импульсная модуляция. Взяв за частоту переключения 10 kHz 25 и регулируя скважность ( отношение длительности включённого состояния к длительности периода ) можно получить плюсы обоих подходов: пропорциональное управление и низкую рассеиваемую мощность. Такое сочетание свойств делает ШИМ очень популярным методом работы с «линейными» процессами, например, при усилении звуковых частот ( см. §2.4.1.C ) и плавном управлении скоростью вращения электродвигателей.
На рис. 15.10 показана схема термостата. Выглядит достаточно просто, но дьявол ( и самая интересная часть работы ) как обычно в деталях.
Рис. 15.10 Термостат с платиновым датчиком и линейным ( ШИМ ) нагревом. «Микроконвертор» ADuC848 имеет в своём составе 16-разрядное АЦП, дифференциальный усилитель с программируемым коэффициентом передачи, предназначенный для точных малошумящих схем. Дополнительный токовый предохранитель ( «thermal cutout» ) - хорошая защита на предмет ошибок в программе или аппаратной части
15.6.1.A Термодатчик
Для устройства выбран универсальный рабочий диапазон –50...+150°C , в котором сопротивление меняется примерно от 80 до 160 Ω 26 . Чтобы минимизировать эффект саморазогрева измерительная схема использует ток 2 mA , задающий на RTD падение 160 и 320 mV . Мощность саморазогрева всего 0.6 mW .
Это очень маленькие напряжения, если сравнивать с типичными диапазонами преобразования АЦП - 1.25, 2.5 и 5V , т.е. требуется каскад усиления и смещения, чтобы задействовать весь входной диапазон АЦП. Мостовая схема создаёт дифференциальный сигнал с нулевым смещением. Номиналы резисторов выбраны так, чтобы на середине шкалы ( при +50°C ) получить нулевой дифференциальный сигнал. В итоге на выходе моста дифференциальный сигнал будет меняться от –80 до +80 mV . Обратите внимание на 4-проводное подключение RTD, снимающее влияние подводящего кабеля и сопротивления контактов. Теперь усиление.
15.6.1.B Входной усилитель
Микроконтроллеров выпускается великое множество, и среди всего их разнообразия можно подобрать что-нибудь, обладающее именно тем набором возможностей, которые требуются. Серии «аналоговых микроконтроллеров» фирмы Analog Devices ADuC800 [* с вычислительным ядром i8051 ] и ADuC7000 [* с вычислительным ядром ARM ] предназначены для точных измерительных задач. Указанная на схеме модель обладает как раз нужной комбинацией свойств: настоящий дифференциальные входы, малошумящий каскад с программируемым усилением и 16-разрядное АЦП 27 , которое может работать в точном режиме «с прерыванием» , аналогичном такому же режиму в ОУ [* §5.11 ] , и обеспечивает низкое смещение и дрейф. Справочные данные содержат таблицы зависимости точности преобразования в зависимости от скорости опроса. Для диапазона ±80 mV и скорости 50 преобразований в секунду указывается 15 разрядов. Такая точность соответствует разрешению 0.006° , что более чем достаточно для данной задачи.
==1071
Для замены такого «микроконвертора», как его называет Analog Devices, пришлось бы ставить инструментальный усилитель, имеющий входной диапазон вплоть до отрицательной шины питания, чтобы можно было работать от источника 0...+5V . БОльшая часть инструментальных ОУ ( табл. 5.8 ) таким свойством не обладают. Подходящий кандидат - AD623 ( опять, кстати, Analog Devices ), который имеет выходной сигнал с полным размахом питания при величине последнего от 3 до 12V .
На рис. 15.11 показано, как с помощью AD623 «растянуть» дифференциальный сигнал на входной диапазон АЦП в микроконтроллере общего назначения. Вывод «REF» подключён к средней точке рабочего диапазона µC ( +1.25 V ). Таким образом, ±80 mV превращаются в сигнал 0...+2.5 V , удобный для работы обычного однополярного АЦП. Данную схему можно переиначить: заземлить «REF» и заменить резистор 1.21 kΩ на 1.0 kΩ ( рис. 15.10 ), переместив 0V дифференциального сигнала на температуру –50°C [* т.е. рабочий сигнал меняется в диапазоне 0...+160 mV ] . В описанной задаче, где требуется усиливать слабый сигнал, можно было бы ожидать более высоких параметров от схемы на отдельном инструментальном усилителе, нежели на микроконтроллере с набором аналоговой периферии. Но на самом деле АЦП у выбранной модели имеет исключительные характеристики и лучше по точности и дрейфу, чем внешний ОУ. Типичные цифры смещения и дрейфа в режиме автоподстройки 3 μV/°C и 0.01 μV/°C , а у инструментального усилителя 25 μV/°C и 0.1 μV/°C 28 .
Рис. 15.11 Альтернативная схема на отдельном инструментальном усилителе. Она преобразует слабый дифференциальный сигнал ±80 mV в однополярный 0...+2.5V для АЦП в микроконтроллере общего назначения. Здесь резистор установки усиления \(R_G\) определяет размах входного сигнала, а вывод «REF» выставляет выход на середину шкалы, когда на входе 0V
==1072
15.6.1.C Тактирование и источник питания
ADuC848 требует для работы только кварцевый кристалл на 32768 Hz ( два конденсатора по 12 pF уже встроены в корпус ). Внутренняя схема автоподстройки умножает частоту кристалла на 384 , формируя основной тактовый сигнал системы 12.58 MHz . Микросхема выпускается в 3- и 5-вольтовой версии, имеет встроенный детектор просадки питания, сброс при его подаче и сторожевой таймер. Для схемы взята 5-вольтовая версия и источник опорного напряжения для АЦП AD1582 на +2.5 V . Особой точности и стабильности от него не требуется, потому что входная схема логометрическая и выходной цифровой код фактически никак не зависит от опорного напряжения. Рекомендуемая в справочных данных RL цепь развязывает аналоговое питание от цифрового шума.
15.6.1.D Широтно-импульсная модуляция
ПИД-регулятор работает в псевдолинейном режиме управления нагревателем, быстро включая и выключая напряжение и подстраивая длительность активной фазы цикла ( отсюда и название «широтно-импульсный» ). Такой способ позволяет получить преимущества линейного управления при малых потерях в насыщающихся ключах. В конструкциях с большой постоянной времени система из нагревателя, объёма и термодатчика не заметит разницы между ШИМ и настоящим линейным управлением.
В чисто аналоговом мире сигнал ШИМ формируется аналоговым компаратором. На один вход подаётся пила фиксированной частоты [* она задаёт длительность рабочего цикла ] , на другой вход приходит медленно меняющийся сигнал обратной связи ( который показывает, что надо делать, увеличивать или уменьшать средний уровень ). На выходе получается величина скважности ( длительность рабочей части цикла ) ( рис. 15.12A ). Скважность может быть просто пропорциональна величине ошибки, а может приходить с аналогового ПИД-регулятора, как, например, на рис. 15.14 . В предложенном примере та же работа выполняется в цифровом виде: увеличивающееся значение счётчика ( цифровой аналог генератора пилы ) сравнивается со второй цифрой - значением обратной связи ( оно должно всегда попадать в диапазон счёта ). Если в µC поддержки ШИМ нет, такое сравнение приходится делать программно, см. упражнение 15.3 . В ADuC848 имеется аппаратный блок, упрощающий построение широтного модулятора. Требуется задать верхнюю границу счёта, т.е. записать нужное значение в регистр окончания счёта PWM1 . Постоянно увеличивающийся счётчик сравнивается с 16-разрядным числом - величиной сигнала обратной связи - в регистре PWM0 . Высокий уровень на выходе «PWM» ( порт P2.5 ) выводится, пока значение счётчика меньше величины сигнала обратной связи ( рис. 15.12B ) 29 .
Рис. 15.12 Широтно-импульсная модуляция ( PWM ). (A) Медленно меняющийся сигнал обратной связи \(V_{FB}\) сравнивается с пилой фиксированной частоты, формируя на выходе напряжение ШИМ с логическими уровнями. (B) Цифровая ШИМ на счётчике и цифровом компараторе. (C) Точность установки сигнала ШИМ равна периоду тактового сигнала 1/\(f_{CLK}\)
Для примера выбрана граница счёта 1258 ( т.е. в регистр PWM1 записано её шестнадцатиричное представление 0x4EA ), которая задаёт частоту сигнала ШИМ: 12.58 MHz/1258=10 kHz . Ширина импульсов может быть равна только целому числу тактов системной частоты, т.е. квантуется с шагом 1/12.58 MHz=80 ns ( рис. 15.12C ).
Упражнение 15.3 Задача для дождливого воскресенья. Предположим, что имеется ADuc848, в котором задействованы оба имеющихся выхода ШИМ, а требуется ещё два 8-разрядных [* т.е. ширина счётчика, задающего пилу - 8 разрядов ] программных канала. Нужные значения уже лежат в регистрах, и имеется полный контроль над µC. Напишите код и подсчитайте, с какой скоростью может работать такой ШИМ. Времена исполнения команд можно найти в таблице «Оптимизированная однотактовая система команд i8051» ( стр. 20 в справочных данных Rev.D ). Системная частота равна 12.58 MHz .
==1073
15.6.1.E Выходная часть
Порт микроконтроллера не может переключать нагрузку, запитанную от +24 V , а уж тем более нельзя переключать ток 5A . Нужен внешний ключ, в качестве которого взят МОП транзистор средней мощности. Чтобы иметь возможность быстро переключать его затвор между 0 и +12 V добавлен специализированный драйвер 30 . 4428 - промышленный стандарт такого рода микросхем. ИМС преобразует логические уровни в сигнал управления на затворе. Стоит драйвер недорого ( около $1 ), имеет два выхода ( с инверсией и без неё ) и способен выдать в емкостную нагрузку ±1.5 A . Выбранный ключ ( IRFZ44, 55 V , 36 A , TO-220 ) тоже недорог ( ∼$2 ). Его сопротивление \(R_{ON}\) достаточно низко ( 14 mΩ при \(V_{GS}\)=10 V ), поэтому теплоотвод не нужен. 1.5-амперный драйвер даёт полный размах +12 V на затворе и гарантирует малое время переходного процесса на переднем и заднем фронте, а значит, снижает рассеиваемую мощность «класса-A» 31 при переключении.
Мощный выход драйвера затвора обеспечивает наносекундные времена фронтов на стоке, что пагубно сказывается на уровне электромагнитной интерференции [* EMI ] . Небольшой выходной LC фильтр имеет характеристическую частоту 0.5 MHz , и ограничивает скорость изменения напряжения на нагрузке. Интересным побочным эффектом фильтра является положительный индуктивный выброс в момент выключения транзистора ( рис. 15.13 ). Так как цепь ограничения отсутствует, выброс вызывает лавинный пробой в канале сток-исток. Звучит угрожающе, но мощные МОП приборы относятся к этому совершенно индифферентно, а повторяющийся выброс энергии пробоя ограничивается в спецификации только тепловыми эффектами ( см. главу «Импульсная энергия в мощных МОП приборах» в Части X3 [* ##§X3.13 ] и «Температурное сопротивление переходного режима» в Части X9 [* ##§X9.25 ] ). В примере периодическое поступление энергии (1/2)\(I^2L\), накопленной в индуктивности, не сильно увеличивает рассеиваемую мощность ключа.
Рис. 15.13 Выходной LC фильтр в схеме 15.10 сглаживает бросок тока и напряжения в нагрузке ( нижний график ), но последовательное включение катушки индуктивности вызывает лавинный пробой МОП транзистора [* обратимый ] в момент выключения ( верхний график ), в течение которого ток в индуктивности снижается до нуля
Таким образом, в нагреве транзистора участвуют три составляющие
- \(I^2·R_{ON}\) - нагрев в режиме проводимости,
- \(I_D·V_{DS}\) - нагрев «класса-A» при переходном процессе и
- (1/2)\(I^2·L·f_{osc}\) - повторяющаяся лавинная подпитка из индуктивности в момент выключения.
Следующее упражнение позволит оценить проблему в цифрах.
Упражнение 15.4 Подтвердим последнее утверждение. Расчёты разделены на несколько этапов 32 . (a) Какова рассеиваемая мощность транзистора в состоянии ВКЛЮЧЕНО, если \(R_{ON}\)=14 mΩ? (b) Как подсчитать среднюю рассеиваемую мощность проводимости «класса-A» во время переходного процесса для частоты ШИМ 10 kHz . Для расчёта надо использовать заряд ёмкости затвор-сток ( ёмкость Миллера ) \(Q_{GD}\)=15 nC . Первую цифру надо получить для прямого управления с логического выхода с током 10 mA ( выходной ток на выводе микроконтроллера заметно меньше: для втекающего тока 1.6 mA@0.4 V , для вытекающего 80 μA@2.4 V ). Предполагается линейное изменение тока и напряжения, но для правильного расчёта требуется проинтегрировать произведение \(V_{DS}·I_D\) по времени изменения ( и стоит напомнить, что в цикле два участка изменения уровня ) 33 . Правильные расчёты должны показать, что основной вклад даёт рассеиваемая мощность «класса-A» ( примерно в два раза больше, чем нагрев при протекании тока: 580 mW против 320 mW ).
==1074
(c) Сам драйвер затвора рассеивает некоторую мощность. Найдите её. (d) Пересчитайте потери при переключении, предполагая на этот раз наличие драйвера с током 1A . (e) Рассчитайте вклад от энергии катушки индуктивности ( должно получиться 115 mW ). (f) Проверьте, что энергия лавинного пробоя гораздо ниже допустимого по спецификации уровня 86 mJ (max) 34 . (g) Наконец, предполагая, что нагрев «класса-A» при токе драйвера 1.5 A стал пренебрежимо мал по сравнению с потерями в канале и при лавинном пробое, рассчитайте подъём температуры перехода относительно среды. Термальное сопротивление для транзистора, припаянного к медному полигону площадью 6 cm² равно \(R_{ΘJA}\)=40°C/W . Если все расчёты выполнены правильно, ответ должен забороть последние нотки сомнения. Отметим также, что среднее рассеяние на сопротивлении канала \(R_{ON}\) будет меньше расчётного, потому что скважность не должна приближаться к 100% , иначе можно констатировать проблемы с проектом. [* Нагреватель не должен быть включён постоянно, иначе он перестаёт быть «регулируемым» ] .
Упражнение показывает некоторые базовые этапы инженерного процесса, компромиссов и последовательного приближения, в ходе которых происходит постепенное выстраивание довольно просто выглядящей схемы.
- Взят МОП транзистор с достаточно низким \(R_{ON}\) , допускающим монтаж на полигон без дополнительного теплоотвода, если для него нет места. IRFZ44S имеет \(R_{ΘJA}\)=40°C/W и подходит для мощности рассеяния ∼1W .
- Треть ватта, заложенная на резистивные потери, ограничивает ток нагрузки величиной 5A .
- Подобран блок питания нагревателя, обеспечивающий 100+ W для быстрого нагрева объёма.
- Добавлен LC фильтр, подавляющий EMI выше 1 MHz .
- Проведена проверка мощности лавинного пробоя в МОП транзисторе при периодическом сбросе энергии индуктивности. Выяснено, что дополнительный нагрев невелик и укладывается в допустимые границы.
- Наконец, добавлен драйвер затвора, который переводит нагрев «класса-A» из основного источника потерь в пренебрежимо малый элемент общей суммы.
В ходе всех этих модификаций были испробованы разные источники питания ( +12 V, +24 V ), ток нагревателя ( 2.5 A, 5A ), номиналы катушки индуктивности ( 1μH, 5μH, 10 μH ). Была исследована идея использования транзистора с меньшим \(R_{ON}\) или модели в корпусе TO-220 с теплоотводом.
В итоге схема 15.10 была признана разумным компромиссом. Хотя, больший номинал индуктивности или больший ток нагревателя, или и то, и другое одновременно были бы оправданны. Но тогда нужен ключ с меньшим сопротивлением канала, возможно, в другом корпусе и на теплоотводе. К сожалению, часто бывает, что все эти рассуждения оказываются изначально заблокированы из-за непродуманной презентации с примерным видом результата.
15.6.2 Контур управления
Задачей микропрограммы является замыкание контура управления, чтобы удержать объём при заданной температуре. Задача выглядит как обычная обратная связь в схеме с операционным усилителем, но на самом деле она осложнена задержками от температурной инерции. Слишком большое петлевое усиление вместо стабилизации температуры приведёт к появлению колебаний. Это типичная проблема систем управления промышленными процессами. Как писал Джим Вильямс (Jim Williams) 35 : «Злополучная связь между регулятором и колебаниями особенно заметна в системах управления температурой».
Обычный путь - использование ПИД регулятора ( PID ), в котором тривиальная пропорциональная отрицательная обратная связь ( P ) дополняется отрицательной обратной связью по скорости изменения ошибки ( «по производной» D ), и вдобавок отрицательной обратной связью, воздействие которой меняется во времени в соответствии с накопленным значением ошибки ( «по интегралу» I ). Такую схему можно собрать и на обычных операционных усилителях ( рис. 15.14 ).
Рис. 15.14 Аналоговая схема ПИД-регулятора. Сигнал ошибки, пропорциональный разнице между желаемой и актуальной температурой действует на усилитель ( «пропорциональную» ветвь ). Интегратор и дифференциатор имеют индивидуальные настройки усиления. Выходы трёх ветвей собираются воедино и служат сигналом для блока нагрева. Дополнительные R и C ( пунктирные изображения ) могут понадобиться для поддержания устойчивости дифференциатора. Иногда вход дифференциатора подключают прямо ко входным цепям усилителя ошибки
ПИД-регулятор надо настраивать под параметры объекта управления, чтобы гармонизировать усиления в трёх упомянутых ветвях обратной связи. Эмпирическая процедура, которая неплохо работает, выглядит так.
- Выключить ветви «I» и «D», увеличить усиление в ветви «P», пока не возникнут колебания, после чего чуть уменьшить усиление. Теперь схема «звенит» в ответ на ступенчатое изменение состояния при переходе через целевое положение, но устойчивой генерации уже нет.
- Теперь надо увеличивать усиление ветви «D» по уровню критического демпфирования при ступенчатом воздействии 36 .
- Наконец, наблюдая собственно сигнал ошибки, добавляем усиление ветви «I», стремясь уменьшить время установления 37 .
==1075
15.6.3 Программа для микроконтроллера
Микропрограмма начинается с обычных действий: настройки портов, АЦП, таймеров и UARTа. Интерес представляет основной цикл. В нём на регулярной основе измеряется температура \(T_N\) и на основе сигнала ошибки \(T_{ERR}=T_{SET}-T_N\) подсчитываются величины «P», «I», «D». Псевдокод приводится в листинге 15.4 и предполагает простейшие действия с участием известных коэффициентов \(k_P, k_I, k_D\) . На практике требуется сглаживание и фильтрация для значения производной, особо подверженной влиянию шума. Можно настроить АЦП на проведение периодических измерений и считывать результаты по опросу или прерыванию.
Псевдокод 15.4 Основной цикл PID
Initialize zero the integration accumulator: I = 0 Main Loop reset timer for 10 ms timeout read temp, compute nth T_err = T_set - T_n compute individual PID power output terms: P = kp·T_err I = I + kI·T_err D = kD·( T_err-T_err_old ) T_err_old = T_err combine and update PWM: PWM = P + I + D wait until timer times out repeat Main Loop
15.6.3.A Некоторые замечания по алгоритму
ПИД-регулятор - самый известный, но не единственный способ организации управляющей схемы. Есть нелинейные алгоритмы, достаточно сложные с математической точки зрения, но очень эффективные по результату. Интересным примером является алгоритм «take-back-half», предложенный Стивом Вудвардом (Steve Woodward) 38 . В нём всё делается одним «регулятором» и не требуется знать технические подробности объекта управления ( “plant” ).
В алгоритме две части. Он начинается как чистая I-ветвь ( выход схемы пропорционален интегралу ошибки ), что ведёт к нулевому среднему значению ошибки и сильно упрощает схему, т.е. требуется настройка только усиления интегратора. Но такое регулятор бесконечно качается, постоянно проскакивая целевое значение. Вудвард дополнил алгоритм шагом, на котором при каждом прохождении сигнала ошибки через ноль уровень корректирующего воздействия получает новое значение, равное среднему арифметическому между текущей величиной воздействия и его значением при предыдущем прохождении нуля [* а при предыдущем прохождении нуля движение было в противоположном направлении, поэтому величины имеют разные знаки ] . Чтобы проверить, что получится в итоге, был отряжен ( служебное положение, что ни говори, штука удобная ) хорошо ориентирующийся в Mathematica студент ( это его фото можно видеть на рис. 15.25 на стр. 1094 ), который провёл моделирование термостата с алгоритмом «T-B-H». Результат можно видеть на рис. 15.15 , где показан выход контроллера ( мощность нагревателя ) и реакция системы ( показания термодатчика ). Эксперимент был начат при комнатной температуре ( 20°C ), а дальше показана картина для периодического переключения между двумя целевыми уровнями. При моделировании использовались одинаковые значения тепловой инерции для термодатчика и нагревателя - по 0.5 s , задержка из-за движения раствора 0.1 s и время остывания до температуры окружающей среды 0.5 s [* не слишком ли быстро остывает? ] . Усиление интегратора было выставлено для получения разумного времени сходимости.
Рис. 15.15 Нелинейный управляющий алгоритм: «Убрать половину» ( “take-back-half” ) Стива Вудварда. Численное моделирование показывает поведение системы при переключении уровня целевой температуры между 60 и 100°C . Интегратор получился не слишком хороший, но каждый раз, когда сигнал ошибки равен нулю ( чёрные точки на графике ), чётко переключает выход ( мощность нагревателя ) на среднее арифметическое между текущим уровнем и уровнем предыдущего переключения
==1076
После упражнений с моделью T-B-H захотелось посмотреть на обычный ПИД-регулятор. После некоторых затруднений с настройкой ( теперь ведь три параметра ) был получен результат - рис. 15.16 . Видно, что ПИД справляется с задачей гораздо лучше, чем TBH, но требует понимания для правильной настройки уникальных для каждого конкретного объекта управления коэффициентов «P», «I», «D». [* А «T-B-H», напомним, никаких знаний об объекте управления не требовал ] .
Рис. 15.16 Те же условия, что и для рис. 15.15 , но на этот раз обычный ПИД-регулятор
15.6.3.B Некоторые замечания по аппаратной части
==1077
Предложенный пример показывает, насколько правильный выбор контроллера может упростить аппаратуру ( и программу ). Предложенный вариант сочетает хорошее АЦП ( честные 16 разрядов ), низкое смещение и дрейф, идущие в комплекте с автоподстройкой, и внутренний дифференциальный предусилитель с программируемым коэффициентом передачи позволяют подключать резистивный термометр сопротивления напрямую. Дифференциальное включение опорного напряжения позволяет проводить логометрические измерения, нечувствительные к изменениям опорного напряжения [* предполагается, что, как здесь, опорное напряжение обслуживает одновременно и АЦП и датчик ] . Аппаратная поддержка ШИМ в микроконтроллере существенно снижает объём кода.
Блок-схема немногословна и не отвлекает от базовых элементов аналоговой схемотехники и ШИМ управления. Но здесь так же легко добавить дополнительные опции, которые встречались на предыдущих схемах: индикатор для отображения установленной и текущей температуры, клавиатуру или энкодер для ввода параметров, индикаторные светодиоды и зуммер для индикации аварийных событий и т.д.
==1077
24 Правильное место для поиска подобных компонентов - отличный справочник «Temperature Handbook» фирмы Omega Engineering https://www.omega.com/en-us/technical-reference . <-
25 Коммерческие термостаты рассчитаны на использование в конструкциях с высокой температурной инерцией, поэтому их ШИМ работает на очень низкой частоте - единицы герц и ниже, что позволяет использовать реле вместо электронных коммутаторов. <-
26 Точные табличные значения сопротивления платиновой термопары равны для указанных температур 80.31 Ω и 157.33 Ω . Точность - несколько десятых ома. <-
27 В ADuC848 16-разрядное АЦП, в аналогичном ADuC847 - 24-разрядное, а в ADuC845 - два 24-разрядных. <-
28 Из соображений полноты картины, следует отметить, что автоподстройка ( «chopping» ) - процесс, отличающийся высокой точностью и стабильностью, сокращает полосу и частоту преобразования. Для данной задачи, где постоянная времени близка к 250 ms данная особенность проблем не создаёт. <-
29 “Single Variable Resolution PWM” ( Одиночный ШИМ сигнал с переменным разрешением ) - один из шести режимов, предлагаемых микросхемой. Такое богатство вариантов - необычная ситуация в мире микроконтроллеров. <-
30 См. §3.5.4 и табл. 3.4b ( стр. 189 - 191 ) и 3.8 ( стр. 218 ). <-
31 Это мощность, рассеиваемая в момент, когда транзистор полуоткрыт и подвергается воздействию одновременно и высокого тока стока, и высокого напряжения сток-исток. <-
32 См. §9.7.2 , если требуется вспомнить, как вести подобные расчёты. <-
33 Спойлер ( если лень считать ): \(E=V_P·I_P·T_{RAMP}/6\) для каждого цикла пилы. <-
34 Общее правило: если запас по энергии меньше чем 20× , надо проверять величину импульсной мощности, используя спецификацию «температурного импеданса в переходном режиме» . Причина в том, что для справочных данных используется обычный набор условий измерения для однократного лавинного импульса, см. ##§X3.13. <-
35 В технической заметке фирмы Linear Technology «Методы контроля температуры при измерениях и управлении» ( “Thermal techniques in measurement and control circuitry,” Application Note 5, Linear Technology Corporation, December 1984. <-
36 В терминах полюсов-нулей, добавляется нуль, чтобы компенсировать самый низкочастотный естественный полюс физической системы. <-
37 Ещё один способ настройки ПИД-регулятора, предложенный Циглером и Николсом (Ziegler, Nichols) в 1942г., использует параметры усиления и частоты колебаний на шаге (a) для определения оптимальных значений для коэффициентов «D» и «I». Очень хороший разбор темы есть в отличной книге «Электронные схемы» Титце и Шенка (Tietze, Schenk «Electronic Circuits», Springer, 2007. <-
38 Сходящийся алгоритм «Убрать половину» (“take-back-half”) для термостата. “Temperature controller has “take-back-half” convergence algorithm,” EDN, page 90, September 15, 2005. <-