RU (495) 989 48 46
Пленка на бампер

АНТИГРАВИЙНАЯ ЗАЩИТА БАМПЕРА

 

Лямбда зонд 1 и 2 отличия


Замена лямбда зонда, первый и второй лямбды датчики

Главная » Электрика » Замена лямбда зонда, первый и второй лямбды датчики

просмотров 2 041

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

Критерии для правильной работы лямбда зонда

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

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

Это то, что использует лямбда-зонд, также известный как кислородный датчик, потому что он реагирует непосредственно на изменение содержания кислорода в выхлопных газах. Его увеличение свидетельствует о сжигании слишком плохой топливно-воздушной смеси, уменьшение — при чрезмерном обогащении композиции. Согласно этой информации, полученной зондом, контроллер увеличивает или уменьшает размер введенной дозы топлива.

Видео, что такое лямбда зонд

 

Дополнительные требования для правильной работы лямбды

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

Причины неисправности лямбда зонда

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

Выбор лямбда зонда

Установка нового датчика лямбда зонда в автомобиль

После установки правильной запасной части убедитесь, что ее связь с контроллером двигателя микропроцессора верна. Для этой цели он тестирует, запускает и настраивает различные циклы вождения, пока контроллер не распознает от 3 до 5 типичных циклов, предопределенных производителем автомобилей. Если это условие не выполняется, индикатор предупреждения MIL отключится после следующего запуска двигателя. После этой первоначальной конфигурации бортовой диагностической системы начинается надлежащее функционирование самого лямбда-зонда. Если процедуры установки не соблюдаются или несовместимый кислородный датчик, проблемы, характерные для поврежденного зонда, снова появятся, так как на самом не будет работать оптимально, что отрицательно скажется на расходе топлива и выбросах.

Замены с качеством оригинальных деталей Лямбда-зонды, разработанные для вторичного рынка, производятся в соответствии со стандартами OE, благодаря которым они идеально подходят к автомобилю. Это проверяется в нескольких тестах во время производственного процесса, так что каждый продукт соответствует 100% требований к спецификации. Кроме того, зонды покрыты специальными покрытиями для предотвращения образования сажи и других загрязнителей. Программа лямбда-зонд для вторичного рынка включает 356 частей с 3558 возможными приложениями.

Проголосуйте, понравилась ли вам статья? Загрузка...

Кислородные датчики: подробное руководство - Denso

Вы наверняка знаете, что в вашем автомобиле установлен кислородный датчик (или даже два!)… Но зачем он нужен и как он работает? На часто задаваемые вопросы отвечает Стефан Верхоеф (Stefan Verhoef), менеджер DENSO по продукту (кислородные датчики).

B: Какую работу выполняет датчик кислорода в автомобиле?
O: Датчики кислорода (также называемые лямбда-зондами) помогают контролировать расход топлива вашего автомобиля, что способствует снижению объема вредных выбросов. Датчик непрерывно измеряет объем несгоревшего кислорода в выхлопных газах и передает эти данные в электронный блок управления (ЭБУ). На основании этих данных ЭБУ регулирует соотношение топлива и воздуха в топливовоздушной смеси, поступающей в двигатель, что помогает каталитическому нейтрализатору (катализатору) работать более эффективно и уменьшать количество вредных частиц в выхлопных газах.

B: Где находится датчик кислорода?
O: Каждый новый автомобиль и большинство автомобилей, выпущенных после 1980 г., оснащены датчиком кислорода. Обычно датчик установлен в выхлопной трубе перед каталитическим нейтрализатором. Точное местоположение датчика кислорода зависит от типа двигателя (V-образное или рядное расположение цилиндров), а также от марки и модели автомобиля. Для того чтобы определить, где расположен датчик кислорода в вашем автомобиле, обратитесь к руководству по эксплуатации.

В: Почему состав топливовоздушной смеси нужно постоянно регулировать?
O: Соотношение «воздух — топливо» крайне важно, поскольку оно влияет на эффективность работы каталитического нейтрализатора, который снижает содержание оксида углерода (CO), несгоревших углеводородов (CH) и оксида азота (NOx) в выхлопных газах. Для его эффективной работы необходимо наличие определенного количества кислорода в выхлопных газах. Датчик кислорода помогает ЭБУ определить точное соотношение «воздух — топливо» в смеси, поступающей в двигатель, передавая в ЭБУ быстроизменяющийся сигнал напряжения, который меняется в соответствии с содержанием кислорода в смеси: слишком высокого (бедная смесь) или слишком низкого (богатая смесь). ЭБУ реагирует на сигнал и изменяет состав топливовоздушной смеси, поступающей в двигатель. Когда смесь слишком богатая, впрыск топлива уменьшается. Когда смесь слишком бедная — увеличивается. Оптимальное соотношение «воздух — топливо» обеспечивает полное сгорание топлива и использует почти весь кислород из воздуха. Оставшийся кислород вступает в химическую реакцию с токсичными газами, в результате которой из нейтрализатора выходят уже безвредные газы.

В: Почему на некоторых автомобилях устанавливаются два кислородных датчика?
O: Многие современные автомобили дополнительно кроме датчика кислорода, расположенного перед катализатором, оснащаются и вторым датчиком, установленным после него. Первый датчик является основным и помогает электронному блоку управления регулировать состав топливовоздушной смеси. Второй датчик, установленный после катализатора, контролирует эффективность работы катализатора, измеряя содержание кислорода в выхлопных газах на выходе. Если весь кислород поглощается химической реакцией, происходящей между кислородом и вредными веществами, то датчик выдает сигнал высокого напряжения. Это означает, что катализатор работает нормально. По мере износа каталитического нейтрализатора некоторое количество вредных газов и кислорода перестает участвовать в реакции и выходит из него без изменений, что отражается на сигнале напряжения. Когда сигналы станут одинаковыми, это будет указывать на выход из строя катализатора.


В: Какие бывают датчики?
О: Существует три основных типа лямбда-сенсоров: циркониевые датчики, датчики соотношения «воздух — топливо» и титановые датчики. Все они выполняют одни и те же функции, но используют при этом различные способы определения соотношения «воздух — топливо» и разные исходящие сигналы для передачи результатов измерений.

Наибольшее распространение получила технология на основе использования циркониево-оксидных датчиков (как цилиндрического, так и плоского типов). Эти датчики могут определять только относительное значение коэффициента: выше или ниже соотношение «топливо — воздух» коэффициента лямбда 1.00 (идеальное стехиометрическое соотношение). В ответ ЭБУ двигателя постепенно изменяет количество впрыскиваемого топлива до тех пор, пока датчик не начнет показывать, что соотношение изменилось на противоположное. С этого момента ЭБУ опять начинает корректировать подачу топлива в другом направлении. Этот способ обеспечивает медленное и непрекращающееся «плавание» вокруг коэффициента лямбда 1.00, не позволяя при этом поддерживать точный коэффициент 1.00. В итоге в изменяющихся условиях, таких как резкое ускорение или торможение, в системах с циркониево-оксидным датчиком подается недостаточное или избыточное количество топлива, что приводит к снижению эффективности каталитического нейтрализатора.

Датчик соотношения «воздух — топливо» показывает точное соотношение топлива и воздуха в смеси. Это означает, что ЭБУ двигателя точно знает, насколько это соотношение отличается от коэффициента лямбда 1.00 и, соответственно, насколько требуется корректировать подачу топлива, что позволяет ЭБУ изменять количество впрыскиваемого топлива и получать коэффициент лямбда 1.00 практически мгновенно.

