Переменный ток ac расшифровка. Разница между переменным и постоянным током. Постоянный электрический ток Что означает ac или dc маркировка

Постоянным, или DC-током, называется поток электрических зарядов, со временем не меняющий своего направления и силы, которая согласно классическому определению этой величины измеряется в кулонах в секунду (или амперах).

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

Причины непостоянства

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

Обратите внимание! При работе аккумуляторов и гальванических элементов говорить о его постоянстве также не совсем корректно, поскольку это может относиться только к понятию «полярность».

Сила потока электронов в любой нагрузке со временем также меняется (убывает), что связано со снижением ЭДС источника питания.

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

Основные характеристики тока

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

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

Таким образом, поток в один Ампер – это перемещение заряда в один Кулон через данное проводящее сечение за время, равное секунде. Ещё одна характеристика постоянного тока, связанная с его протеканием по нагрузке с сопротивлением R, называется падением напряжения, которое измеряется в Вольтах. Оно определяется как разность потенциалов, образуемая на проводнике при протекании через него одного Ампера.

Это же определение может быть представлено в следующем виде. Один Вольт – это такая разность потенциалов между разнесёнными в электрическом поле точками, которой достаточно для совершения работы в один Джоуль (при переносе между ними заряда в один Кулон).

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

  • Амплитуда пульсаций, определяемая как разность его предельных значений;
  • Показатель пульсаций, представляемый в виде отношения двух величин, в котором в числителе ставится ток AC, а в знаменателе – DC.

Исследуем последнюю более подробно.

DC составляющая

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

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

Постоянная DC

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

Изменяющаяся компонента

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

  • Постоянную часть;
  • Значение переменной компоненты (ас), определяемое как среднеквадратичная величина.

Обе они являются компонентами исследуемого токового сигнала и, подобно всем электрическим параметрам, имеют фиксированную мощность (то есть способность выполнять определённую работу). Последняя вычисляется как:

где I – это средняя квадратичная постоянной составляющей и пульсаций тока.

То есть при расчёте мощности компоненты постоянной DC и переменной ас суммируются как комплексные величины.

Дополнительная информация. Они представляются в этом случае в виде векторных составляющих исходного сигнала.

Также важно, что все рассмотренные определения, как и символы AC и DC, в равной степени применимы и для категории «напряжение».

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

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

Видео

234 подбора, из них 2 в этом месяце

Биография

AC/DC (сокр. от англ. alternating current/direct current — переменный/постоянный ток) — австралийская рок-группа, сформированная в Сиднее (Австралия) в ноябре 1973 года братьями Малькольмом и Ангусом Янгами.

Вместе с такими группами как Led Zeppelin, Black Sabbath и Deep Purple AC/DC часто рассматриваются как пионеры хард-рока и хэви-метала. Сами же музыканты классифицировали свою музыку как рок-н-ролл, поскольку в её основе лежит ритм-энд-блюз с сильно искаженным звучанием ритмической и соло гитар.

Коллектив прошёл через несколько изменений составов, прежде чем в 1975 году был издан первый альбом группы High Voltage. Состав группы оставался неизменным пока бас-гитарист Марк Эванс (англ. Mark Evans) не был замещён Клиффом Уильямсом (англ. Cliff Williams) в 1977 году. 19 февраля 1980 года, захлебнувшись собственными рвотными массами в результате крайне сильного алкогольного опьянения, умер вокалист и автор песен коллектива Бон Скотт (англ. Ronald Belford "Bon" Scott). Группа имела все шансы распасться, но вскоре замена Скотту была найдена в лице бывшего вокалиста Geordie Брайана Джонсона (англ. Brian Johnson). Годом позже группа издала свой самый продаваемый альбом Back in Black.

Коллектив продал свыше 200 миллионов копий альбомов по всему миру, включая 68 миллионов альбомов в США. Самый успешный альбом Back in Black был продан в количестве более 22 миллионов в США и более 42 миллионов за их пределами. В целом, AC/DC является самой успешной и известной рок-группой из Австралии. AC/DC занимают четвёртую позицию в списке 100 Greatest Artists of Hard Rock канала VH1 и седьмую — в списке MTV «Greatest Heavy Metal Band Of All Time».

Название

Малькольм и Ангус Янги придумали название для своей группы после того, как увидели акроним «AC/DC» на задней стороне швейной машинки, принадлежавшей их сестре Маргарет. «AC/DC» — аббревиатура от «ток переменный/ток постоянный» (англ. "alternating current/direct current"), который указывает, что прибор может использовать указанные виды энергии. Братья почувствовали, что это название символизирует грубую энергию группы и энергетику живых выступлений, таким образом имя закрепилось.

