Как правильно настроить пид регулятор

Содержание

Настраиваем интегральный коэффициент

При настройке двух предыдущих коэффициентов можно получить практически идеальную кривую регулирования или близкую к ней кривую, удовлетворяющую условиям задачи. Однако, как правило возникает так называемая «статическая ошибка». При этом в нашем примере температура стабилизируется не на заданном значении 25 °С, а на несколько меньшем значении. Дело в том, что если температура станет равной уставке (то есть разность текущей и заданной температур станет равна 0), то пропорциональная и дифференциальная составляющая будут равны нулю (). При этом мощность регулятора тоже станет равна 0 и он начнёт остывать.

Для того чтобы исключить этот эффект, используют интегральную составляющую. Её необходимо постепенно увеличивать до исчезновение статической ошибки. Однако, чрезмерное её увеличение тоже может привести к возникновению скачков температуры.

Лучшие программы для регулировки кулера

Фото Название Описание
Speedfan 4.52 Бесплатная утилита создана именно для внешнего вмешательства к настройкам вентиляторов. Недостаток один — настройки отвечающие за вращениями кулеров, могут привести к неполадкам, до момента вмешательства, компьютера
AMD OverDrive
Riva Tuner Многофункциональная программа с поддержкой русского языка имеет одну из опций, управляющей настройкой вентиляторов. Невысокие требования к системе, продвинутая функциональность и простой, понятный интерфейс делают эту программу топовой среди остальных похожих
Msi Afterburner Мощная программа управляет разгоном видеокарт, имеет огромное количество обложек для интерфейса. Также встроена функция, которая позволяет контролировать и регулировать скорость оборотов кулера. Ещё есть удобная опция с подсказками для неопытных пользователей

Перед скачиванием и установкой какой-либо программы для регулировки кулеров попробуйте их настроить с помощью штатных ресурсов системы. Например в BIOS есть такая опция.

Как управлять скоростью кулера с утилитой SpeedFan

Программа может управлять скоростью всех вентиляторов, подсоединённых напрямую в материнской плате. Эту операцию нужно проделать в случае перегрева «железа» на ПК. Как правильно настроить неопытному пользователю компьютера читайте инструкцию ниже.

Установка на компьютер программы SpeedFan 4.52

  1. Если вы скачали программу с интернета, нажмите на установочный файл. В запущенном окне, предлагающим ознакомиться с лицензией, жмите «I Agree». Соглашаемся с лицензией и жмём «I Agree»
  2. Галочки на пунктах означают создание оболочки, создание параметров и ярлыка на рабочем столе, для удобного запуска. Оставьте их на своих местах и нажмите «Next». Оставляем галочки на местах и нажимаем «Next»
  3. В новом окне будет предложено место для распаковки файлов и установки программы. Так как программа мало весит и не употребляет много системных ресурсов можете нажать кнопку «Next». По умолчанию утилита будет храниться в папке «Program Files (86)» с именем SpeedFan. Выбираем папку для установки программы
  4. После распаковки архивов нажмите на кнопку «Close». После распаковки архивов нажимаем «Close»

Это действие завершит установки приложения, а на рабочем столе образуется ярлык в виде значка вентилятора.

Как русифицировать программу SpeedFan

  1. После запуска программы в главном меню нажмите на пункт «Configure». Нажимаем на раздел «Configure»
  2. Выберите в верхней панели пункт «Options». Выбираем в верхней панели пункт «Options»
  3. В строке «Language» будет находиться русский язык. Кликните «Russian» и нажмите «Ок». В строке «Language» выбираем «Russian» и жмём «Ок»

Меню изменится с английского на русский интерфейс.

Настройка кулеров

В главном меню программы, если греется аппаратура, увеличьте стрелками вверх процент оборотов кулера.

  • за нагрев процессора отвечает CPU. Увеличивайте процент до 100% на данном пункте;
  • GPU- видеокарта. Подымайте скорость вращения вентиляторов на этом параметре, если она сильно нагревается;
  • Sys — отвечает за настройку дополнительного кулера на «материнке»;
  • изменив процентные показания на пунктах Pwm1 и остальных, заработают вентиляторы охлаждения системы и появится шум от и быстрых оборотов. Настройки и показатели программы

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