Датчики соотношения «воздух — топливо» (цилиндрические и плоские) впервые были разработаны DENSO для того, чтобы обеспечить соответствие автомобилей строгим стандартам токсичности выбросов. Эти датчики более чувствительны и эффективны по сравнению с циркониево-оксидными датчиками. Датчики соотношения «воздух — топливо» передают линейный электронный сигнал о точном соотношении воздуха и топлива в смеси. На основании значения полученного сигнала ЭБУ анализирует отклонение соотношения «воздух — топливо» от стехиометрического (то есть Лямбда 1) и корректирует впрыск топлива. Это позволяет ЭБУ предельно точно корректировать количество впрыскиваемого топлива, моментально достигая стехиометрического соотношения воздуха и топлива в смеси и поддерживая его. Системы, использующие датчики соотношения «воздух — топливо», минимизируют возможность подачи недостаточного или избыточного количества топлива, что ведет к уменьшению количества вредных выбросов в атмосферу, снижению расхода топлива, лучшей управляемости автомобиля.

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

В: Чем отличаются специальные и универсальные датчики?
O: Эти датчики имеют разные способы установки. Специальные датчики уже имеют контактный разъем в комплекте и готовы к установке. Универсальные датчики могут не комплектоваться разъемом, поэтому нужно использовать разъем старого датчика.


B: Что произойдет, если выйдет из строя датчик кислорода?
O: В случае выхода из строя датчика кислорода ЭБУ не получит сигнала о соотношении топлива и воздуха в смеси, поэтому он будет задавать количество подачи топлива произвольно. Это может привести к менее эффективному использованию топлива и, как следствие, увеличению его расхода. Это также может стать причиной снижения эффективности катализатора и повышения уровня токсичности выбросов.

B: Как часто необходимо менять датчик кислорода?
O: DENSO рекомендует заменять датчик согласно указаниям автопроизводителя. Тем не менее следует проверять эффективность работы датчика кислорода при каждом техобслуживании автомобиля. Для двигателей с длительным сроком эксплуатации или при наличии признаков повышенного расхода масла интервалы между заменами датчика следует сократить.

Ассортимент кислородных датчиков

• 412 каталожных номеров покрывают 5394 применения, что соответствует 68 % европейского автопарка.
• Кислородные датчики с подогревом и без (переключаемого типа), датчики соотношения «воздух — топливо» (линейного типа), датчики обедненной смеси и титановые датчики; двух типов: универсальные и специальные.
• Регулирующие датчики (устанавливаемые перед катализатором) и диагностические (устанавливаемые после катализатора).
• Лазерная сварка и многоэтапный контроль гарантируют точное соответствие всех характеристик спецификациям оригинального оборудования, что позволяет обеспечить эффективность работы и надежность при длительной эксплуатации.

В DENSO решили проблему качества топлива!

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

Дополнительная информация

Более подробную информацию об ассортименте кислородных датчиков DENSO можно найти в разделе Кислородные датчики, в системе TecDoc или у представителя DENSO.

Где расположен первый и второй датчик кислорода ? Что такое банк 1 или банк 2 ?

2 713

Современные автомобили для соответствия последним экологическим нормам используют несколько датчиков кислорода, а также все большее число датчики типа AFR (соотношение воздуха / топливо). На некоторые модели, также устанавливают датчик оксида азота (NOx). Автомобили, в зависимости от объема двигателя, могут иметь 8 или больше датчиков кислорода.

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

Где находится датчик кислорода. Что такое B1 S1?

Идентификация типа и месторасположения неисправного датчика кислорода обеспечат его замену на правильный новый кислородный датчик. Различные типы датчика не взаимозаменяемы, а неправильный датчик способен даже повредить блок управления двигателем (ECU).

Например, в ходе диагностики была обнаружена неисправность датчика кислорода B1 S1. Так что такое B1 и S1? Эта аббревиатура говорит о том, что неисправен датчик 1 банка 1.

Пойдем дальше - что такое Банк 1?

Под обозначением bank 1 подразумевается блок цилиндров в котором находится первый цилиндр.  Что такое датчик 1? Датчик 1  - обозначается датчик кислорода расположенный до или выше катализатора (pre-cat).
Итак, если неисправен датчик B1 S2, это значит, что необходимо заменить второй датчик кислорода, находящийся после катализатора (post-cat). 


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

Датчик кислорода:назначение,виды,устройство,фото,принцип работы | АВТОМАШИНЫ

Кислородный датчик — устройство, предназначенное для фиксирования количества оставшегося кислорода в отработавших газах двигателя автомобиля. Он расположен в выпускной системе вблизи катализатора. На основе данных, полученных кислородником, электронный блок управления двигателем (ЭБУ) корректирует расчет оптимальной пропорции топливовоздушной смеси. Коэффициент избытка воздуха в ее составе обозначается в автомобилестроении греческой буквой лямбда (λ), благодаря чему датчик получил второе название — лямбда-зонд.

Содержание статьи

  • Типы датчиков кислорода
  • Циркониевый
  • Титановый
  • Широкополосный
  • Основные положения и функции Кислородного датчика : Теория.
  • Конструкция и принцип работы кислородного датчика
  • Принцип работы кислородного датчика на языке автомобилистов ( основные моменты):
  • Распространённые причины неисправностей лямбда зонда и способы их устранения
  • Электронная проверка лямбда зонда
  • Замена лямбда зонда
  • Вопрос — ответ
    • Устройство и принцип работы современного гидротрансформатора:описание,фото
    • Подвеска МакФерсон (McPherson): устройство,описание,назначение,фото
    • Датчик детонации:описание,виды,устройство,принцип работы
    • Вариатор:описание,фото,принцип работы,устройство,виды

Типы датчиков кислорода

Циркониевый датчик стоит впереди катализатора и сам генерирует напряжение, либо отрицательное, либо положительное. Опорное напряжение такого датчика составляет 0,45 В, которое отклоняется либо до 0,9 В, либо до 0,1 В. Главное отличие такого датчика от титанового является именно тот факт, что циркониевый самостоятельно генерирует напряжение.

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

Широкополосный датчик – это новейшая конструкция лямбда-зонда на данный момент. Его устройство позволяет не просто определять бедную или богатую смесь на входе в цилиндры, но так же и определять степень отклонения. Именно такие параметры сделали его более точным, в то же время широкополосный кислородный датчик быстрее реагирует на изменения состава выхлопных газов.

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

Циркониевый

Одна из наиболее распространённых моделей. Создана на основе диоксида циркония (ZrO2).

Циркониевый датчик кислорода действует по принципу гальванического элемента с твёрдым электролитом в виде керамики из диоксида циркония (ZrO2)

Керамический наконечник с диоксидом циркония с обеих сторон покрыт защитными экранами из токопроводящих пористых платиновых электродов. Свойства электролита, пропускающего ионы кислорода, проявляются при нагреве ZrO2 выше 350°C. Лямбда-зонд не будет работать, не прогревшись до нужной температуры. Быстрый нагрев осуществляется за счёт встроенного в корпус нагревательного элемента с керамическим изолятором.

Выхлопные газы поступают к наружной части наконечника через специальные просветы в защитном кожухе. Атмосферный воздух попадает внутрь датчика через отверстие в корпусе или пористую водонепроницаемую уплотнительную крышку (манжету) проводов.

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

Напряжение, которое образуется на двух электродах, обратно пропорционально количеству кислорода

Относительно сигнала, поступающего от датчика, блок управления регулирует состав ТВС, стараясь приблизить её к стехиометрической. Напряжение, поступающее от лямбда-зонда, ежесекундно меняется по несколько раз. Это даёт возможность регулировать состав топливной смеси независимо от режима работы ДВС.