В некоторых культурах «AC/DC» - сленговое обозначение бисексуалов; музыканты утверждали, что не подозревали о существования этого значения, пока на этот факт не обратил внимание в начале их карьеры один водитель такси. Некоторые религиозные деятели утверждают, что имя группы следует понимать как «Антихрист/Ребёнок Дьявола» (англ. "Anti-Christ/Devil"s Child"), «Антихрист/Смерть Христу» (англ. "Anti-Christ/Death to Christ") или «После Христа/Дьявол Грядёт» (англ. "After Christ/Devil Comes").

«AC/DC» произносится по буквам, но группа также известна как «Acca Dacca» в Австралии. Название повлекло за собой возникновение трибьют-групп, использующих созвучные названия: BC/DC из провинции Британская Колумбия (Канада); AC/DSHE, женская группа из Сан-Франциско; шведская AB/CD и некоторые другие.

Известно, что группа несколько раз выступила для команды Freeride Entertainment в фильмах про Mountain Bike, из серии Disorder (в 4 и 5 частях, на данный момент их 9)

История

Братья Ангус (родился 31 марта 1955 года; по требованию компании Atlantic Records годом рождения Ангуса официально указывался неверный 1959), Малколм (родился 6 января 1953 года) и Джордж Янг (George Young) родились в Глазго (Шотландия) и ещё детьми вместе с семьёй уехали в Сидней. Джордж начал играть на гитаре первым и стал членом самой успешной австралийской группы 60-х, The Easybeats. Это была первая местная рок-группа, которая выпустила хит международного масштаба — "Friday on My Mind" в 1966 году. Малкольм вскоре последовал по стопам брата, став гитаристом группы из Ньюкасла The Velvet Underground (не следует путать с нью-йоркским коллективом The Velvet Underground)

Первые годы

После получения первого музыкального опыта Малколм и Ангус в ноябре 1973 года организовали AC/DC , пригласив в группу вокалиста Дейва Эванса (англ. Dave Evans), бас-гитариста Ларри Ван Кнедта (англ. Larry van Kniedt) и барабанщика Колина Бёрджесса (англ. Colin Burgess). Дебют группы состоялся 31 декабря 1973 года в сиднейском баре Chequers.

Первоначальный состав часто менялся — группа сменила нескольких барабанщиков и басистов в течение 1974 года. В сентябре 1974 года AC/DС заменили Дейва Эванса на харизматичного Бона Скотта (Ronald "Bon" Scott) (родился 9 июля 1946 года в Кирример, Шотландия), вокалиста группы The Spectors в 1966 году. С этого события начался настоящий успех группы. С Эвансом AC/DC записали сингл, состоящий из трёх песен: "Rockin" in the Parlour", "Show Business" и "Can I Sit Next to You Girl". Две последние также были записаны со Скоттом.

Сестра Ангуса Янга предложила ему надевать на концерты школьную форму, которую он носил в cредней школе для мальчиков Эшфилд в Сиднее (Ashfield Boys High School). Эту форму он позднее надевал на всех концертах группы.

Благодаря постоянному участию в транслируемом по всей Австралии телевизионному шоу популярной музыки «Обратный отсчёт» (Countdown), в период между 1974 и 1978 годами группа стала одной из наиболее известных и популярных в стране. AC/DC в эти годы выпустили ряд успешных альбомов и синглов, включая нестареющий рок-н-ролльный гимн "It’s a Long Way to the Top (If You Wanna Rock "n" Roll)" (Долог путь на вершину [Если хочешь играть рок-н-ролл]).

Всемирная известность

Группа подписала международный контракт с Atlantic Records и стала активно гастролировать по Великобритании и Европе, добиваясь известности и набираясь опыта выступая на подхвате известных рок-групп того времени, таких как Alice Cooper, Black Sabbath, KISS, Cheap Trick, Nazareth, Foreigner, Thin Lizzy и The Who. В 1976 году был издан третий австралийский альбом AC/DC — Dirty Deeds Done Dirt Cheap.

Нашествие и волну популярности панк-рока 76—78 гг. группа благополучно пережила благодаря своим грубоватым и провокационным текстам песен и, частично, из-за того, что в британской музыкальной прессе того времени её относили к панк группам. Они добились успеха на британской рок-сцене благодаря своим мощным и скандальным концертным шоу, а Ангус Янг быстро стал знаменит из-за своего провокационного поведения на сцене, что, в том числе, привело к тому, что группе запретили выступать на нескольких британских концертных площадках.

Спродюсированный Маттом Лангом (Mutt Lange) альбом 1979 года Highway to Hell вознёс группу на вершины мировых хит-парадов рок-музыки всех времён. Альбом, несомненно, стал самым популярным из дискографии группы на момент выхода. Многие песни этого альбома до сих пор часто можно услышать на радио, а титульный трек стал одной из самых известных песен в истории рок-музыки.

Смерть Бона Скотта

19 февраля 1980 года умер Бон Скотт. Он ушёл с очередной вечеринки и остался на ночь в автомобиле своего знакомого Алистера Кинниара (Allistair Kinnear). Он и обнаружил Бона на следующий день мёртвым. Причиной смерти официально стало переохлаждение, хотя наиболее распространённой версией и по сей день является то, что Бон Скотт захлебнулся собственными рвотными массами. Эти слухи подкрепляются множеством противоречий в официальной истории его смерти, что также порождает множество теорий о заговоре, убийстве музыканта и о передозировке героина.

Члены группы первоначально планировали прекратить свою музыкальную деятельность в составе AC/DC , но позже решили, что Бон Скотт хотел бы, чтобы группа продолжала существовать. Музыканты перепробовали несколько кандидатов на место вокалиста, в итоге осталось два претендента: Терри Слессер (Terry Slesser) и Брайан Джонсон (Brian Johnson). Джонсон в этот период пытался восстановить свою группу Geordie, но исполнение на публике двух песен AC/DC и Тины Тёрнер (Tina Turner) ("Whole Lotta Rosie" (Let There Be Rock) и "Nutbush City Limits", соответственно) впечатлило участников AC/DC и через несколько дней они сообщили Джонсону, что он новый вокалист группы.

«Back in Black»

Совместно с Брайаном Джонсоном группа дописала незавершённые из-за смерти Бона песни, и записала альбом Back in Black, также спродюсированный Лангом. Back in Black, выпущенный в 1980 году, стал самым продаваемым альбомом группы и одним из самых значительных в истории хард-рока. Среди всех хитов альбома, одноимённая с названием альбома песня, написанная в память о Боне Скотте, и "You Shook Me All Night Long", многими считается квинтэссенцией музыки AC/DC и, даже хард-рока в целом.

Следующий альбом, For Those About to Rock (We Salute You), выпущенный в 1981 году также очень хорошо продавался и был хорошо принят критиками. Одноимённая альбому композиция, заканчивающаяся под гром палящих пушек, стала кульминационным и завершающим номером большинства последующих концертов AC/DC .

Альбом Flick of the Switch 1983 года группа продюсировала без Ланга. Барабанщик Фил Радд из-за личных разногласий с остальными членами группы, вызванных, по некоторым данным, проблемами с алкоголем, покинул группу. На его место после анонимного прослушивания взяли Саймона Райта (Simon Wright), бывшего члена группы Tytan. В 1985 году в новом составе группа записала менее успешный альбом Fly on the Wall, спродюсированный братьями Янгами. Вместе с этим альбомом группа выпустила серию музыкального видео группы, исполняющей пять из десяти песен альбома в баре, с использованием различных спецэффектов, включая анимированную муху.

В 1986 году AC/DC вернулись в хит-парады с заглавной песней альбома Who Made Who, являющемся саундтреком к фильму Стивена Кинга «Максимальное ускорение» (Maximum Overdrive). Альбом также содержал две новых инструментальных композиции и хиты из предыдущих альбомов. В феврале 1986 года группа была принята в Зал Славы Австралийской Ассоциации звукозаписывающей индустрии (Australian Record Industry Association Hall of Fame). Альбом 1988 года Blow Up Your Video группа выпустила вместе с первоначальным составом продюсеров, Гарри Вандой (Harry Vanda) и Джорджем Янгом. Этот альбом продавался лучше, чем предыдущий и попал в британский хит-парад двадцати лучших синглов с песней "Heatseeker".

После выхода Blow Up Your Video из группы ушёл Райт и был заменен на сессионного музыканта Криса Слейда (Chris Slade). Джонсон не мог участвовать в работе группы несколько месяцев, поэтому братья Янги написали песни для следующего альбома самостоятельно, как и для всех последующих. В 1990 году вышел альбом The Razor"s Edge. Он стал очень успешным для группы и содержал хиты "Thunderstruck" и "Money Talks". Альбом стал мультиплатиновым, вошёл в десятку хит-парада США (2-е место) и двадцатку синглов в Великобритании.

В 1994 году в группу вернулся Фил Радд. Уход Криса Слейда, в этой связи, был дружественным и произошёл, в основном, из-за сильного желания членов группы вернуть Радда. По мнению Ангуса Янга, Слейд был лучшим музыкантом в AC/DC , но желание увидеть в группе Фила было сильнее. В составе 1980—1983 годов группа записала в 1995 году альбом Ballbreaker с продюсером хип-хоп и хэви-метал групп Риком Рубином (Rick Rubin) и Stiff Upper Lip в 2000 году.

После выхода этих альбомов группа подписала долгосрочный контракт на несколько альбомов с Sony BMG, которые стали выходить под лейблом Epic Records.

Последние годы и признание заслуг

В марте 2003 года группа AC/DC была принята в Зал славы рок-н-ролла в Нью-Йорке и исполнила свои хиты "Highway to Hell" и "You Shook Me All Night Long" совместно со Стивом Тайлером из Aerosmith. В мае 2003 года Малколму Янгу была присуждена награда Теда Альберта (Ted Albert Award) за «выдающийся вклад в австралийскую музыку». В том же году, Ассоциация звукозаписывающей индустрии Америки (Recording Industry Association of America, RIAA) обновила расчёты количества продаж альбомов группы с 46,5 млн копий до 63 млн, что сделало AC/DC пятой группой в истории США, продавшей наибольшее количество альбомов после The Beatles, Led Zeppelin, Pink Floyd и Eagles. Кроме того, был удостоверен «дважды бриллиантовый» (20.000.000 проданных копий) статус альбома Back in Black, что сделало его шестым в списке самых продаваемых альбомов в истории США. В 2005 году количество проданных копий альбома достигло 21 миллиона, что вывело его на пятую позицию.

В июле 2003 года группа провела совместный концерт с The Rolling Stones на Сарсфесте (Sarsfest), концерте, посвящённом борьбе с эпидемией SARS в Торонто в Канаде.

1 октября 2004 года улица Корпорейшн Лэйн (Corporation Lane) в Мельбурне была официально переименована в ACDC Лейн (ACDC Lane) в честь группы (названия улиц в Мельбурне не могут содержать символ «/»). Улица находится рядом со Свонсон Стрит (Swanston Street), местом где, в кузове грузовика, группа записала свой видеоклип для хита 1975 года "It’s a Long Way to the Top". Также есть ещё одна улица в мире, названная в честь группы AC/DC, в Испании, в городе Легане (LeganГ©s), рядом с Мадридом — «Calle de AC/DC», недалеко от улиц названных в честь рок-групп Iron Maiden и Rosendo (испанская рок-группа).

В марте 2005 года вышел набор из двух DVD дисков, "Family Jewels", содержащий музыкальное видео и клипы с концертов. Первый диск относится к эре Бона Скотта (с концертными видеозаписями, снятыми за десять дней до смерти Скотта), второй содержал видеоматериалы эры Брайана Джонсона.

28 августа 2008 года вышел сингл "Rock’n’Roll Train". 20 октября 2008 года AC/DC выпустили свой новый альбом Black Ice, который уже через неделю после выхода возглавил хит-парады 29 стран мира. За первую неделю группа продала 5 миллионов копий альбома во всем мире. В австралийском Top 50 в начале ноября оказалось 6 альбомов AC/DC . В числе тех, кто в восторженных тонах отозвался о новом альбоме, был австралийский поэт и писатель Джон Кинселла, отметивший «умные, острые, по-своему гениальные» тексты альбома.

В конце октября группа вышла в турне по Северной Америке, в качестве разогревщиков пригласив The Answer.

Влияние на рок-музыку

AC/DC упоминается многими современниками и появивишимися позднее музыкантами и группами рок-музыки и метала как повлиявшей на их творчество. Среди них: Anthrax, Bon Jovi, The Darkness, Def Leppard, Dio, Dokken, Dream Theater, Faster Pussycat, Iron Maiden, Great White, Guns N" Roses, Hanoi Rocks, Journey, Megadeth, Metallica, Nirvana, Mötley Crüe, Ozzy Osbourne, Poison, Ratt, Rhino Bucket, Saxon, Scorpions, Skid Row, Supagroup, Tool, Twisted Sister, UFO, Van Halen, Whitesnake, Wolfmother, Y&T.

Многие исполнители и группы панк-рока, хардкор-панка, гранжа, гаражного рока и альтернативного рока также отмечали AC/DC как повлиявшую на них. Хотя группа первоначально критиковалась британскими панк-рокерами поздних 70-х, многие музыканты этого движения отдавали должное AC/DC за высокую энергетику музыки, основательный и антикоммерческий (хотя многие могут с этим поспорить) подход к рок-музыке.

Влияние AC/DC на австралийскую музыку сложно переоценить. Условно говоря, каждая австралийская рок-группа появившаяся в середине 70-х и позднее испытала влияние AC/DC . К австралийским группам, упоминавшим влияние на них AC/DC , относятся, например, Airbourne, Blood Duster, Frenzal Rhomb, INXS, Jet, The Living End, Midnight Oil, Powderfinger, Silverchair, You Am I.

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

Источники электрической энергии

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

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

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

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

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

Обозначения на схемах и в приборах

Общепринято, что направление электричества идет от контакта со знаком плюс к контакту со знаком минус.

Места с большими потенциалами имеют название «положительный полюс» и обозначаются значком + (плюс). Точки с меньшими потенциалами, соответственно, именуются «отрицательный полюс» и их обозначают знаком - (минус).

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

Условные обозначения на электроприборах: - или =. Однонаправленное электричество (в том числе постоянное) обозначается латиницей DC, или же используется символ Юникода - U+2393.

Аббревиатура AC и DC прочно укоренилась в повседневном обиходе и употребляется наравне с привычными названиями «переменный» и «постоянный»:

  • обозначение постоянного напряжения (-) или DC (Direct Current);
  • знак переменного тока (~) или AC (Alternating Current) - обозначение переменного тока.

Области применения DC напряжения

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

Активно применяется постоянный ток и на транспорте. Электродвигатели с постоянным возбуждением используются в различных механизмах:

  • электровозах;
  • электропоездах;
  • трамваях;
  • троллейбусах;
  • подъемниках и т. д.

Не обошлось без постоянного напряжения и в других областях науки и техники. Широко применяется он таким образом:

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

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

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

Почему STM32? Да потому, что сейчас это самый популярный МК в СНГ: по ним много обучающей русскоязычной информации, есть куча примеров, а главное эти МК и средства отладки для них - очень дешевые. Скажу прямо - в коммерческом проекте я бы поставил только TMS320F28035 или подобный DSP из серии Piccolo от TI, но это уже совсем другая история.

Важно одно - STM32 позволяет стабильно управлять простыми «бытовыми» силовыми преобразователями от которых не зависит судьба мира работа какой-нибудь АЭС или ЦОДа.

Вот такую картину управляющих сигналов необходимо получить, чтобы превратить ток постоянный в переменный. И да - тут именно синус! Как в том фильме: «Видишь суслика? - Нет. - А он есть...»

Интересно узнать каким образом формируется синус? Хочется узнать как все-таки качают нефть киловатты энергии? Тогда добро пожаловать под кат!

1. Топологии для формирования синусоидального сигнала

Если спросить у толпы электронщиков: «Как можно сформировать синусоидальный сигнал?», то посыпятся предложения с десятком различных методов, но какой нужен нам? Давайте оттолкнемся от изначальной задачи - нам нужно превратить, например, 380В 10А в переменное напряжение 230В. В общем это «классический» случай, его мы можете увидеть в любом хорошем on-line UPS или инверторе. Получается нам надо преобразовать мощность около 4 кВт да еще и с хорошим КПД, не слабо, да? Я думаю подобное условие поубавит количество вариантов «рисования» синуса. Так что же нам остается?

В силовых преобразователях до 6-10 кВт применяется две основные топологии: полный мост и «полумост» со сквозной нейтралью. Выглядят они следующим образом :

1) Топология со сквозной нейтралью