Важность стабильного питания [править]

При активном маневрировании, например, резком сбросе уровня газа и затем мгновенный «газ в пол», а также резких кренах и рыскании (всё это весьма характерно для гоночных FPV-миникоптеры) — регуляторы моторов, и, в конечном счёте, аккумуляторы испытывают пики нагрузок, что неизбежно приводит к «пиковому» же падению (просадке) напряжения на аккумуляторе в эти моменты. Особенно, если применяется пониженное напряжение (например, 3S вместо возможных для регулятора и мотора 4S) или просто при использовании разряженного или сильно изношенного аккумулятора. Это оказывает значительное воздействие на PID-регулирование следующим образом. Коптер может быть хорошо настроен на плавный полёт, висение. Но в какой-то момент по результатам вычислений или по управляющему сигналу пилота полётный контроллер даёт резкий газ, который вызывает просадку напряжения, из-за чего двигатель не успевает раскрутиться как того ожидает полётный контроллер (видя показания датчиков положения в пространстве), поэтому контроллер добавляет ещё газу, доводит до нужного положения для стабилизации и тут с уменьшением и выравниванием нагрузки напряжение подскакивает вместе с оборотами, получается перерегулирование и здесь нужно уже обратное действие — погасить лишнее перемещение коптера силой в обратную сторону, но работает всё так же, запуская циклический процесс перерегулирования. На практике, в реальном полёте это будет означать вялые и размазанные резкие, нелинейные движения, отличающиеся от того как это, казалось, было хорошо настроено в висении возле пилота.

Как с бороться с этим эффектом:

  • Самое правильное — применять аккумуляторы с максимальным напряжением для конкретного мотора. Если мотор рассчитан максимум под 4S-аккумуляторы, то использовать следует именно их. Разумеется, если при этом пропеллер слишком большого диаметра или шага не перегрузит мотор. Но в таком случае лучше будет подобрать оптимальный пропеллер под связку мотор+аккумулятор.
  • В любом случае полезно применять фильтрующие электролитические конденсаторы на регуляторах, а также на общей шине питания — большой ёмкости.
  • В крайнем случае придётся учитывать это в настройках PID, занижая значение параметра D.
  • При возможности увеличивать частоту опроса гироскопа.

Модель системы

Рассмотрим линейную систему управления угловой скоростью следящего электропривода, упрощенная структурная схема которой представлена ниже.

В соответствии с приведенной структурой в среде Simulink была построена модель такой системы.

Модели электропривода (подсистема Electric actuator) и инерционной нагрузки (подсистема Load) созданы с помощью блоков библиотеки физического моделирования Simscape:

модель электропривода,

модель инерционной нагрузки.

Модели электропривода и нагрузки также включают подсистемы датчиков различных физических величин:

тока, протекающего в обмотке якоря двигателя (подсистема А),

напряжения на его обмотке (подсистема V),

угловой скорости объекта управления (подсистема Ω).

Перед настройкой параметров ПИД-регулятора запустим модель на расчет, приняв передаточную функцию регулятора . Результаты моделирования при отработке входного сигнала 150 об/мин показаны ниже.

Из анализа приведенных графиков видно, что:

  • выходная координата системы управления не достигает заданного значения, т.е. в системе присутствует статическая ошибка;
  • напряжение на обмотках двигателя достигает значения 150 В в начале моделирования, что повлечет за собой выход его из строя вследствие подачи на его обмотку напряжения больше номинального (24 В).

Пусть реакция системы на единичный импульс должна соответствовать следующим требованиям:

  • перерегулирование (Overshoot) не более 10%,
  • время нарастания (Rise time) менее чем 0.8 с,
  • время переходного процесса (Settling time) менее чем 2 с.

Кроме того, регулятор должен ограничивать напряжение, подаваемое на обмотку двигателя, до значения напряжения питания.

Выбор канала регулирования