По количеству проводов можно выделить несколько типов циркониевых устройств:

  1. В однопроводном датчике существует единственный сигнальный провод. Контакт на массу осуществляется через корпус.
  2. Двухпроводное устройство оснащено сигнальным и заземляющим проводами.
  3. Трёх- и четырёхпроводные датчики снабжены системой нагрева, управляющим и заземляющим проводами к ней.

Циркониевые лямбда-зонды в свою очередь разделяются на одно-, двух-, трёх- и четырёхпроводные датчики

Титановый

Визуально похож на циркониевый. Чувствительный элемент датчика создан из диоксида титана. В зависимости от количества кислорода в выхлопных газах скачкообразно меняется объёмное сопротивление датчика: от 1 кОм при богатой смеси до более 20 кОм при бедной. Соответственно, меняется проводимость элемента, о чём датчик сигнализирует блоку управления. Рабочая температура титанового датчика — 700°C, поэтому наличие нагревательного элемента обязательно. Эталонный воздух отсутствует.

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

Кроме циркониевых, существуют также кислородные датчики на основе двуокиси титана (TiO2)

Широкополосный

Конструктивно отличается от предыдущих 2 камерами (ячейками):

  • Измерительной;
  • Насосной.

В камере для измерений с использованием электронной схемы модуляции напряжения поддерживается состав газов, соответствующий λ=1. Насосная ячейка при работающем моторе на обеднённой смеси устраняет лишний кислород из диффузионного зазора в атмосферу, при богатой смеси — пополняет диффузионное отверстие недостающими ионами кислорода из внешнего мира. Направление тока для перемещения кислорода в разные стороны меняется, а его величина пропорциональна количеству О2. Именно значение тока и служит детектором λ выхлопных газов.

Температура, необходимая для работы (не менее 600°C), достигается за счёт работы нагревательного элемента в датчике.

Широкополосные датчики кислорода детектируют лямбду от 0,7 до 1,6

Основные положения и функции Кислородного датчика :
Теория.

Жесткие экологические нормы во многих странах мира, стали диктовать количество выбросов вредных веществ, тем самым узаконили применение на автомобилях каталитических нейтрализаторов (в обиходе – катализаторы) – устройств, способствующих снижению содержания вредных веществ в выхлопных газах автомобилей с двигателем внутреннего сгорания. Катализатор — нужный и ответственный узел автомобиля, но эффективно работает лишь при определенных условиях. Без постоянного контроля состава топливно-воздушной смеси катализатор умрёт ( потеряет свои основные свойства и функции) очень быстро – для того чтобы, как можно дольше продлить его жизнь и приходит на помощь датчик кислорода, он же О2-датчик, он же лямбда-зонд (ЛЗ).

Название датчика происходит от греческой буквы L (лямбда), которая в автомобилестроении обозначает коэффициент избытка воздуха в топливно-воздушной смеси. При оптимальном составе этой смеси, когда на 14,7 части воздуха приходится 1 часть топлива (речь идет о объемном соотношении величин), L равна 1 (график 1). «Окно» эффективной работы катализатора очень узкое: L=1±0,01. Обеспечить такую точность возможно только с помощью систем питания с электронным (дискретным) впрыском топлива и при использовании в цепи обратной связи лямбда-зонда. Таким образом, Лямбда зонд создан и поставлен инженерами для информирования компьютера, инжекторного автомобиля об отклонении от нормы соотношения топливно воздушной смеси.

 

График 1. Зависимость мощности двигателя (P) и расхода топлива (Q) от коэффициента избытка воздуха (L)

Избыток воздуха в смеси измеряется весьма оригинальным способом ( причем этот способ не является обходным путем, а дает уверенно точные показания ) – определения в выхлопных газах содержания остаточного кислорода (О2). Поэтому лямбда-зонд и стоит в выпускном коллекторе перед катализатором.

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

Причем на большинстве современных моделях автомобилей имеется еще один лямбда-зонд, так же возможна установка дополнительных датчиков работающих в связке (например датчик температуры катализатора, расположен он на выходе катализатора). Этим достигается большая точность приготовления смеси и контролируется эффективность работы катализатора (рис. 1).

Рис. 1. Схема L-коррекции с одним и двумя датчиками кислорода двигателя 1 – впускной коллектор; 2 – двигатель; 3 – блок управления двигателем; 4 – топливная форсунка; 5 – основной лямбда-зонд; 6 – дополнительный лямбда-зонд; 7 – каталитический нейтрализатор.

Конструкция и принцип работы кислородного датчика

Конструкция кислородного датчика

Существует несколько видов лямбда-зондов, применяемых на современных автомобилях. Рассмотрим конструкцию и принцип работы наиболее популярного из них — датчика кислорода на основе диоксида циркония (ZrO2). Датчик состоит из следующих основных элементов:

  • Наружный электрод — осуществляет контакт с выхлопными газами.
  • Внутренний электрод — контактирует с атмосферой.
  • Нагревательный элемент — используется для подогрева кислородного датчика и более быстрого вывода его на рабочую температуру (около 300 °C).
  • Твердый электролит — расположен между двумя электродами (диоксид циркония).
  • Корпус.
  • Защитный кожух наконечника — имеет специальные отверстия (перфорацию) для проникновения отработавших газов.
Устройство наконечника лямбда-зонда

Внешний и внутренний электроды покрыты платиновым напылением. Принцип работы такого лямбда зонда основан на возникновении разности потенциалов между слоями платины (электроды), которые чувствительны к кислороду. Она возникает при нагревании электролита, когда через него происходит движение ионов кислорода от атмосферного воздуха и выхлопных газов. Напряжение, возникающее на электродах датчика, зависит от концентрации кислорода в отработавших газах. Чем она выше, тем ниже напряжение. Диапазон напряжений сигнала кислородного датчика находится в пределах от 100 до 900 мВ. Сигнал имеет синусоидальную форму, у которой выделяются три области: от 100 до 450 мВ — бедная смесь, от 450 до 900 мВ — богатая смесь, значение 450 мВ соответствует стехиометрическому составу топливовоздушной смеси.

Принцип работы кислородного датчика на языке автомобилистов ( основные моменты):

Кислород содержит отрицательно заряженные ионы, которые собираются на платиновых электродах, и когда датчик достигает температуры около 400°C, любая разность потенциалов образует электрическое напряжение. В случае если смесь бедная, содержание кислорода в отработавших газах высокое. При сравнении с содержанием кислорода в атмосфере существует только очень маленькая разность потенциалов, и, как следствие, возникает небольшое напряжение (около 0,2–0,3 В).

В случае если смесь богатая, то содержание кислорода в отработавших газах низкое. Создается большая разность потенциалов, поэтому возникает относительно более высокое напряжение (0,7–0,9 В). Система управления двигателем будет непрерывно подстраивать длительность импульсного сигнала под форсунки с целью выйти на среднее напряжение, составляющее около 0,4–0,6 В при значении лямбда около 1.0. Поскольку в процессе движения режимы работы двигателя постоянно изменяются, значение напряжения колеблется в обе стороны от среднего значения.

Поэтому данный датчик в силу своей неспособности определить небольшие изменения в содержании кислорода известен как узкополосный. Датчик, установленный после каталитического нейтрализатора отработавших газов, действует по тому же способу, что и датчик перед ним, но с одним очень большим отличием. После того, как газы были обработаны каталитическим нейтрализатором, содержание кислорода в них остается на неизменном уровне. Это обеспечивает постоянное напряжение около 0,4–0,6 В. Теперь система управления двигателем может эффективно отслеживать работу каталитического нейтрализатора отработавших газов.