Данная топология очень чаще всего встречается в бюджетных ИБП с синусом на выходе, хотя и такие авторитеты как APC и GE не брезгуют применять ее даже на достаточно больших мощностях. Что же их побуждает к этому? Давайте рассмотрим достоинства и недостатки данной топологии.

Плюсы:

  • Минимально возможное количество силовых транзисторов, а значит потери в 2 раза меньши и стоимость устройства тоже ниже
  • Сквозной ноль. Это упрощает процесс сертификации, особенно CE и ATEX. Связано это с тем, что сквозной ноль позволяет системам защиты по входу (например, УЗО) срабатывать так же при возникновение аварии в выходных цепях после преобразователя
  • Простая топология, что позволяем максимально уменьшить стоимость изделия при мелко-
    и средне серийном производстве

Минусы:

  • Необходимость двухполярного источника питания. Как видите на схему инвертора надо подавать ±380В и еще ноль
  • Удвоенное количество высоковольтных конденсаторов. Высоковольтные конденсаторы большой емкости и с малым ESR на мощностях от 3-4 кВт начинают составлять от 20 до 40%
    стоимости компонентов
  • Применение электролитических конденсаторов в «делителе». Они сохнут, подобрать конденсаторы с одинаковыми параметрами практически нереально, а если учесть, что параметры электролитов меняются в процессе эксплуатации, то и бессмысленно. Заменить на пленку можно, но дорого