Одним и тем ж выходным параметром объекта можно управлять по разным входным каналам.

При выборе нужного канала управления исходят из следующих соображений:

  • Из всех возможных регулирующих воздействий выбирают такой поток вещества или энергии, подаваемый в объект или отводимый из него, минимальное изменение которого вызывает максимальное изменение регулируемой величины, то есть коэффициент усиления по выбранному каналу должен быть, по возможности, максимальным. Тогда, по данному каналу можно обеспечить наиболее точное регулирование.
  • Диапазон допустимого изменения управляющего сигнала должен быть достаточен для полной компенсации максимально возможных возмущений, возникающих в данном процессе, то есть должен быть обеспечен запас по мощности управления в данном канале.
  • Выбранный канал должен иметь благоприятные динамические свойства, то есть запаздывание t 0 и отношение t 0 /T 0 , где T 0 — постоянная времени объекта, должны быть как можно меньшими. Кроме того, изменение статических и динамических параметров объекта по выбранному каналу при изменении нагрузки или во времени должны быть незначительными.

Методика настройки ПИД-регулятора

 
Выбор алгоритма управления и его  настройка является основной задачей в процессе проектирования и последующего удовлетворительного запуска агрегата в промышленную или иную эксплуатацию.

В основе методики лежит закон Циглера-Никольса, являющийся эмпирическим и основанным на использовании данных, полученных экспериментально на реальном объекте.

В результате ознакомления с методикой, а также при близком рассмотрении объектов регулирования, были выбраны формулы и коэффициенты ближе всего подходящие к реальному объекту регулирования.

Объект регулирования – камерная электрическая печь. Число зон регулирования от 24 до 40. Каждая зона есть набор электронагревателей. Материал нагревателей нихром. Тип —  проволочные, навитые на керамические трубки.

Требования: поддержание температуры по зонам печи +/- 5С.

МЕТОДИКА:

 Настройка пропорциональной компоненты (Xp)

  1. Перед настройкой зоны пропорциональности интегральная и дифференциальная компоненты отключаются:
  • Постоянная интегрирования устанавливается минимально возможной (Ти =0),
  • Постоянная дифференцирования минимально возможной (Тд = 0).

Тο — начальная температура в системе;
Тsp — заданная температура (уставка);
∆T — размах колебаний температуры;
∆t — период колебаний температуры.

  1. Меняем значение пропорциональной составляющей Xp от минимума (0) до момента, пока не появятся устойчивые колебания системы с периодом ∆t.

Система должна находится в постоянном колебательном процессе, притом колебательный процесс незатухающий, где ∆T– характеристика колебания равная значению величины рассогласования (±10С, или как по заданию). Колебания должны быть одинаковы от Тsp.

После получения данной кривой на нашем объекте, засекаем время периода колебаний ʌt – полный период. Данное время есть характеристика системы, оборудования.

3. Используя полученные параметры рассчитываем Ти и Тд.

Зона пропорциональности Коэффициент передачи Постоянная времени интегрирования Постоянная времени дифференцирования
П-регулятор 2*PBs 0.5*Xp
ПИ-регулятор 2.2*PBs 0.45*Xp 0.83*ʌТ
ПИД-регулятор 1.67*PBs 0.6*Xp 0.5*ʌТ 0.125*ʌТ

Цифры в формулах для расчета коэффициентов ПИД-регулирования скорректированы на основе запуска камерной электрической печи в опытно-промышленную эксплуатацию. И конечно в зависимости от типа объекта регулирования могут незначительно меняться.

Задача настройки

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

Допустим текущая температура в помещении 10 °С, а мы хотим, чтобы было 25°С. Мы включаем регулятор и он начинает управлять мощностью обогревателя таким образом, чтобы температура достигла требуемого уровня. Посмотрим как это может выглядеть.

На данном рисунке красным цветом показана идеальная кривая изменения температуры в помещении при работе регулятора. Физическая величина плавно, без скачков, но в тоже время достаточно быстро подходит к заданному значению. Оптимальное время, за которое температура может достигнуть заданной отметки, определить довольно сложно. Оно зависит от многих параметров: размеров комнаты, мощности обогревателя и др. В теории это время можно рассчитать, но на практике чаще всего это определяется экспериментально.