Распространённые причины неисправностей лямбда зонда и способы их устранения

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

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

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

Электронная проверка лямбда зонда

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

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

Замена лямбда зонда

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

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

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

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

Вопрос — ответ

В: Чем отличаются специальные и универсальные датчики?
O: Эти датчики имеют разные способы установки. Специальные датчики уже имеют контактный разъем в комплекте и готовы к установке. Универсальные датчики могут не комплектоваться разъемом, поэтому нужно использовать разъем старого датчика.

B: Что произойдет, если выйдет из строя датчик кислорода?
O: В случае выхода из строя датчика кислорода ЭБУ не получит сигнала о соотношении топлива и воздуха в смеси, поэтому он будет задавать количество подачи топлива произвольно. Это может привести к менее эффективному использованию топлива и, как следствие, увеличению его расхода. Это также может стать причиной снижения эффективности катализатора и повышения уровня токсичности выбросов.

B: Как часто необходимо менять датчик кислорода?
O: DENSO рекомендует заменять датчик согласно указаниям автопроизводителя. Тем не менее следует проверять эффективность работы датчика кислорода при каждом техобслуживании автомобиля. Для двигателей с длительным сроком эксплуатации или при наличии признаков повышенного расхода масла интервалы между заменами датчика следует сократить.

Ассортимент кислородных датчиков

• 412 каталожных номеров покрывают 5394 применения, что соответствует 68 % европейского автопарка.
• Кислородные датчики с подогревом и без (переключаемого типа), датчики соотношения «воздух — топливо» (линейного типа), датчики обедненной смеси и титановые датчики; двух типов: универсальные и специальные.
• Регулирующие датчики (устанавливаемые перед катализатором) и диагностические (устанавливаемые после катализатора).
• Лазерная сварка и многоэтапный контроль гарантируют точное соответствие всех характеристик спецификациям оригинального оборудования, что позволяет обеспечить эффективность работы и надежность при длительной эксплуатации.

В DENSO решили проблему качества топлива!

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

При нагреве свыше 700 °C загрязненное топливо выделяет вредные для датчика пары. Они влияют на работу датчика, образуя отложения или разрушая его электроды, что является распространенной причиной выхода датчика из строя. DENSO предлагает решение этой проблемы: керамический элемент датчиков DENSO покрыт уникальным защитным слоем оксида алюминия, который защищает датчик от некачественного топлива, продлевая срок его службы и сохраняя его рабочие характеристики на необходимом уровне.

В: Почему на некоторых автомобилях устанавливаются два кислородных датчика?
O: Многие современные автомобили дополнительно кроме датчика кислорода, расположенного перед катализатором, оснащаются и вторым датчиком, установленным после него. Первый датчик является основным и помогает электронному блоку управления регулировать состав топливовоздушной смеси. Второй датчик, установленный после катализатора, контролирует эффективность работы катализатора, измеряя содержание кислорода в выхлопных газах на выходе. Если весь кислород поглощается химической реакцией, происходящей между кислородом и вредными веществами, то датчик выдает сигнал высокого напряжения. Это означает, что катализатор работает нормально. По мере износа каталитического нейтрализатора некоторое количество вредных газов и кислорода перестает участвовать в реакции и выходит из него без изменений, что отражается на сигнале напряжения. Когда сигналы станут одинаковыми, это будет указывать на выход из строя катализатора.

В: Почему состав топливовоздушной смеси нужно постоянно регулировать?
O: Соотношение «воздух — топливо» крайне важно, поскольку оно влияет на эффективность работы каталитического нейтрализатора, который снижает содержание оксида углерода (CO), несгоревших углеводородов (CH) и оксида азота (NOx) в выхлопных газах. Для его эффективной работы необходимо наличие определенного количества кислорода в выхлопных газах. Датчик кислорода помогает ЭБУ определить точное соотношение «воздух — топливо» в смеси, поступающей в двигатель, передавая в ЭБУ быстроизменяющийся сигнал напряжения, который меняется в соответствии с содержанием кислорода в смеси: слишком высокого (бедная смесь) или слишком низкого (богатая смесь).

ЭБУ реагирует на сигнал и изменяет состав топливовоздушной смеси, поступающей в двигатель. Когда смесь слишком богатая, впрыск топлива уменьшается. Когда смесь слишком бедная — увеличивается. Оптимальное соотношение «воздух — топливо» обеспечивает полное сгорание топлива и использует почти весь кислород из воздуха. Оставшийся кислород вступает в химическую реакцию с токсичными газами, в результате которой из нейтрализатора выходят уже безвредные газы.

Устройство и принцип работы современного гидротрансформатора:описание,фото
Подвеска МакФерсон (McPherson): устройство,описание,назначение,фото
Датчик детонации:описание,виды,устройство,принцип работы
Вариатор:описание,фото,принцип работы,устройство,виды

Датчик кислорода (Лямбда-зонд): как работает, проблемы, симптомы

На чтение 5 мин. Просмотров 2.8k. Опубликовано

Датчик кислорода (ДК) — он же лямбда-зонд — измеряет количество кислорода в выхлопных газах, отправляя сигнал на блок управления двигателя (ЭБУ).

Где находится датчик кислорода

Передний датчик кислорода ДК1 установлен в выпускном коллекторе или в передней выпускной трубе перед каталитическим нейтрализатором. Как вы знаете, каталитический нейтрализатор является основной частью системы контроля выбросов в автомобиле.

Задний кислородный датчик ДК2 установлен в выхлопе после каталитического нейтрализатора.

На 4-цилиндровых двигателях устанавливают как минимум два лямбда-зонда. Двигатели V6 и V8 имеют как минимум четыре датчика O2.

ЭБУ использует сигнал от переднего кислородного датчика для регулировки топливно-воздушной смеси путем добавления или уменьшения топлива.

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

Как работает датчик кислорода

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

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

Для правильной работы лямбда-зонд необходимо нагреть до определенной температуры. Типичный современный датчик имеет внутренний электрический нагревательный элемент, который питается от ЭБУ двигателя.

Когда топливовоздушная смесь (ТВС), поступающая в двигатель, бедная (мало топлива и много воздуха), в выхлопе остается больше кислорода, и кислородный датчик создает очень небольшое напряжение (0,1 – 0,2 В).

Если ТВС обогащается (много топлива и мало воздуха), в выхлопе остается меньше кислорода, поэтому датчик будет генерировать бОльшее напряжение (около 0,9 В).

Регулировка соотношения топливовоздушной смеси

Передний датчик O2 отвечает за поддержание оптимального соотношения смеси воздух / топливо, поступающей в двигатель, которая составляет приблизительно 14,7:1 или 14,7 частей воздуха на 1 часть топлива.

Блок управления регулирует топливовоздушную смесь на основе обратной связи от переднего датчика кислорода. Когда передний лямбда-зонд обнаруживает высокий уровень кислорода, ЭБУ предполагает, что двигатель работает на бедной смеси (недостаточно топлива) и поэтому добавляет топлива.

Когда уровень кислорода в выхлопе становится низким, ЭБУ предполагает, что двигатель работает на богатой смеси (слишком много топлива) и уменьшает подачу топлива.

Этот процесс непрерывен. Компьютер двигателя постоянно переключается между обедненным и обогащенным состоянием, чтобы поддерживать оптимальное соотношение воздух / топливо. Этот процесс называется операцией замкнутого цикла.

Если вы посмотрите на сигнал напряжения переднего датчика кислорода, он будет циклически колебаться где-то между 0,2 вольт (бедная) и 0,9 вольт (богатая).