Основные плюсы и минусы определены, так когда необходима это топология? Мое субъективное мнение: на мощностях до 500-1000 Вт, когда основополагающим требованием является стоимость, а не надежность. Явный представитель такого ширпотреба - это стабилизаторы от «А-электроника»: дешево, кое-как работает да и ладно. Для 60% потребителей в нашей стране этого достаточно и доступно по цене. Делаем выводы.

2) Мостовая топология

Мостовая топология… наверное самая понятная и самая распространенная топология в силовых преобразователях, а главное доступная разработчикам даже с небольшим опытом. После 10 кВт вы не встретите ничего другого кроме моста одно- или трехфазного. За что же его так любят?

Плюсы:

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

Минусы:

  • Увеличенное количество силовых транзисторов, а значит необходимо более серьезное охлаждение. Увеличение цены на транзисторах, но за счет меньшего количества конденсаторов это скорее даже плюс
  • Повышенная сложность драйвера, особенно при требованиях к наличию гальванической развязки
Как видите из реальных минусов мостовой топологии лишь повышенное требование к охлаждению транзисторов. Многие подумают: «Тепла выделяетсябольше - значит КПД ниже!». Не совсем так… За счет уменьшенных выбросов ЭДС и более «жесткой» системы управления КПД у двух приведенных топологий примерно равный.

В 70% случаев мне приходится применять мостовую схему не только в DC/AC инверторах, но и в других преобразователях. Это связано с тем, что проектирую в основном промышленные решения и все чаще для европейских заказчиков, а там принято на дорогие промышленные устройства давать гарантию 5-15 лет. Классическое требование: «Хотим железку, чтобы можно было давать гарантию 10 лет», тут уже выбирать не приходится. Конечно, когда люди хотят устройство с минимальной ценой, то тут необходимо уже отталкиваться от конкретной задачи при выборе топологии.

Небольшой итог : в данной статье будет приведено ПО для работы мостового преобразователя (Н-мост или Full Bridge), но сам принцип формирования синуса одинаковый для всех топологий. Код можно будет также адаптировать и под 1-ю топологию, но это вы уже сами.

2. Формирование переменного тока с помощью мостового преобразователя

Для начала давайте разберем как вообще работает мостовой преобразователь. Смотрим на схемку и видим транзисторы VT1-VT4. Они позволяют нам подавать на нашу абстрактную нагрузку (резистор, например) тот или иной потенциал. Если мы откроем транзисторы VT1 и VT4, то получится следующее: VT4 один конец нагрузки подключит к минусу (GND), а транзистор VT1 подключит к +380В, на нагрузке появится разность потенциалов «380В - 0В», которая не равна нулю, а значит через нагрузку начнет протекать ток. Я думаю все помнят, что ученые договорились - ток протекает «от плюса к минусу». Получаем такую картину:

Что мы получили открыв VT1 и VT4? Мы подключили нашу нагрузку к сети! Если резистор заменить на лампочку, то он она бы просто загорелась. И еще мы не просто включили нагрузку, а определили направление тока, протекающего через нее. Это очень важно! А что было в это время с VT2 и VT3? Они были закрыты… совсем… намертво… Что будет если все таки VT2 или VT3 были так же открыты? Смотрим:

Предположим, что открылись транзисторы VT1, VT4 и VT2. Вспоминаем закон Ома, смотрим сопротивление канала у высоковольтных транзисторов, например, IPP60R099P7XKSA1 и видим 0.1 Ом, у нас их 2 последовательно - значит сопротивление цепи VT1 и VT2 у нас около 0.2 Ом. Теперь посчитаем ток, которые пойдет через эту цепь: 380В / 0.2 Ом = 1900А. Думаю всем понятно, что это КЗ? Так же думаю всем понятно почему VT2 и VT3 должны быть закрыты?

Данный «феномен» называется - сквозной ток . И именно с ним идет большая война в силовой электронике. Как его избежать? Создать систему управления, алгоритм которой будет жестко запрещать одновременной открытие лишнего транзистора.

Зачем же нужны тогда транзисторы VT2 и VT3? Помните я писал, что очень важно направление тока? Давайте вспомнит что такое переменные ток. Собственно это ток, который имеет что-то переменное, в данном случае направление тока. У нас в розетке протекает ток, который меняет свое направление 100 раз в секунду. Давайте теперь закроем VT1 и VT4, а затем откроем транзисторы VT2 и VT3 и получим такую картину:

Как видите направление тока (обозначено стрелками) изменилось на противоположное. Использование моста позволило нам менять направление тока, о чем это говорит? Да, мы получили переменный ток!

Прошу обратить внимание, что у моста есть как бы 2 диагонали: первая диагональ образована VT1+VT4, а вторая диагональ образована с помощью VT2+VT3. Данные диагонали работают по очереди, коммутирую ток сначала в одну сторону, а потом в другую.

Вот мы получили переменный ток, скажите вы, но не все так просто… У нас есть стандарт - сетевое напряжение. Оно нормируется двумя основными параметрами: напряжение и частота. Давайте пока разберемся с частотой, ибо вопрос напряжения простой и чисто схемотехнический.

И так частота… что о ней известно - она 50 Гц (бывает 60Гц в Штатах). Период сигнала равен 20 мс. Синусоида штука симметричная в данном случае, а значит наши 2 полуволны (положительная и отрицательная) имеют одинаковую длительность, то есть 10 мс + 10 мс. Надеюсь тут все понятно.

Что это значит в физическом смысле? Да то, что нам нужно менять направление тока в нагрузке каждые 10 мс. Получаем, что сначала у нас открыта 10 мс диагональ VT1+VT4, а затем она закрывается и на следующие 10 мс открывается диагональ VT2+VT3.

Что значит открыть транзистор и какой сигнал на него подавать

Давайте отвлечемся немного на принцип управления транзисторами. Я использую полевые N-канальные транзисторы с изолированным затвором (Mosfet).