Чёрным цветом показан график изменения температуры в том случае, если коэффициенты подобраны совсем плохо. Система теряет устойчивость. Регулятор при этом идёт «в разнос» и температура «уходит» от заданного значения.

Рассмотрим более благоприятные случаи.

На этом рисунке показаны графики, далёкие от идеального. В первом случае наблюдается сильное перерегулирование: температура слишком долго «скачет» относительно уставки, прежде чем достичь её. Во втором случае регулирование происходит плавно, но слишком медленно.

А вот и приемлемые кривые:

Данные кривые тоже не идеальны, но могут быть сочтены за удовлетворительные.

В процессе настройки регулятора, пользователю необходимо стремиться получить кривую, близкую к идеальной. Однако, в реальных условиях сделать это не так-то просто — приходится долго и мучительно подбирать коэффициенты. Поэтому зачастую останавливаются на «приемлемой» кривой регулирования. Например, в нашем примере нас могли бы устроить коэффициенты регулятора, при которых заданная температура достигалась бы за 15-20 минут с максимальным перерегулированием (максимальными «скачками» температуры) 2 °С. А вот время достижение уставки более часа и максимальные «скачки» температуры 5 °С — нас бы не устроили.

Задача настройки

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

Допустим текущая температура в помещении 10 °С, а мы хотим, чтобы было 25°С. Мы включаем регулятор и он начинает управлять мощностью обогревателя таким образом, чтобы температура достигла требуемого уровня. Посмотрим как это может выглядеть.

Чёрным цветом показан график изменения температуры в том случае, если коэффициенты подобраны совсем плохо. Система теряет устойчивость. Регулятор при этом идёт «в разнос» и температура «уходит» от заданного значения.

Рассмотрим более благоприятные случаи.

А вот и приемлемые кривые:

В процессе настройки регулятора, пользователю необходимо стремиться получить кривую, близкую к идеальной. Однако, в реальных условиях сделать это не так-то просто — приходится долго и мучительно подбирать коэффициенты. Поэтому зачастую останавливаются на «приемлемой» кривой регулирования. Например, в нашем примере нас могли бы устроить коэффициенты регулятора, при которых заданная температура достигалась бы за 15-20 минут с максимальным перерегулированием (максимальными «скачками» температуры) 2 °С. А вот время достижение уставки более часа и максимальные «скачки» температуры 5 °С — нас бы не устроили.

Далее поговорим о том, как подобрать коэффициенты для достижения оптимального регулирования. Рекомендуется настраивать коэффициенты в том же порядке, в котором это описано.

Нечеткая логика для управления

Текст подготовлен на основе материалов книги Гостева В.В. «Нечеткие регуляторы в системах автоматического моделирования». Как все серьезные публикации по теме, данная книга перегружена математическими выкладками и тяжела для неподготовленного читателя. Между тем, сами по себе принципы создания и использования нечеткой логики достаточно просты и наглядны. Данный текст – попытка перевести пример из книги с математического языка на инженерный.
Показана возможную последовательность проектирования регулятора на базе нечеткой логики, путем последовательного усложнения логических правил и подбором параметров методами оптимизации.

Важность стабильного питания [править]

При активном маневрировании, например, резком сбросе уровня газа и затем мгновенный «газ в пол», а также резких кренах и рыскании (всё это весьма характерно для гоночных FPV-миникоптеры) — регуляторы моторов, и, в конечном счёте, аккумуляторы испытывают пики нагрузок, что неизбежно приводит к «пиковому» же падению (просадке) напряжения на аккумуляторе в эти моменты. Особенно, если применяется пониженное напряжение (например, 3S вместо возможных для регулятора и мотора 4S) или просто при использовании разряженного или сильно изношенного аккумулятора. Это оказывает значительное воздействие на PID-регулирование следующим образом. Коптер может быть хорошо настроен на плавный полёт, висение. Но в какой-то момент по результатам вычислений или по управляющему сигналу пилота полётный контроллер даёт резкий газ, который вызывает просадку напряжения, из-за чего двигатель не успевает раскрутиться как того ожидает полётный контроллер (видя показания датчиков положения в пространстве), поэтому контроллер добавляет ещё газу, доводит до нужного положения для стабилизации и тут с уменьшением и выравниванием нагрузки напряжение подскакивает вместе с оборотами, получается перерегулирование и здесь нужно уже обратное действие — погасить лишнее перемещение коптера силой в обратную сторону, но работает всё так же, запуская циклический процесс перерегулирования. На практике, в реальном полёте это будет означать вялые и размазанные резкие, нелинейные движения, отличающиеся от того как это, казалось, было хорошо настроено в висении возле пилота.