Когда автомобиль заводится холодным, передний кислородный датчик не прогрет полностью, и ЭБУ не использует сигнал ДК1 для регулировки топлива. Этот режим называется разомкнутым контуром. Только когда датчик полностью прогрелся, система впрыска топлива переходит в режим замкнутого контура.

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

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

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

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


Контроллер постоянно сравнивает сигналы от передних и задних датчиков O2. Основываясь на двух сигналах, ЭБУ знает, насколько хорошо каталитический нейтрализатор работает. Если катализатор выходит из строя, ЭБУ включает индикатор «Check Engine», чтобы вы знали об этом.

Задний датчик кислорода можно проверить с помощью диагностического сканера, адаптера ELM327 с программой Torque или осциллографа.

Идентификация датчика кислорода

Передний лямбда-зонд перед каталитическим нейтрализатором обычно называют датчиком «выше по потоку» или датчиком 1.

Задний датчик, установленный после катализатора, называется датчик «ниже по потоку» или датчик 2.

Типичный рядный 4-цилиндровый двигатель имеет только один блок (ряд 1 / банк 1). Поэтому в рядном 4-цилиндровом двигателе термин «Банк 1, Датчик 1» просто относится к переднему датчику кислорода. «Банк 1, Датчик 2» — это задний кислородный датчик.

Читайте подробнее: Что такое Банк 1, Банк 2, Датчик 1, Датчик 2?

Двигатель V6 или V8 имеет два блока (или две части этого «V»). Обычно блок цилиндров, содержащий цилиндр № 1, называется «Банк 1».

Различные производители автомобилей определяют Банк 1 и Банк 2 по-разному. Чтобы узнать, где банк 1 и банк 2 в вашем автомобиле, вы можете посмотреть в руководстве по ремонту или в Google, указав год, марку, модель и объём двигателя.

Замена датчика кислорода

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

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

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

Еще одна вещь, о которой следует знать — некоторые автомобили, как известно, имеют проблемы с заменяемыми датчиками кислорода.

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

Первые признаки неисправности лямбда-зонда или как проверить датчик кислорода

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

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

Принцип действия лямбда зонда

Основной задачей лямбда зонда является определение химсостава выхлопных газов и уровня содержания в них молекул кислорода. Этот показатель должен колебаться в пределах от 0,1 до 0,3 процентов. Бесконтрольное превышение этого нормативного значения может привести к неприятным последствиям.

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

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

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

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

Основные признаки неисправности лямбда зонда

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

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

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

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

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

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

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

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

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

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

Как определить неисправность лямбда зонда рассказывается на видео:

Электронная проверка лямбда зонда

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

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

Замена лямбда зонда

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

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

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

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

лямбда-зондов. Широкополосный | Bimmerprofs.com | Эмулятор NOx NOXEM 129 | 130

Для проверки выхлопных газов используются кислородные датчики. Давным-давно появились циркониевые узкополосные лямбда-зонды (вначале - без подогрева, затем - с дополнительным подогревом, что позволяет быстрее готовить зонды, а также обеспечивает более точные данные), начиная с двигателя BMW N серии, их заменяют на циркониевые широкополосные (для регулирования топливной смеси) датчики.

В отличие от узкополосных датчиков, линейный диапазон которых равен 0.99 .. 1.01, широкополосные датчики могут измерять коэффициент от 0,65 до состава атмосферного воздуха.

Основы работы широкополосных циркониевых зондов вы можете найти в Интернете, в этом посте я уделю больше внимания некоторым конкретным нюансам.

Датчики Bosch первого поколения, известные под названием LSU 4.2, отличались необходимостью их повторной калибровки, поскольку в качестве эталонного источника тока использовался атмосферный воздух. С следующего поколения - СМЛ 4.9 - эта проблема была решена: полупроводниковый переход используется в качестве источника тока опорного.

LSU 4.2

LSU 4.9

Основная техническая информация:

Bosch LSU4.2 против LSU4.9

LSU 4.9 обеспечивает более точные измерения лямбда: контрольные данные определены в 30 точках в таблице лямбда / Ipump (LSU 4.2 определил только 10 точек).

Вместе с датчиками Bosch OEM предлагал также наборы микросхем управления для датчиков: CJ110, CJ120, CJ125. CJ110 и CJ120 были предназначены для работы с LSU 4.2 зонда, CJ125 - также с датчиком кислорода типа LSU 4.9.

В отличие от CJ110, CJ120 включает также динамический контроль сопротивления ячейки Нернста, который использовался для контроля температуры кислородного датчика. Оптимальное сопротивление ячейки Нернста для LSU 4.2, измеренное на частоте 1..4 кГц: 80 Ом.

CJ125 дополнен некоторыми специфическими нюансами по работе с кислородным датчиком LSU 4.9. Динамическое сопротивление ячейки Нернста для LSU 4.9: 300 Ом (при достижении оптимальной рабочей температуры).

CJ125 лист данных

Позже чипсет CJ125 был заменен на контроллер CJ135 со встроенным АЦП, кислородный датчик LSU 4.9 был заменен на LSU 5.2.

Общими недостатками для CJ110, CJ120, CJ125 было повышенное потребление энергии (которое было выше 30 мА / 150 мВт, и чипсет был вынужден работать в жестких тепловых условиях), большое напряжение смещения для усилителя измерения тока ячейки накачки (CJ110, CJ120, CJ125 ): даже до +/- 10 мВ, хотя для точных измерений необходимо напряжение смещения не более нескольких сотен мкВ.Такая же нехватка актуальна и для модуля измерения температуры, используемого в CJ120, CJ125. Чтобы решить эти проблемы, все упомянутые выше наборы микросхем используют процесс прерывания для компенсации напряжения смещения и сравнения измеренных значений с эталонными. К сожалению, ключи MOSFET, используемые для прерывателей (коммутации), имеют повышенный ток утечки, что очень сильно влияет на точность измерения, а также увеличивает количество паразитных помех. Функциональное управление для CJ120 и CJ125 предусмотрено через последовательный интерфейс SPI, управление нагревом - внешнее.

В двигателях

N52, N53 и аналогичных используются широкополосные кислородные датчики типа LSU 4.2 для контроля топливной смеси. Для калибровки контрольной точки (лямбда = 1,00) используются узкополосные кислородные датчики. Этот нюанс необходимо учитывать, когда один из банков показывает сбалансированное (интегратор топливной коррекции стабильный и находится в надлежащем диапазоне значений) значение лямбда, отличное от 1,00.

Технические параметры, общие для CJ110, CJ120 и CJ125:

Напряжение ячейки Нернста: 450 мВ

опорное напряжение, Ipump: 1.500 В

Сопротивление шунтирующего резистора Ipump: 62 Ом

Коэффициент усилителя Ipump: 8/17 (богатый / обедненный режим)

Примечание: двигатели серии N имеют напряжения опорного значения: 2,00 В (напряжение штифта Нернста ячейки, как представляется, сообщается) и различный коэффициент усилителя из наборов микросхем управления серии CJ.

PS: Используя контроллеры управления датчиками CJ120, CJ125, имейте в виду, что Bosch предлагает (не юридически) несколько версий контроллеров, которые имеют некоторые отличия в управлении SPI (регистры управления SPI и необходимые данные НЕ СООТВЕТСТВУЮТ таблице данных), это означает , что, например, когда вам нужно заменить контроллер, вы можете столкнуться с некоторыми неопределенными проблемами, которые приведут к ухудшению измерений лямбда - решения с прерыванием не будут работать и т. д.

Связанные записи:

Управление лямбда-зондами

N52 диагностика двигателя

STFT и LTFT

.

Лаборатория 2: Функции высшего порядка, лямбда-выражения

Срок сдачи - до 23:59 во вторник, 8 сентября.

Стартовые файлы

Загрузите lab02.zip. Внутри архива вы найдете стартовые файлы для вопросов этой лабораторной работы, вместе с копией автогрейдера Ok.

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

Лямбда-выражения (включить JavaScript)

Лямбда-выражения

Лямбда-выражения - это выражения, которые оценивают функции путем указания двух вещи: параметры и возвращаемое выражение.

  лямбда <параметры>: <возвращаемое выражение>  

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

лямбда деф
Тип Выражение , которое дает значение Заявление об изменении окружающей среды
Результат исполнения Создает анонимную лямбда-функцию без внутреннего имени. Создает функцию с внутренним именем и связывает ее с этим имя в текущей среде.
Влияние на окружающую среду Оценка лямбда-выражения создает ли , а не , или изменить любые переменные. Выполнение оператора def создает новую функцию объект и привязывает его к имени в текущей среде.
Использование Лямбда-выражение можно использовать везде, где ожидает выражения, например, в операторе присваивания или как оператор или операнд выражения вызова. После выполнения оператора def созданный функция привязана к имени. Вы должны использовать это имя для обозначения функция везде, где ожидается выражение.
Пример
  # Само по себе лямбда-выражение не меняет # среда лямбда x: x * x # Мы можем назначить лямбда-функции имени # с оператором присваивания квадрат = лямбда x: x * x квадрат (3) # Лямбда-выражения могут использоваться как оператор # или операнд negate = лямбда f, x: -f (x) отрицать (лямбда x: x * x, 3)  
  def квадрат (x): вернуть х * х # Функция, созданная оператором def # может упоминаться по его внутреннему имени квадрат (3)  

Диаграммы окружения (включить JavaScript)

Диаграммы окружающей среды

Диаграммы среды

- один из лучших обучающих инструментов для понимания лямбда выражений и функций более высокого порядка, потому что вы можете отслеживать все различные имена, объекты функций и аргументы функций.Мы настоятельно рекомендуем рисовать диаграммы среды или использовать Python репетитор, если вы застряли, решая задачи WWPD ниже. Чтобы увидеть, как должны выглядеть диаграммы окружения, попробуйте запустить код в репетиторе Python. Вот правила:

Назначения

  1. Вычислите выражение в правой части знака = .
  2. Если имя, найденное в левой части строки = , еще не существует в текущий кадр, запишите его.Если это так, сотрите текущую привязку. Свяжите значение , полученное на шаге 1 с этим именем.

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

def Заявления

  1. Нарисуйте функциональный объект с его внутренним именем в форме
.

функций высшего порядка и лямбды - язык программирования Kotlin

Редактировать страницу

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

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

Функция высшего порядка - это функция, которая принимает функции как параметры или возвращает функцию.

Хорошим примером является идиома функционального программирования fold для коллекций, который принимает начальное значение аккумулятора и функцию объединения и строит свое возвращаемое значение с помощью последовательное объединение текущего значения аккумулятора с каждым элементом коллекции, замена аккумулятора:

  fun  Коллекция  .fold ( начальная: R, объединить: (acc: R, nextElement: T) -> R ): Р { аккумулятор var: R = начальный for (element: T в этом) { аккумулятор = комбайн (аккумулятор, элемент) } возвратный аккумулятор }  

В приведенном выше коде параметр объединить имеет тип функции (R, T) -> R , поэтому он принимает функцию, которая принимает два аргумента типа R и T и возвращает значение типа R .Он вызывается внутри для -цикла, и возвращаемое значение затем присваивается аккумулятору .