«Открытый транзистор» - это транзистор, на затвор (G) которого подали положительный потенциал (+10..18В) относительно истока (S) и транзистор изменил сопротивление канала (S-D) с бесконечно большого (2-100 МОм) на малое (обычно 0.1 - 1 Ом). То есть транзистор начал проводить ток.

«Закрытый транзистор» - это транзистор, затвор (G) которого подтянули к истоку (S) и его сопротивление изменилось с маленького до бесконечно большого. То есть транзистор перестал проводить ток.

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

Для управления мы подаем сигнал с Широтно-Импульсной Модуляцией или более привычная аббревиатура - ШИМ. Особенность данного сигнала в том, что у него есть 2 состояния: нижнее напряжение (GND) и верхнее напряжение (VCC), то есть подавая его на затвор транзистора мы или открываем его или закрываем - иного не дано. Про ШИМ тоже советую почитать дополнительно, ибо я вам описал для ленивых поверхностно.


И так, для того, чтобы у нас мост менял направление тока каждые 10 мс нам нужно подать на него ШИМ сигнал, период которого равен 20 мс, а скважность 50%. Это значит, что у нас из 20 мс плечо половину времени (10 мс) открыто и проводит ток, а другую половину закрыто. Подавать такой ШИМ нам надо на все ключи, но с одним условием - на диагональ VT1+VT4 мы подаем прямой ШИМ, а на диагональ VT2+VT3 уже инверсный. Если говорить более по-умному, то сигнал, подаваемый на диагонали должен иметь сдвиг 180 0 . Я думаю в этот момент у вас голова закипела в попытках понять текст, поэтому смотрим на его визуальное представление:

Теперь все понятно? Нет? Тогда подробнее… Как видите я отметил специально моменты открытия и закрытия транзисторов: открываются на «плюсе» и закрываются на «минусе». Также сигналы противоположны, то есть инверсные: когда синий сигнал «плюс», то зеленый сигнал «минус». Синий сигнал мы подаем на один на одну диагональ, а зеленый сигнал на другую - как видно на осциллограмме, наши диагонали никогда не открываются одновременно. Переменный ток готов!

Смотри на период. Специально показал осциллограмму с выходов контроллера, чтобы мои слова не были абстракцией. Период сигнала составляет 20 мс, одна диагональ открыта 10 мс и создает положительную полуволну, другая диагональ так же открывается на 10 мс и создает уже отрицательную полуволну. Теперь надеюсь всем понятно, а кто и сейчас не понял - пишите в ЛС, проведу для вас индивидуальное занятие на пальцах. В подтверждение моих слов осциллограмма показывает наши заветные 50 Гц! Только расслабляться рано…

Мы получили переменный ток с частотой 50 Гц, но в розетке у нас синусода, а тут меандр - не дело. Формально можно подавать меандр на выход и питать им большинство нагрузок, например, импульсному блоку питанию все равно: синус или меандр. То есть для включения ноутбуков, телефонов, телевизоров, телефонов и прочего вам уже хватит, но если вы подключите двигатель переменного тока, то все будет очень плохо - он начнет греться и КПД его ощутимо меньше, а в итоге скорее всего сгорит. Вы думаете у вас нет двигателей дома? А компрессор холодильника? А циркулярный насос отопления? Последние вообще горят как будто из дерева сделаны. Такая же ситуация с глубинными насосами для скважин, да и вообще много с чем. Получается, что синусоидальный сигнал на выходе инвертора, стабилизатора или ИБП все таки бывает важен. Что же - надо его создать! Сейчас начнется совсем взрыв мозга…

3. Формирование синусоидальной формы сигнала с помощью ШИМ

Если говорить откровенно, то я не знаю как данный раздел преподнести на доступном языке. Вдруг кто не поймет, то прошу вас или погуглить дополнительно, или написать в комментарии или ЛС - попытаюсь персонально вам объяснить. Глаза боятся, а руки делают…

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

Видим 2 оси: одна ось с периодом пи, пи/2 и далее, вторая с амплитудой от -1 до +1. В нашей задаче период измеряется в секундах и составляет 20 мс или 10 мс на каждую полуволну. Тут все просто и понятно, а вот с амплитудой веселее - просто примите как аксиому, что амплитуда у нас от 0 до 1000. Это значение скважности, которую устанавливает микроконтроллер, то есть 100 - это 10%, 500 - 50%, 900 - 90%. Логика думаю понятна. В следующей главе вы поймете почему от 0 до 1000, а пока перестроим наш график под наши значения:

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

По оси Х у нас время, а по оси Y скважность нашего ШИМ-сигнала. Нам нужно нарисовать синус с помощью ШИМа. Вспоминаем геометрию в школе, как мы строили графики? Правильно, по точкам! А сколько точек? Давайте построим синус по нескольким точкам О1(0,0) + О2(5,1000) + О3(10,0) + О4(15, -1000) + О5(20, 0) и получаем такой синус:

Построили и видим, что в принципе данный сигнал больше похож на синус чем обычный меандр, но это все равно не синус пока что. Давайте увеличим количество точек. Это кстати называется «дискретность сигнала» или в данном случае «дискретность ШИМа». А как узнать координаты этих точек? С крайними то просто было…

Расчет значений для формирования синуса

Как выше я говорил - синус у нас вполне себе симметричный. Если мы построим 1/4 периода, то есть от 0 до 5 мс, то дублируя этот кусок дальше - мы можем строить синус бесконечно долго. И так формула:


И так по порядку:
  • n - значение скважности в данной дискретной точке
  • A - амплитуда сигнала, то есть максимальное значение скважности. У нас это 1000
  • pi/2 - 1/4 периода синуса попадает в pi/2, если считаем 1/2 периода, то pi
  • x - номер шага
  • N - количество точек
Давайте для примера сделаем удобно условие, что у нас 5 точек. Получается у нас 1 шаг = 1 мс, это позволит легко график построить. Шаг дискретизации считается просто: период в котором строим график (5 мс) делим на количество точек. Давайте приведем формулу к человеческому виду:


Получаем шаг дискретизации 1 мс. Формулу для вычисления скважности оформим, например, в excel и получим следующую таблицу:

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

Как видим сигнал куда больше похож на синус, даже с учетом моего мастерства в рисовании, а точнее в уровне лени)) Я думаю результат не требует объяснений? По результатам построения выведем аксиому:

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


И так, сколько же точек будем использовать… Понятно, что чем больше, тем лучше. Как посчитать:
  1. Использую для статьи старенький микроконтроллер STM32F100RBT6 (отладка STM32VL-Discovery), его частота 24 МГц.
  2. Считаем сколько тактов будет длиться период 20 мс: 24 000 000 Гц / 50 Гц = 480 000 тиков
  3. Значит половина периода длится 240 000 тиков, что соответствует частоте 24 кГц. Хотите повысить несущую частоту - берите камень шустрее. 24 кГц наши уши все таки услышат, но для тестов или железки, стоящей в подвале пойдет. Чуть позже я планирую перенести на F103C8T6, а там уже 72 МГц.
  4. 240 000 тиков… Тут логично напрашивается 240 точек на половину периода. Таймер будет обновлять значение скважности каждые 1000 тиков или каждые 41,6 мкс
С дискретностью ШИМа определились, 240 точек на пол периода с запасом хватит, чтобы получить форму сигнала как минимум не хуже, чем в сети. Теперь считаем таблицу, так же в excel как самый простой вариант. Получаем такой график:

Исходник таблицы и значений можно взять по ссылке - .

4. Управление мостовым преобразователем для формирования синуса

Мы получили таблицу синуса и что с ней делать? Нужно передавать эти значения с определенным шагом дискретизации, который у нас известен. Все начинается с того, что таймер инициализировался - время 0, скважность ноль. Далее мы отсчитываем шаг дискретизации 41,66 мкс и записываем в таймер значение ШИМа из таблицы 13 (0,13%), отсчитываем еще 41,66 мкс и записываем 26 (0,26%) и так далее все 240 значений. Почему 240? У нас 120 шагов на 1/4 периода, а нам надо нарисовать 1/2 периода. Значения скважности те же, только после того как они достигли 1000 мы записываем ее в обратной последовательность и получаем спад синуса. На выходе мы будем иметь вот такую осциллограмму:

Как видите мы получили кучу значений ШИМа в четко заданном периоде и его длительность составляет: 240 шагов х 41,66(!) мкс = 9998,4 мкс = 9,9984 мс ~ 10 мс. Мы получили половину периода для частоты сети 50 Гц. Сигнала как видите опять два и они в противофазе, как раз то, что нужно для управления диагоналями моста. Но позвольте, где же синус спросите вы? Настал момент истины! Давайте теперь сигнал с выхода микроконтроллера подадим на ФНЧ, я сделал простой ФНЧ на RC-цепочки с номиналами 1,5 кОм и 0,33 мкФ (под рукой просто были) и получил такой результат:

Вуаля! Вот он наш долгожданный синус! Красный луч осциллографа - это сигнал до ФНЧ, а желтый луч - сигнал уже после фильтрации. ФНЧ обрезал все частоты выше 321 Гц. У нас остался основной сигнал 50 Гц, ну и конечно его гармоники с небольшой амплитудой. Если хотите идеально очистить сигнал, то сделайте ФНЧ с частотой среза около 55-60 Гц, но пока это не важно, нам надо было лишь проверить получился ли у нас синус или нет. Кстати… у меня синхронизация осциллографа включена по желтому лучу (стрелка справа экрана) и мы видим внизу экрана его частоту - идеальные 50 Гц. Что еще можно пожелать? Пожалуй все, осталось определиться какой сигнал и куда подавать. Давайте рассмотрим такую картинку:

Если вы обратите на саааамую первую осциллограмму в статье, то увидите, что сигнал в желтом и синем лучше имеют одинаковую фазу, то есть они в одно время становятся положительными и открывают транзисторы. Эти 2 сигнала открывают диагональ VT1+VT4. Соответственно 2 других сигнала так же имеют одинаковую фазу и открывают другую диагональ. Теперь мы не просто меняем направление тока, но и задаем амплитуду с помощью ШИМ таким образом, чтобы она изменялась по синусоидальному закону. Теперь рассмотрим эту же схемку, но уже с токами:

Как видим ток через нагрузку протекает в противоположную сторону, меняя направление с частотой 50 Гц, а модулированный ШИМ, подаваемый на транзисторы VT1 и VT2 позволяет нарисовать синусоидальную форму сигнала на полуволнах.

ФНЧ (фильтр низкой частоты) выполнен на индуктивности L1 и конденсаторе C2. Частоту среза для данного фильтра советую считать менее 100 Гц, это позволит минимизировать пульсации напряжения по выходу.

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

5. Борьба со сквозными токами

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

Подробнее о данном явление советую почитать, например, в этой статье . Я лишь расскажу как с ним бороться. Чтобы транзисторы успели нормально закрыться до открытия следующего плеча между управляющими сигналами вводят dead-time или проще говоря - временную задержку. У нас такая задержка будет введена между управляющими сигналами на транзисторах VT3 и VT4, т.к. именно они обеспечивают коммутацию полуволн. На транзисторах с модулируемым ШИМом (VT1 и VT2) такие задержки уже есть - синус начинается со скважности 0% и заканчивается тоже 0%. Эта задержка длиной в 1 шаг дискретизации, то есть 41.6 мкс.

И так - надо реализовать мертвое время между синим и зеленым лучом/сигналом. На любом контроллере такую задержку можно сделать программным способом, но это не есть хорошо - программа подвиснет или задержится и пыщ-пыщ ваше устройство и квартира уже объяты огнем. Поэтому в силовой электронике стоит применять только аппаратные средства. На всех специализированных motor control аппаратный deadtime предусмотрен на всех выходах ШИМа и каналах, но STM32 это все таки МК общего назначения, поэтому тут все проще, но нашу функцию он выполнит.

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

Чтобы увидеть задержку «растягиваем» сигнал на осциллографе, т.к. он имеет небольшую длительность около 300 нс. Необходимое время длительности deadtime необходимо рассчитывать для каждой конкретной задачи, чтобы защитить транзисторы от сквозных токов. Длительность задержки настраивается при иннициализации (настройке) таймера TIM1. Данная задержка присутствует и на фронте и на спаде сигнала.

6. Написание встроенного ПО для микроконтроллера STM32

Вот мы и подошли наверное к самой важной и интересной части. Физику процесса мы разобрали, принцип работы вроде понятен, необходимый минимум защит тоже определен - осталось только все это реализовать в реальном железе. Для этого я использую платку STM32VL-Discovery, получил ее кстати еще в 2011 году во времена, когда ST раздавали отладки бесплатно на своих конференциях и с тех пор она лежала запакованная - открыл упаковку всего пару месяцев назад, вроде срок годности не прошел))) Выглядит мой «стенд» для написание кода вот так:

Теперь пройдемся по подключению. Так как мне необходимо формировать два сигнала с разной частотой, то пришлось задействовать выходы ШИМ на разных таймерах. TIM1 формирует сигнал, который задает основную частоту 50 Гц и подает их на транзисторы VT3 и VT4. Используется канал ШИМа №3 + его комплементарный выход. Да да, в STM32 аппаратный deadtime можно настроить только между обычным и комплементарным выходом одного канала, что мне сильно не понравилось. Сам процесс формированию синуса передан таймеру TIM2, тут уже не нужна задержка (ранее писал почему) и он вполне сгодится для формирование модулированного сигнала на VT1 и VT2.

Используемые выходы:

  • PA10 - обычный выход ШИМ, канал №3 таймера TIM1, который генерирует 50 Гц на транзистор VT3
  • PB15 - комплементарный выход канала №3 таймера TIM1, который подается на транзистор VT4
  • PA0 - выход ШИМ канала №1 таймера TIM2. Подает модулированный сигнал на VT1
  • PA1 - выход ШИМ канала №2 таймера TIM2. Подает модулированный сигнал на VT2
Проект реализован в среде Keil 5, он будет в конце статьи прикреплен к архивом. Рассказывать как создавать проект и подобные очевидные вещи надеюсь не стоит, если такие вопросы возникают, то советую посмотреть как это делать в гугле или на youtube. Весь код написан на CMSIS (регистры), т.к. использовать в системе управления преобразователем какие-либо дополнительные уровни абстракции просто грех! У ST это библиотеки SPL и более актуальные HAL. Для интереса поработал и с теми и с теми, вывод - хлам полный. HAL так вообще безумно тормознутый и для приложений с жестким реал-таймом просто не подходит от слова совсем. В некоторых критичных моментах регистры были в разы быстрее, об этом кстати нашел не одну статью на просторах интернета.