Как с бороться с этим эффектом:

  • Самое правильное — применять аккумуляторы с максимальным напряжением для конкретного мотора. Если мотор рассчитан максимум под 4S-аккумуляторы, то использовать следует именно их. Разумеется, если при этом пропеллер слишком большого диаметра или шага не перегрузит мотор. Но в таком случае лучше будет подобрать оптимальный пропеллер под связку мотор+аккумулятор.
  • В любом случае полезно применять фильтрующие электролитические конденсаторы на регуляторах, а также на общей шине питания — большой ёмкости.
  • В крайнем случае придётся учитывать это в настройках PID, занижая значение параметра D.
  • При возможности увеличивать частоту опроса гироскопа.

Метод Циглера-Никольса.

  • Для начала обнуляем все коэффициенты регулятора (пропорциональный, интегральный и дифференциальный)
  • Постепенно начинаем увеличивать пропорциональный коэффициент и следим за реакцией системы. При определенном значении возникнут незатухающие колебания регулируемой величины.
  • Фиксируем коэффициент  K, при котором это произошло. Кроме того, замеряем период колебаний системы T.

Собственно, на этом практическая часть метода заканчивается. Из полученного коэффициента K рассчитываем пропорциональный коэффициент ПИД-регулятора:

K_п = 0.6\cdot K

А из него получаем и остальные:

K_и = (2\cdot K_п)\medspace/\medspace T
K_д = (K_п\cdot T)\medspace/\medspace 8

Метод довольно прост, но применить его можно далеко не всегда. Если честно, мне еще ни разу не приходилось настраивать регулятор таким образом. Но тем не менее, этот метод является основным и, по большому счету, единственным широко известным. Просто подходит не всем и не всегда.

Что же делать, если метод Циглера-Никольса не сработал? Тут придет на помощь “аналитический” метод настройки

Опять же обнуляем все коэффициенты и начинаем увеличивать пропорциональный. Но теперь не ждем появления колебаний, а просто фиксируем поведение системы для каждого значения коэффициента (отличным вариантом будет построение графика величины, которую необходимо стабилизировать, для каждого значения коэффициента). Если видим, что, например, система очень медленно выходит на нужное значение, увеличиваем пропорциональный коэффициент. Система начинает сильно колебаться относительно нужной величины? Значит, коэффициент слишком велик, уменьшаем и переходим к настройке других составляющих.

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

Вот некоторые правила, которые могут помочь при настройке ПИД-регулятора:

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

Кстати, стоит добавить, что не всегда необходимо использовать все три составляющие ПИД-регулятора, порой хватает пропорциональной и дифференциальной, например (ПД-регулятор). В общем, все сводится к тому, что для каждой системы необходим свой собственный подход при настройке и использовании ПИД-регулятора.

На этом на сегодня все, возможно, как-нибудь рассмотрим практическую реализацию ПИД-регулятора!

Настройка ПИД-регулятора в преобразователях частоты

Частотные преобразователи – устройства для изменения момента и скорости вращения электродвигателей переменного тока различной конструкции. Современные ПЧ комплектуются функциями ПИ и ПИД-регуляторами. Устройства широко применяют в автоматизированных электроприводах промышленного оборудования различного назначения.

Рассмотрим настройку ПИД-регулятора на примере частотного преобразователя «Данфосс» серии VLT AutomationDrive FC 360.