Чтобы вызвать fold , нам нужно передать ему экземпляр типа функции в качестве аргумента, а лямбда-выражения (более подробно описанные ниже) широко используются для с этой целью на сайтах вызова функций высшего порядка:

  fun main () { // sampleStart val items = listOf (1, 2, 3, 4, 5) // Лямбды - это блоки кода, заключенные в фигурные скобки.items.fold (0, { // Когда лямбда имеет параметры, они идут первыми, за ними следует '->' acc: Int, i: Int -> print ("acc = $ acc, i = $ i,") val результат = acc + i println ("результат = $ результат") // Последнее выражение в лямбде считается возвращаемым значением: результат }) // Типы параметров в лямбде необязательны, если их можно вывести: val connectedToString = items.fold ("Элементы:", {acc, i -> acc + "" + i}) // Ссылки на функции также могут использоваться для вызовов функций более высокого порядка: val product = items.fold (1, Int :: раз) // sampleEnd println ("connectedToString = $ connectedToString") println ("продукт = $ продукт") }  

В следующих разделах более подробно объясняются упомянутые концепции.

Kotlin использует семейство типов функций, например (Int) -> String , для объявлений, которые имеют дело с функциями: val onClick: () -> Unit = ... .

Эти типы имеют специальную нотацию, которая соответствует сигнатурам функций, т.е.е. их параметры и возвращаемые значения:

  • Все типы функций имеют список типов параметров в скобках и тип возвращаемого значения: (A, B) -> C обозначает тип, который представляет функции, принимающие два аргумента типа A и B и возвращающие значение типа C . Список типов параметров может быть пустым, как в () -> A . Тип возврата Unit не может быть пропущено.

  • Типы функций

    могут опционально иметь дополнительный тип приемника , который указывается перед точкой в ​​обозначении: тип A.(B) -> C представляет функции, которые могут быть вызваны на объекте-приемнике A с параметром B и вернуть значение C . Функциональные литералы с получателем часто используются вместе с этими типами.

  • Функции приостановки относятся к типам функций особого типа, которые имеют модификатор suspend в обозначения, например suspend () -> Unit или suspend A. (B) -> C .

Обозначение типа функции может дополнительно включать имена для параметров функции: (x: Int, y: Int) -> Point .Эти имена можно использовать для документирования значения параметров.

Чтобы указать, что тип функции допускает значение NULL, используйте круглые скобки: ((Int, Int) -> Int)? .

Типы функций можно комбинировать с помощью скобок: (Int) -> ((Int) -> Unit)

Обозначение стрелок правоассоциативное, (Int) -> (Int) -> Unit эквивалентно предыдущему примеру, но не ((Int) -> (Int)) -> Unit .

Вы также можете дать типу функции альтернативное имя, используя псевдоним типа:

  typealias ClickHandler = (Кнопка, ClickEvent) -> Единица  

Есть несколько способов получить экземпляр типа функции:

  • Использование блока кода внутри функционального литерала в одной из форм:

    Функциональные литералы с получателем могут использоваться как значения типов функций с получателем.

  • Использование вызываемой ссылки на существующее объявление:
    • локальная функция верхнего уровня, член или функция расширения: :: isOdd , String :: toInt ,
    • свойство верхнего уровня, члена или расширения: List :: size ,
    • конструктор: :: Regex

    Сюда входят связанные вызываемые ссылки, которые указывают на член определенного экземпляра: foo :: toString .

  • Использование экземпляров пользовательского класса, реализующего тип функции в качестве интерфейса:
  класс IntTransformer: (Int) -> Int { переопределить оператор fun invoke (x: Int): Int = TODO () } val intFunction: (Int) -> Int = IntTransformer ()  

Компилятор может определить типы функций для переменных, если имеется достаточно информации:

  val a = {i: Int -> i + 1} // Предполагаемый тип (Int) -> Int  

Не буквальные значений типов функций с приемником и без него взаимозаменяемы, так что приемник может стоять в для первого параметра и наоборот.Например, значение типа (A, B) -> C может быть передано или назначено где ожидается A. (B) -> C и наоборот:

  fun main () { // sampleStart val repeatFun: String. (Int) -> String = {раз -> this.repeat (раз)} val twoParameters: (String, Int) -> String = repeatFun // ОК fun runTransformation (f: (String, Int) -> String): String { return f ("привет", 3) } val result = runTransformation (repeatFun) // ОК // sampleEnd println ("результат = $ результат") }  

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

Значение типа функции может быть вызвано с помощью оператора invoke (...) : f.invoke (x) или просто f (x) .

Если значение имеет тип получателя, объект получателя должен быть передан в качестве первого аргумента. Другой способ вызвать значение типа функции с помощью получателя - добавить к нему объект-получатель, как если бы значение было функцией расширения: 1.foo (2) ,

Пример:

  fun main () { // sampleStart val stringPlus: (Строка, Строка) -> Строка = Строка :: плюс val intPlus: Int.(Инт) -> Инт = Инт :: плюс println (stringPlus.invoke ("<-", "->")) println (stringPlus («Привет,», «мир!»)) println (intPlus.invoke (1, 1)) println (intPlus (1, 2)) println (2.intPlus (3)) // вызов типа расширения // sampleEnd }  

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

Лямбда-выражения и анонимные функции

Лямбда-выражения и анонимные функции являются «функциональными литералами», т.е.е. функции, которые не объявлены, но сразу прошло как выражение. Рассмотрим следующий пример:

  макс (строки, {a, b -> a.length  

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

  забавное сравнение (a: строка, b: строка): Boolean = a.длина  

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

  val sum: (Int, Int) -> Int = {x: Int, y: Int -> x + y}  

Лямбда-выражение всегда заключено в фигурные скобки, объявления параметров в полной синтаксической форме заключаются в фигурные скобки и имеют необязательные аннотации типов, тело идет после знака -> . Если предполагаемый тип возвращаемого значения лямбда - это не Unit , последний (или, возможно, одиночный) выражение в теле лямбда рассматривается как возвращаемое значение.

Если мы оставим все необязательные аннотации, то, что останется, будет выглядеть так:

  val sum = {x: Int, y: Int -> x + y}  

В Kotlin существует соглашение: если последний параметр функции является функцией, тогда лямбда-выражение переданный как соответствующий аргумент можно поместить вне скобок:

  val product = items.fold (1) {acc, e -> acc * e}  

Такой синтаксис также известен как завершающая лямбда .

Если лямбда является единственным аргументом этого вызова, скобки можно полностью опустить:

Очень часто лямбда-выражение имеет только один параметр.

Если компилятор может вычислить подпись сам, ему разрешено не объявлять единственный параметр и опустить -> . Параметр будет неявно объявлен под именем it :

  ints.filter {it> 0} // этот литерал имеет тип '(it: Int) -> Boolean'  

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

Следовательно, два следующих фрагмента эквивалентны:

  ints.filter { val shouldFilter = это> 0 shouldFilter } ints.filter { val shouldFilter = это> 0 return @ filter shouldFilter }  

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

  strings.filter {it.length == 5} .sortedBy {it}.карта {it.toUpperCase ()}  

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

  map.forEach {_, значение -> println ("$ value!")}  

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

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

  удовольствие (x: Int, y: Int): Int = x + y  

Анонимная функция очень похожа на объявление обычной функции, за исключением того, что ее имя опущено. Его тело может быть выражением (как показано выше) или блоком:

  fun (x: Int, y: Int): Int { вернуть x + y }  

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

  цел.фильтр (удовольствие (элемент) = элемент> 0)  

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

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

Еще одно различие между лямбда-выражениями и анонимными функциями - это поведение неместные возвраты. Выписка return без метки всегда возвращается из функции, объявленной с ключевым словом fun . Это означает, что вернет внутри лямбда-выражения будет возвращено из включающей функции, тогда как вернет внутри анонимная функция вернется из самой анонимной функции.

Лямбда-выражение или анонимная функция (а также локальная функция и объектное выражение) может получить доступ к его закрытию , т.е.е. переменные, объявленные во внешней области видимости. Переменные, захваченные в замыкании, можно изменить в лямбде:

.
  var sum = 0 ints.filter {it> 0} .forEach { сумма + = это } печать (сумма)  

Типы функций с приемником, такие как A. (B) -> C , могут быть созданы с помощью специальной формы функциональных литералов - функциональные литералы с приемником.

Как было сказано выше, Kotlin предоставляет возможность вызывать экземпляр типа функции с получателем, предоставляющим объект-получатель .

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

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

Вот пример функционального литерала с получателем вместе с его типом, где плюс вызывается на объект-получатель:

  сумма значений: Цел.(Int) -> Int = {другое -> plus (другое)}  

Синтаксис анонимной функции позволяет вам напрямую указать тип получателя функционального литерала. Это может быть полезно, если вам нужно объявить переменную типа функции с приемником и использовать ее позже.

  val sum = fun Int. (Other: Int): Int = this + other  
.

Применение лямбда-функций к Pandas Dataframe

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

Пример 1: Применение функции лямбда к одиночному столбцу с использованием Dataframe.assign ()

Python3

импорт панд как pd

значений = [[ 'Рохан' , 455 ], [ 'Эльфийский' , 250 ], [ 'Дипак' , 495 ],

[ 'Soni' , 400 ], [ 'Radhika' , 350 ], [ 'Vansh' , 450 ]]

df = pd.DataFrame (значения, столбцы = [ 'Имя' , 'Total_Marks' ])

df = df.assign (Процент = лямбда x: (x [ 'Total_Marks' ] / 500 * 100 ))

df

Выход:


В приведенном выше примере лямбда-функция применяется к столбцу «Total_Marks», и с его помощью формируется новый столбец «Percentage».

Пример 2: Применение функции лямбда к нескольким столбцам с использованием Dataframe.assign ()

Python3

импорт панд как pd

values_list = [[ 15 , 2,5 , 100 ], [ 20 , 4.5 , 50 ], [ 25 , 5,2 , 80 ],

[ 45 , 5,8 , 48 ], [ 40 , 6,3 , 70 ], [ 41 , 6,4 , 90 ],

[ 51 , 2.3 , 111 ]]

df = pd.DataFrame (список_значений, столбцы = [ 'Поле_1' , 'Поле_2' , 'Поле_3' ])

df = df.assign (Продукт = лямбда x: (x [ 'Поле_1' ] * x [ 'Поле_2' ] ] * x [ 'Поле_3' ]))

df

Выход:

В приведенном выше примере лямбда-функция применяется к 3 столбцам i.e «Поле_1», «Поле_2» и «Поле_3».

Пример 3 : Применение функции лямбда к одиночной строке с помощью Dataframe.apply ()

Python3



импорт панд как pd

импорт numpy as np

values_list = [[ 15 , 2.5 , 100 ], [ 20 , 4,5 , 50 ], [ 25 , 5,2 , 80 ] ,

[ 45 , 5,8 , 48 ], [ 40 , 6,3 , 70 ], [ 41 , 6.4 , 90 ],

[ 51 , 2,3 , 111 ]]

df = pd.DataFrame (список_значений, столбцы = [ 'Поле_1' , 'Поле_2' , 'Поле_3' ],

индекс = [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' ])

df = df. применить ( лямбда x: np.square (x) если x.name = = 'd' иначе x, ось = 1 )

df

Выход:

В приведенном выше примере лямбда-функция применяется к строке, начинающейся с «d», и, следовательно, квадрат всех значений ей соответствует.

Пример 4: Применение функции лямбда к нескольким строкам с использованием Dataframe.apply ()

Python3

импорт панд как pd

импорт numpy as np

values_list = [[ 15 , 2,5 , 100 ], [ 20 , 4.5 , 50 ], [ 25 , 5,2 , 80 ],

[ 45 , 5,8 , 48 ], [ 40 , 6,3 , 70 ], [ 41 , 6,4 , 90 ],

[ 51 , 2.3 , 111 ]]

df = pd.DataFrame (список_значений, столбцы = [ 'Поле_1' , 'Поле_2' , 'Поле_3' ],

индекс = [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' ])

.

лямбда-выражений (начиная с C ++ 11) - cppreference.com

Создает замыкание: безымянный функциональный объект, способный захватывать переменные в области видимости.

[править] Синтаксис

[ захватывает ] (необязательно)
(C ++ 20) ( params ) спецификаторы исключение attr -> ret требует (необязательно)
(C ++ 20) { корпус }
(1)
[ захватывает ] ( params ) -> ret { body } (2)
[ захватывает ] ( params ) { корпус } (3)
[ захватывает ] { корпус } (4)

1) Полная декларация.

2) Объявление константной лямбды: объекты, захваченные копией, являются константными в теле лямбда.

4) Список пропущенных параметров: функция не принимает аргументов, как если бы список параметров был () . Эту форму можно использовать только в том случае, если не используется ни constexpr, ни изменяемый, ни спецификация исключения, ни атрибуты, ни конечный возвращаемый тип.

[править] Объяснение

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

Подробное описание отловов см. Ниже.

Лямбда-выражение может использовать переменную, не захватывая ее, если переменная

  • является нелокальной переменной или имеет статическую продолжительность или продолжительность локального хранения потока (в этом случае переменная не может быть захвачена), или
  • - ссылка, инициализированная постоянным выражением.

Лямбда-выражение может считывать значение переменной, не захватывая его, если переменная

  • имеет постоянный энергонезависимый целочисленный или перечисляемый тип и был инициализирован постоянным выражением, или
  • - это constexpr и не имеет изменяемых членов.
(C ++ 20) - - список параметров шаблона (в угловых скобках), используемый для предоставления имен параметрам шаблона универсальной лямбда-выражения (см. ClosureType :: operator () ниже). Как и в объявлении шаблона, за списком параметров шаблона может следовать необязательное предложение requires-clause, которое определяет ограничения для аргументов шаблона. Если он указан, список параметров шаблона не может быть пустым ( <> не допускается).
парам. - Список параметров, как в именованных функциях. Если auto используется в качестве типа параметра, лямбда - это общая лямбда . (начиная с C ++ 14)
спецификаторы - Необязательная последовательность спецификаторов. Допускаются следующие спецификаторы:
  • изменяемый : позволяет телу изменять объекты, захваченные копированием, и вызывать их неконстантные функции-члены
  • constexpr : явно указывает, что оператор вызова функции является функцией constexpr.Когда этот спецификатор отсутствует, оператор вызова функции в любом случае будет constexpr , если он удовлетворяет всем требованиям функции constexpr
(начиная с C ++ 17)
  • consteval : указывает, что оператор вызова функции является немедленной функцией. consteval и constexpr нельзя использовать одновременно.
(начиная с C ++ 20)
исключение - предоставляет динамическую спецификацию исключения или спецификатор noexcept для оператора () типа закрытия
attr - предоставляет спецификацию атрибута для типа оператора вызова функции типа закрытия.Любой указанный таким образом атрибут принадлежит типу оператора вызова функции, а не самому оператору вызова функции. (Например, нельзя использовать атрибут [[noreturn]] .)
рет - Тип возврата. Если нет, это подразумевается операторами возврата функции (или недействительно, если оно не возвращает никакого значения)
требуется (C ++ 20) - добавляет ограничение к operator () типа закрытия
кузов - Функциональное тело

Лямбда-выражение - это выражение prvalue уникального безымянного неагрегатного типа класса без объединения, известного как типа закрытия , который объявлен (для целей ADL) в области наименьшего блока, области класса или область пространства имен, содержащая лямбда-выражение.Тип закрытия состоит из следующих членов:

ClosureType :: operator () (параметры)

ret operator () (params) const {body}

(ключевое слово mutable не использовалось)

оператор ret () (params) {body}

(использовано ключевое слово mutable)

template
ret operator () (params) const {body}

(начиная с C ++ 14)
(общая лямбда)

template
ret operator () (params) {body}

(начиная с C ++ 14)
(общая лямбда, использовалось ключевое слово mutable)

При вызове выполняет тело лямбда-выражения.При доступе к переменной обращается к ее захваченной копии (для сущностей, захваченных копией) или к исходному объекту (для сущностей, захваченных по ссылке). Если в лямбда-выражении не было использовано ключевое слово mutable, оператор вызова функции квалифицируется как const, а объекты, захваченные копированием, нельзя изменить изнутри этого оператора (). Оператор вызова функции никогда не бывает изменчивым и виртуальным.

Оператором вызова функции всегда является constexpr , если он удовлетворяет требованиям функции constexpr.Это также constexpr, если ключевое слово constexpr использовалось в объявлении лямбда.

(начиная с C ++ 17)

Оператор вызова функции является немедленной функцией, если ключевое слово consteval использовалось в лямбда-выражении.

(начиная с C ++ 20)

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

 // общая лямбда, operator () - это шаблон с двумя параметрами auto glambda = [] (auto a, auto && b) {вернуть a  (ts)...); return [=] {принтер (ts ...); }; // нулевая лямбда (не принимает параметров) }; }; auto p = vglambda ([] (auto v1, auto v2, auto v3) {std :: cout << v1 << v2 << v3;}); авто q = p (1, 'a', 3.14); // выводит 1a3.14 q (
.

Python Lambda


Лямбда-функция - это небольшая анонимная функция.

Лямбда-функция может принимать любое количество аргументов, но может есть только одно выражение.


Синтаксис

лямбда аргументы : выражение

Выражение выполняется и возвращается результат:

Пример

Добавьте 10 к аргументу a , и вернуть результат:

x = лямбда a: a + 10
print (x (5))

Попробуй сам "

Лямбда-функции могут принимать любое количество аргументов:

Пример

Умножение аргумента на на аргумент b и вернуть результат:

x = лямбда a, b: a * b
print (x (5, 6))

Попробуй сам "

Пример

Обобщить аргумент a , b и c и вернуть результат:

x = лямбда a, b, c: a + b + c
print (x (5, 6, 2))

Попробуй сам "

Зачем нужны лямбда-функции?

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

Допустим, у вас есть определение функции, которое принимает один аргумент, и этот аргумент будет умножено на неизвестное число:

определение myfunc (n):
вернуть лямбда a: a * n

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

Пример

определение myfunc (n):
вернуть лямбда a: a * n

mydoubler = myfunc (2)

print (mydoubler (11))

Попробуй сам "

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

Пример

определение myfunc (n):
вернуть лямбда a: a * n

mytripler = myfunc (3)

print (mytripler (11))

Попробуй сам "

Или используйте одно и то же определение функции, чтобы сделать обе функции в одном программа:

Пример

определение myfunc (n):
вернуть лямбда a: a * n

mydoubler = myfunc (2)
mytripler = myfunc (3)

print (mydoubler (11))
отпечаток (mytripler (11))

Попробуй сам "

Используйте лямбда-функции, когда анонимная функция требуется на короткий период времени.




.

Смотрите также