Некоторые наверняка спросят: «А почему не задействовать DMA?» Сделать это можно и нужно, но данная статья носит скорее ознакомительный характер, да и сам МК не делает ничего сложного в плане вычислений, поэтому в производительность ядра тут точно не упереться. DMA - это хорошо, но без DMA можно обойтись без каких-либо потенциальных проблем. Давайте уточним, что нам нужно сделать в программе:

  1. Создать массив с нашими 240 точками синуса
  2. Настроить цепи тактирования на частоту 24 МГц, выбрав источник внешний кварцевый резонатор
  3. Настроить таймер TIM1 на генерацию ШИМ 50 Гц с включенным deadtime
  4. Настроить TIM2 на генерацию ШИМ с несущей частотой 24 кГц
  5. Настроить таймер TIM6, который генерирует прерывания с частотой 24 кГц. В нем мы будем отправлять следующее значение скважности из таблицы в таймер TIM2, а также чередовать генерацию полуволн
Ничего сложного, правда? Тогда поехали…

6.1. Создание таблицы синуса

Тут все просто, обычный массив. Единственное, что стоит помнить - у нас 120 точек от 0 до 1000. Нам нужно добавить в таблицу еще 120 точек, но в обратной последовательности:

Uint16_t sin_data = {13,26,39,52,65,78,91,104,117,130,143,156,169,182,195,207,220,233,246,258, 271,284,296,309,321,333,346,358,370,382,394,406,418,430,442,453,465,477,488,500, 511,522,533,544,555,566,577,587,598,608,619,629,639,649,659,669,678,688,697,707, 716,725,734,743,751,760,768,777,785,793,801,809,816,824,831,838,845,852,859,866, 872,878,884,891,896,902,908,913,918,923,928,933,938,942,946,951,955,958,962,965, 969,972,975,978,980,983,985,987,989,991,993,994,995,996,997,998,999,999,999,1000, 999,999,999,998,997,996,995,994,993,991,989,987,985,983,980,978,975,972,969,965, 962,958,955,951,946,942,938,933,928,923,918,913,908,902,896,891,884,878,872,866, 859,852,845,838,831,824,816,809,801,793,785,777,768,760,751,743,734,725,716,707, 697,688,678,669,659,649,639,629,619,608,598,587,577,566,555,544,533,522,511,500, 488,477,465,453,442,430,418,406,394,382,370,358,346,333,321,309,296,284,271,258, 246,233,220,207,195,182,169,156,143,130,117,104,91,78,65,52,39,26,13};

6.2. Настройка системы тактирования

Настройка тактирования в STM32 весьма гибкая и удобная, но есть несколько нюансов. Сама последовательность выглядит следующим образом:

1) Переключаемся на тактирование от встроенной RC-цепочки (HSI) на внешний кварц (HSE), дальше ждем флага о готовности

RCC->CR |= ((uint32_t)RCC_CR_HSEON); // Enable HSE while (!(RCC->CR & RCC_CR_HSERDY)); // Ready start HSE
2) Flash память контроллера работает несколько медленнее, чем ядро для этого настраиваем тактирование флеши. Если этого не сделать, то программа запустится, но будет периодически падать: пара кВт и нестабильное ПО - вещи несовместимые.

FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY; // Cloclk Flash memory
3) Выставляем делители для системной шины тактирования (AHB) и для шин периферии, коих аж две штуки: APB1 и APB2. Нам нужна максимальная частота, поэтому ничего не делим и коэффициенты деления делаем равными 1.

RCC->CFGR |= RCC_CFGR_HPRE_DIV1; // AHB = SYSCLK/1 RCC->CFGR |= RCC_CFGR_PPRE1_DIV1; // APB1 = HCLK/1 RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; // APB2 = HCLK/1
4) Настраиваем множитель частоты (PLL) предделитель, который стоит перед ним и делит частоту кварца на 2. Получаем, что 8 МГц поделили на 2 и получили 4 МГц. Теперь надо их умножить на 6, чтобы на выходе были 24 МГц. Перед записью регистров предварительно сотрем их содержимое на всякий случай.

RCC->CFGR &= ~RCC_CFGR_PLLMULL; // clear PLLMULL bits RCC->CFGR &= ~RCC_CFGR_PLLSRC; // clearn PLLSRC bits RCC->CFGR &= ~RCC_CFGR_PLLXTPRE; // clearn PLLXTPRE bits RCC->CFGR |= RCC_CFGR_PLLSRC_PREDIV1; // source HSE RCC->CFGR |= RCC_CFGR_PLLXTPRE_PREDIV1_Div2; // source HSE/2 = 4 MHz RCC->CFGR |= RCC_CFGR_PLLMULL6; // PLL x6: clock = 4 MHz * 6 = 24 MHz
5) Теперь надо включить множитель частоты (PLL) и дождаться флага о готовности:

RCC->CR |= RCC_CR_PLLON; // enable PLL while((RCC->CR & RCC_CR_PLLRDY) == 0) {} // wait till PLL is ready
6) И наконец-то настраиваем источник тактирования для системной шины (AHB) выход нашего множителя частоты, на котором заветные 24 МГц. Предварительно содержимое регистра чистим, устанавливаем нужный бит и ждем флага готовности:

RCC->CFGR &= ~RCC_CFGR_SW; // clear SW bits RCC->CFGR |= RCC_CFGR_SW_PLL; // select source SYSCLK = PLL while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1) {} // wait till PLL is used
В итоге у нас получается вот такая функция настройки тактирования:

Void RCC_Init (void){ RCC->CR |= ((uint32_t)RCC_CR_HSEON); // Enable HSE while (!(RCC->CR & RCC_CR_HSERDY)); // Ready start HSE FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY; // Cloclk Flash memory RCC->CFGR |= RCC_CFGR_HPRE_DIV1; // AHB = SYSCLK/1 RCC->CFGR |= RCC_CFGR_PPRE1_DIV1; // APB1 = HCLK/1 RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; // APB2 = HCLK/1 RCC->CFGR &= ~RCC_CFGR_PLLMULL; // clear PLLMULL bits RCC->CFGR &= ~RCC_CFGR_PLLSRC; // clearn PLLSRC bits RCC->CFGR &= ~RCC_CFGR_PLLXTPRE; // clearn PLLXTPRE bits RCC->CFGR |= RCC_CFGR_PLLSRC_PREDIV1; // source HSE RCC->CFGR |= RCC_CFGR_PLLXTPRE_PREDIV1_Div2; // source HSE/2 = 4 MHz RCC->CFGR |= RCC_CFGR_PLLMULL6; // PLL x6: clock = 4 MHz * 6 = 24 MHz RCC->CR |= RCC_CR_PLLON; // enable PLL while((RCC->CR & RCC_CR_PLLRDY) == 0) {} // wait till PLL is ready RCC->CFGR &= ~RCC_CFGR_SW; // clear SW bits RCC->CFGR |= RCC_CFGR_SW_PLL; // select source SYSCLK = PLL while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1) {} // wait till PLL is used }

6.3. Настройка таймера TIM1 и «мертвого времени»

Я приведу общую настройку таймера, она подробно описана в reference manual - назначение каждого регистра советую почитать. Да и базовые статьи по работе с ШИМ в интернете есть. Сам код у меня весьма неплохо прокомментирован, поэтому привожу сразу код функции инициализации таймера TIM1, а самые интересные моменты разберем:

Void PWM_50Hz_Init (void){ RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; // enable clock for TIM1 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // enable clock for port A RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // enable clock for port B RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // enable clock for alternative gpio /****************************** Setting PA10 **************************************/ GPIOA->CRH &= ~GPIO_CRH_CNF10; // setting out alternative push-pull for PWM GPIOA->CRH |= GPIO_CRH_CNF10_1; GPIOA->CRH &= ~GPIO_CRH_MODE10; GPIOA->CRH |= GPIO_CRH_MODE10; // gpio speed 50 MHz /***************************** Setting PB15 ***************************************/ GPIOB->CRH &= ~GPIO_CRH_CNF15; // setting complementary for CH3N GPIOB->CRH |= GPIO_CRH_CNF15_1; GPIOB->CRH &= ~GPIO_CRH_MODE15; GPIOB->CRH |= GPIO_CRH_MODE15; // gpio speed 50 MHz /************************** Config PWM channel ************************************/ TIM1->PSC = 480-1; // div for clock: F = SYSCLK / TIM1->ARR = 1000; // count to 1000 TIM1->CR1 &= ~TIM_CR1_CKD; // div for dead-time: Tdts = 1/Fosc = 41.6 ns TIM1->CCR3 = 500; // duty cycle 50% TIM1->CCER |= TIM_CCER_CC3E | TIM_CCER_CC3NE; // enable PWM complementary out TIM1->CCER &= ~TIM_CCER_CC3NP; // active high level: 0 - high, 1 - low TIM1->CCMR2 &= ~TIM_CCMR2_OC3M; TIM1->CCMR2 |= TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC3M_1; // positiv PWM TIM1->BDTR &= ~TIM_BDTR_DTG; // clear register TIM1->BDTR |= TIM_BDTR_DTG_2 | TIM_BDTR_DTG_1 | TIM_BDTR_DTG_0; // value dead-time TIM1->BDTR |= TIM_BDTR_MOE | TIM_BDTR_AOE; // enable generation output /*******************************************************************************/ TIM1->CR1 &= ~TIM_CR1_DIR; // count up: 0 - up, 1 - down TIM1->CR1 &= ~TIM_CR1_CMS; // aligned on the front signal TIM1->
Скважность у нас фиксированная и никогда не изменяется, как и частота. Именно этот таймер задает время и последовательность работы диагоналей:

TIM1->CCR3 = 500; // duty cycle 50%
Длительность паузы «мертвого времени» зависит сильно от временной параметра TDTS, которое настраивается тут:

TIM1->CR1 &= ~TIM_CR1_CKD; // div for dead-time: Tdts = 1/Fosc = 41.6 ns
Его длительность составляет 1 тик тактовой частоты. Если посмотреть в reference manual, то можно увидеть, что биты CKD могут, например, сделать Tdts равным 2, 8 тикам и прочее.

Самое же время паузы устанавливается тут:

TIM1->BDTR |= TIM_BDTR_DTG_2 | TIM_BDTR_DTG_1 | TIM_BDTR_DTG_0;
Если отроете reference manual RM0041, то увидите вот такие формулы для расчета DT. Как видите параметр Tdts там основнополагающий:

6.4. Настройка таймера TIM2, формирующий синус

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

Void PWM_Sinus_Init (void){ RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // enable clock for TIM2 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // enable clock for port A RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // enable clock for alternative gpio /****************************** Setting PA0 ***************************************/ GPIOA->CRL &= ~GPIO_CRL_CNF0; // setting out alternative push-pull for PWM1_CH1 GPIOA->CRL |= GPIO_CRL_CNF0_1; GPIOA->CRL &= ~GPIO_CRL_MODE0; GPIOA->CRL |= GPIO_CRL_MODE0; // gpio speed 50 MHz /****************************** Setting PA1 ***************************************/ GPIOA->CRL &= ~GPIO_CRL_CNF1; // setting out alternative push-pull for PWM1_CH1 GPIOA->CRL |= GPIO_CRL_CNF1_1; GPIOA->CRL &= ~GPIO_CRL_MODE1; GPIOA->CRL |= GPIO_CRL_MODE1; // gpio speed 50 MHz /*************************** Config PWM channel ***********************************/ TIM2->PSC = 0; // div for clock: F = SYSCLK / TIM2->ARR = 1000; // count to 1000 TIM2->CCR1 = 0; // duty cycle 0% TIM2->CCR2 = 0; // duty cycle 0% TIM2->CCER |= TIM_CCER_CC1E; // enable PWM out to PA8 TIM2->CCER &= ~TIM_CCER_CC1P; // active high level: 0 - high, 1 - low TIM2->CCER |= TIM_CCER_CC2E; // enable PWM complementary out to PA9 TIM2->CCER &= ~TIM_CCER_CC1P; // active high level: 0 - high, 1 - low TIM2->CCMR1 &= ~(TIM_CCMR1_OC1M | TIM_CCMR1_OC2M); TIM2->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1; // positiv PWM1_CH1 and PWM1_CH2 /*******************************************************************************/ TIM2->CR1 &= ~TIM_CR1_DIR; // count up: 0 - up, 1 - down TIM2->CR1 &= ~TIM_CR1_CMS; // aligned on the front signal: 00 - front; 01, 10, 11 - center TIM2->CR1 |= TIM_CR1_CEN; // start count }

6.5. Настройка прерываний от таймера TIM6

Настраиваем сам таймер на частоту 24 кГц:

Void TIM6_step_init (void){ RCC->APB1ENR |= RCC_APB1ENR_TIM6EN; // enable clock for basic TIM6 TIM6->PSC = 1-1; // div, frequency 24 kHz TIM6->ARR = 1000; // count to 1000 TIM6->DIER |= TIM_DIER_UIE; // enable interrupt for timer TIM6->CR1 |= TIM_CR1_CEN; // start count NVIC_EnableIRQ(TIM6_DAC_IRQn); // enable interrupt TIM6_DAC_IRQn }

6.6. Реализация основного алгоритма управления

Основные события происходят в генерируемом таймером TIM6 прерывании. Прерывание генерируется каждые 41,66 мкс, если помните это наш шаг дискретизации. Соответственно в прерывании записывается значение скважности из таблицы в регистр CCRx . Также в данном прерывании определяется какая диагональ в данный момент времени отрисовывается, путем инверсии флага sin_status после каждого полупериода. Мы выводим 240 точек, инвертируем флаг, что вызывает переход управления к другому каналу, когда уже и он отрисовал, то флаг опять инвертируется и все повторяется. Код основного алгоритма:

Void TIM6_DAC_IRQHandler(void){ TIM6->SR &= ~TIM_SR_UIF; if(sin_status == 0){TIM2->CCR1 = sin_data;} if(sin_status == 1){TIM2->CCR2 = sin_data;} sin_step++; if(sin_step >= 240){ sin_step=0; sin_status = sin_status ? 0: 1; } }

Итоги

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

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

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