Для настройки предусмотрены несколько параметров:

  • 7-00. Параметр устанавливает вход для сигнала обратной связи с датчика скорости.
  • 7-02. Осуществляет настройку скорости регулирования, при превышении характеристики возможны расходящиеся автоколебания.
  • 7-03. Настройка интегральной составляющей, чем меньше ее величина, тем выше скорость реакции. Этим же параметром настраивается величина статической ошибки.
  • 7-04. Настраивает дифференциальный коэффициент, отвечающий за регулирование скорости двигателя, пропорционально скорости изменения сигнала обратной связи с датчика. Установка нулевого значения отключает дифференцирующее звено.
  • 7-05. Настройка усиления дифференцирующего звена. Регулируя параметр, добиваются приемлемой постоянной времени дифференцирования для разных скоростей изменения контролируемого параметра.
  • 7-06. Настройка фильтрации нижних частот для подавления автоколебаний сигнала с датчика скорости. Улучшает характеристики регулятора в установившемся режиме.
    ПИД-регулятор в ПЧ используется для поддержания постоянной частоты вращения двигателя при изменяющейся нагрузке. Функцию также можно применять для регулирования технологических параметров с обратной связью по сигналу с датчика давления, температуры, расхода и т.д.

Составляющие ПИД-регулятора

 
В стандартном ПИД-регуляторе есть три составляющие и каждая из них по своему воздействует на управление.

Пропорциональная — P (t) = Kp * e (t)

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

Однако пропорциональный регулятор не способен компенсировать полностью ошибку рассогласования. Всегда будет присутствовать так называемая статическая ошибка, которая равна такому отклонению регулируемой величины, которое обеспечивает выходной сигнал, стабилизирующий выходную величину именно на этом значении. При увеличении коэффициента пропорциональности Kp статическая ошибка уменьшается, но могут возникнуть автоколебания и снижение устойчивости системы.

Интегральная – I (t) = Ki ∫e (t) dt

Интегральная составляющая используется для устранения статической ошибки. Она складывает значение предыдущих ошибок рассогласования и компенсирует их, можно сказать, что учится на предыдущих ошибках. То есть ошибка рассогласования умножается на коэффициент интегрирования и прибавляется к предыдущему значению интегрирующего звена. При выходе системы на заданный режим, интегральная составляющая перестает изменяться и не оказывает какого-либо серьезного воздействия на систему. Физически интегральная составляющая представляет задержку реакции регулятора на изменение величины рассогласования, внося в систему некоторую инерционность, что может быть полезно для управления объектами c большой чувствительностью.

Дифференциальная – D (t) = Kd de (t)/dt

Дифференциальная составляющая учитывает скорость изменения регулируемой величины, противодействуя предполагаемым отклонениям, вызванными возмущениями системы или запаздыванием. И чем больше будет величина отклоняться от заданной, тем сильнее будет противодействие, оказываемое дифференциальной составляющей. То есть она предугадывает поведение системы в будущем. При достижении величины рассогласования постоянного значения дифференциальная составляющая перестает оказывать воздействие на управляющий сигнал.

На практике какая-либо из составляющих может не использоваться (чаще всего Д-дифференциальная) и тогда мы получаем П-регулятор, ПИ-регулятор.

Подготовка к реализации

Для подготовки к реализации в 16-разрядном микропроцессоре регулятор масштабируют для расчета в арифметике с фиксированной точкой, которая поддерживается процессором.

Используя вкладку Data Types («Типы данных») в диалоговом окне блока, следует выбрать параметры, необходимые для расчетов в арифметике с фиксированной точкой (рис. 6). Можно получить эти параметры автоматически с помощью инструмента Fixed-Point Tool в Simulink. Затем следует выполнить моделирование с использованием типов данных в арифметике с фиксированной точкой и убедиться, что результаты расчетов в фиксированной точке близки к результатам, полученным для модели регулятора в плавающей точке.

Рис. 6. Настройки типов данных для реализации ПИД-регулятора в 16-разрядном процессоре в арифметике с фиксированной точкой