4.1 Введение
4.2 Обзор литературных и технических данных
4.2.1 Классификация инверторов
4.2.2 Трёхфазная мостовая схема инвертора
4.2.3 Обзор патентной литературы
4.3 Выбор и обоснование способов формирования синусоидальных сигналов
4.3.1 Формирование синусоиды при неизменной длительности
проводимости тиристоров λ=180°
4.3.2 Широтно-импульсная модуляция (ШИМ) напряжения по
синусоидальному закону
4.3.3 Пространственно-векторная ШИМ
4.3.4 Программное управление на основе микроконтроллера
4.4 Разработка функциональной схемы системы управления
4.4.1 Выбор микроконтроллера
4.4.2 Разработка электрической принципиальной схемы устройства
4.5 Разработка программного обеспечения управляющего микроконтроллера
4.5.1 Разработка алгоритма основной программы
4.5.2 Отладка программного обеспечения
4.5.3 Моделирование работы программного обеспечения
4.6 Заключение
4.7 Список использованных источников
4.8 Приложение
4.8.1 Приложение А (обязательное) Текст программы
4.8.2 Приложение Б (обязательное) Формирование синусоиды с
помощью тиристоров
4.8.3 Приложение В (обязательное) Широтно-импульсная модуляция
СОДЕРЖАНИЕ
Введение ................................................................................................................... 7
1 Обзор литературных и технических данных ..................................................... 8
1.1 Классификация инверторов ....................................................................... 8
1.2 Трёхфазная мостовая схема инвертора ................................................... 10
1.3 Обзор патентной литературы................................................................... 11
2 Выбор и обоснование способов формирования синусоидальных сигналов 13
2.1 Формирование синусоиды при неизменной длительности проводимости тиристоров λ=180о .................................................................................... 13
2.2 Широтно-импульсная модуляция (ШИМ) напряжения по синусоидальному закону .............................................................................................. 15
2.3 Пространственно-векторная ШИМ ......................................................... 17
2.4 Программное управление на основе микроконтроллера ...................... 19
3 Разработка функциональной схемы системы управления ............................. 20
3.1 Выбор микроконтроллера ........................................................................ 20
3.2 Разработка электрической принципиальной схемы устройства .......... 27
4 Разработка программного обеспечения управляющего микроконтроллера 28
4.1 Разработка алгоритма основной программы.......................................... 28
4.2 Отладка программного обеспечения....................................................... 37
4.3 Моделирование работы программного обеспечения ............................ 39
ЗАКЛЮЧЕНИЕ ..................................................................................................... 44
СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ .............................................. 45
Приложение А (обязательное) Текст программы .............................................. 46
Приложение Б (обязательное) Формирование синусоиды с помощью тиристоров...................................................................................................................... 53
Приложение В (обязательное) Широтно-импульсная модуляция ................... 54
Приложение Г (обязательное) Пространственно-векторная ШИМ................. 55
Приложение Д (обязательное) Алгоритм программы ....................................... 56
Приложение Е (обязательное) Электрическая принципиальная схема устройства .......................................................................................................................... 57
Приложение Ж (обязательное) Временные диаграммы.................................... 58
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
6
ВВЕДЕНИЕ
Трёхфазная система представляет собой совокупность трёх электрических цепей, в которых действуют синусоидальные ЭДС одинаковой частоты,
сдвинутые друг относительно друга на угол 2π/3 (или на 120o). По каждой
такой электрической цепи, называемой фазой, протекает одинаковый по величине ток. Данная система состоит из трёхфазного генератора и нагрузки
[5].
Трёхфазные системы имеют ряд преимуществ перед однофазными и
многофазными системами. Во-первых, это возможность получения двух рабочих напряжений: фазного и линейного. Во-вторых, возможность получения
кругового вращающегося магнитного поля, которое нашло применение в работе трёхфазных асинхронных двигателей. В-третьих, это экономия при передаче электроэнергии на большие расстояния, а так же меньшее использование проводников, в качестве которых используются цветные металлы.
Целью бакалаврской работы является исследование способов формирования трёхфазной системы синусоидального сигнала и разработка системы
управления инвертором.
Из-за высокой актуальности данной темы возникла идея реализации
простого в исполнении и дешёвого прибора, а также программного обеспечения для него, который способен обладать высокой длительности работы без
вмешательства обслуживающего персонала.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
7
1 Обзор литературных и технических данных
1.1 Классификация инверторов
Одним из способов создания трёхфазной синусоидальной системы является преобразование постоянного напряжения в переменное. Устройства,
выполняющие такое преобразование, называются инверторами.
Различают два типа инверторов:
•
Инверторы, ведомые сетью;
•
Автономные инверторы.
Первый тип инверторов является зависимым. Для их работы требуется
наличие в выходной цепи более мощного источника переменного напряжения, который будет задавать частоту и амплитуду. Задачей инвертора ведомого сетью будет являться снабжение потребителям переменного тока недостающей мощности при условии нехватки от основного источника.
Второй тип инверторов является независимым, то есть они работают на
несвязанную с сетью переменного тока нагрузку. Данная нагрузка может
быть единичной (например, асинхронный двигатель), а так же представлять
собой множество потребителей [5].
Различают три типа автономных инверторов:
•
Инвертор напряжения;
•
Инвертор тока;
•
Резонансный инвертор.
Отличительной особенностью автономного инвертора тока является
наличие в цепи дросселя с большой индуктивностью сразу после источника
постоянного напряжения, что делает инвертор тока по отношению к нагрузке
источником тока. Данная индуктивность поддерживает ток в нагрузке практически постоянным в течение полупериода выходной частоты инвертора.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
8
Автономный инвертор напряжения отличается от автономного инвертора тока тем, что для устранения влияния индуктивности, на выходе выпрямителя включается конденсатор большой ёмкости, который шунтирует источник питания по переменному току и обеспечивает проводимость в обратном направлении.
В резонансных инверторах нагрузка служит составной частью колебательного LC-контура. В данном случае ток нагрузки зависит от параметров
реактивных элементов колебательного контура и напряжения источника питания.
В качестве вентилей в автономных инверторах используются биполярные или полевые транзисторы, однооперационные или двухоперационные
тиристоры, а так же IGBT-транзисторы. Последние обладают высоким быстродействием и не требуют мощного управляющего сигнала.
Основные области применения автономных инверторов следующие:
•
Питание потребителей переменного тока в устройствах, где ис-
точником энергии является аккумуляторная батарея, например бортовые источники питания.
•
Электротранспорт, питающийся от источника постоянного тока,
где в качестве электродвигателей используются асинхронные двигатели;
•
Электропривод с синхронными и асинхронными двигателями, где
инвертор служит источником регулируемых напряжения и частоты.
•
Преобразователи постоянного напряжения одной величины в по-
стоянное напряжение другой.
•
Электротермия для получения переменного тока высокой часто-
ты, например для плавки металла, и закалки изделий.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
9
1.2 Трёхфазная
хфазная мостовая схема инвертора
По числу фаз инверторы делятся на однофазные и многофазные
многофазные. Из-за
ранее указанных преимуществ,
преимуществ в настоящее время широко используются
трехфазные инверторы.
инверторы На практике они могут быть реализованы двумя способами:
•
Однофазная мостовая схема с трансформаторным выходом;
•
Трёхфазная
хфазная мостовая схема.
Первый способ редко используется из-за обязательного наличия выходного трансформатора и удвоенного числа вентилей по сравнению с трёхфазной схемой.
При реализации вторым способом инвертор может работать как с
трансформатором, так и без него. Схема силовой
трансформатором
ой части трё
трёхфазного инвертора состоит из шести транзисторных ключей VT1–VT6,, которые параллельно
присоединены к источнику питания и образуют мостовую схему [5]. На рисунке 1 показана упрощенная схема мостового автономного инвертора напряжения.
Рисунок 1 – Трёхфазная мостовая схема
хема инвертора
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
10
Недостатком данной схемы является то, что при нарушении симметрии
в нагрузке (например, при перегрузке или коротком замыкании в одной фазе)
происходит искажение кривых выходного напряжения во всех трёх фазах.
1.3 Обзор патентной литературы
Наиболее актуальным и достоверным видом научно-технической информации является патентная документация. Её исследование необходимо
для отбора и анализа действующих патентов, которые достаточно близко затрагивают проверяемый объект. На тему трёхфазных сигналов и инверторов
существует огромное количество патентов, и поэтому патентный обзор будет
проведен на основании технического задания на тему данной бакалаврской
работы.
Одним из примеров будет рассмотрен патент на полезную модель RU
168344 U1 «Устройство управления трёхфазным автономным инвертором
напряжения», опубликованный 30.01.2017 г.
Наиболее близким для данного патента является устройство цифрового
формирования трёхфазных сигналов с широтно-импульсной модуляцией (патент US4599550A, опубликованный 08.07.1986 г.). Недостатками данного
устройства являются постоянные выборки команд из памяти программ, осуществляемые микроконтроллером, так как используется общая параллельная
шина, что отрицательно сказывается на общем быстродействии, так же отсутствие цепи аварийной быстродействующей защиты инвертора.
Технический результат заключается в улучшении показателей быстродействия устройства путём использования гальванической изоляции и быстродействующей защиты инвертора. Так же выполняется уменьшение количества проводников внутренней информационной шины обмена и её загруженности при помощи последовательной передачи битов информации, что приводит к улучшению трассировки печатной платы [4].
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
11
Вторым примером будет рассмотрен патент RU 2326486 C1 «Способ
формирования широтно-импульсных сигналов управления автономного инвертора», опубликованный 10.06.2008 г.
Данное изобретение может быть использовано для частотного регулирования скорости асинхронного двигателя. Устройство содержит шесть транзисторных ключей и диодов. Способ формирования ШИМ сигналов реализован на сравнении опорного треугольного сигнала постоянной частоты и трёх
синусоидальных сигналов, которые сдвинуты друг относительно друга на
1200. Недостатком данного способа является то, что выходные напряжения
инвертора ассиметричны относительно оси ординат.
Технический результат данного изобретения заключается в улучшении
качества выходного напряжения, принцип которого основан также на сравнении опорного сигнала с тремя подаваемыми синусоидальными сигналами.
Но в данном случае в каждом из трёх каналов сравнения сопоставляется следующее: если опорный сигнал меньше треугольного сигнала, то формируется
высокий уровень ШИМ сигнала, и если опорный сигнал больше, то формируется низкий уровень. Затем формируются два сопряжённых выходных сигнала, которые подаются на управляющие входы ключей соответствующей
фазы инвертора и изменяют знак подаваемых сигналов на противоположный
шесть раз за один период. Благодаря этому уменьшается содержание высших
гармоник [1].
Третьим примеров будет рассмотрен патент РФ 20911979 «Способ
управления трёхфазным инвертором напряжения с ШИМ и устройство для
его осуществления», опубликованный 27.09.1997 г.
Наиболее близким способом и устройством управления преобразователем с ШИМ сигналом является патент US 4629959, опубликованный
16.12.1986 г. Недостатком данного устройства является проблематичное использование при больших мощностях электропривода (150 – 400 кВт). Это
связано с низким значением индуктивности фазы асинхронного двигателя.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
12
Технический результат заключается в снижении частоты переключений
вентилей, благодаря чему возрастает КПД преобразователя. Задача состоит в
том, что помимо формирования фазовых сигналов тока, необходимо формировать импульсные фазные сигналы в моменты перехода мгновенных фазных
значений питающего напряжения через нуль. Также новизной в данном устройстве является добавление постоянного запоминающего устройства. Что
позволяет снизить частоту коммутаций тока в вентилях инвертора [3].
2 Выбор и обоснование способов формирования синусоидальных
сигналов
В данной работе будет рассмотрено четыре способа формирования
трёхфазных синусоидальных сигналов:
•
Формирование синусоиды при неизменной длительности прово-
димости тиристоров λ=180°;
•
Широтно-импульсная модуляция (ШИМ) напряжения по сину-
соидальному закону;
•
Пространственно-векторная ШИМ;
•
Программное управление на основе микроконтроллера.
2.1 Формирование синусоиды при неизменной длительности проводимости тиристоров λ=180о
Данный способ основан на переключении транзисторных ключей (рисунок 1). Каждый транзисторный ключ проводит ток в течение λ=180°.
На рисунке 2 показан алгоритм переключения вентилей, где можно
увидеть, что в любой момент времени замкнуто три ключа, а так же две фазы
нагрузки подключаются к одному полюсу источника питания, а одна фаза к
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
13
другому полюсу. В первый момент замкнуты 1, 5, 6 ключи, во второй – 1, 2, 6
и т.д.
Рисунок 2 – Временная диаграмма замыкания ключей
Из рисунка 2 можно сделать вывод, что всего возможно шесть вариантов замыкания ключей, а так же каждый вентиль включён в течение π (180°),
и включение следующего вентиля происходит с задержкой π/3. При условии
соединения нагрузки звездой одна фаза может быть включена параллельно
другой фазе, и они обе последовательно с третьей. Величины сопротивлений
фаз должны быть равными друг другу [2].
Так, например, на третьем моменте замкнуты ключи VT1, VT2, VT3, а
фазы А и В включены параллельно, а фаза С – последовательно с ними. Напряжение на фазах А и В будет равным 1/3Uп и иметь положительное значение, а на фазе С составит 2/3Uп и будет иметь отрицательное значение
(рис.3).
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
14
Рисунок 3 – Фазные напряжения схемы
Недостатком данного способа является невозможность осуществления
пофазного регулирования выходного напряжения при изменяемой несимметричной нагрузке. Поэтому регулирование выходного напряжения производят
путём применения на входе управляемого выпрямителя [5].
2.2 Широтно-импульсная модуляция (ШИМ) с синусоидальной
огибающей
Данный способ основан на сравнении подаваемых синусоидальных
сигналов с опорным напряжением при помощи нуль-органа (устройство для
сравнения аналоговых сигналов по величине).
Схема, основанная на данном методе, состоит из силовой части инвертора, представляющая собой транзисторные ключи T1–T6 и из системы
управления, которая включает в себя три нуль-органа НО и шесть формирователей импульсов управления транзисторами инвертора Ф1–Ф6. Данная
схема показана на рисунке 4.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
15
Рисунок 4 – Схема с использованием синусоидальной ШИМ
Данная схема работает следующим образом
образом. Сигналы синусоидальной
формы uМ1, uМ2, uМ3, сдвинутые друг относительно друга на 120°, подаются
на входы нуль-органов
органов. Опорное напряжение uОП пилообразной формы также
подается на входы нуль-органов.
нуль
Нуль-органы срабатывают при равенстве
данных двух напряжений
напряжений. Далее выходные импульсы uA, uB, uC с помощью
формирователей преобразуются в импульсы управления транзисторами инвертора u1–u6. Для того чтобы исключить возникновение сквозных токов (когда два последовательных ключа включаются одновременно
одновременно), включение
следующего транзистора происходит только после восстановления запирающих свойств выключаемого предыдущего транзистора [5].
].
Принцип формирования трёхфазного напряжения показан на рисунке 5.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
16
Рисунок 5 – Формирование трёхфазного
хфазного напряжения
2.3 Пространственно-векторная
Пространственно
ШИМ
Отличие данного способа от простой ШИМ состоит в том, чтобы исключить одновременную коммутацию всех транзисторных ключей за период
коммутации и использовать
льзовать заранее составленные комбинации данных ключей. Данные комбинации
омбинации соответствуют определённому
нному положению пространственного вектора результирующего напряжения.
Взяв в качестве примера схему, изображённую
нную на рисунке 1, составляются все возможные комбинации
комби
базовых векторов
векторов. Данные комбинации и
состояния вентилей показаны в таблице 1.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
17
Таблица 1 – Комбинации векторов и вентилей
Базовый вектор
S0 = (000)
VT1
VT3
VT5
ВЫКЛ ВЫКЛ ВЫКЛ
VT4
VT6
VT2
ВКЛ
ВКЛ
ВКЛ
ВКЛ
ВКЛ
S1 = (100)
ВКЛ
ВЫКЛ ВЫКЛ ВЫКЛ
S2 = (110)
ВКЛ
ВКЛ
ВЫКЛ ВЫКЛ ВЫКЛ
ВКЛ
S3 = (010)
ВЫКЛ
ВКЛ
ВЫКЛ
ВКЛ
ВЫКЛ
ВКЛ
S4 = (011)
ВЫКЛ
ВКЛ
ВКЛ
ВКЛ
ВЫКЛ ВЫКЛ
S5 = (001)
ВЫКЛ ВЫКЛ
ВКЛ
ВКЛ
ВКЛ
ВЫКЛ
ВКЛ
ВЫКЛ
S6 = (101)
ВКЛ
ВЫКЛ
ВКЛ
ВЫКЛ
S7 = (111)
ВКЛ
ВКЛ
ВКЛ
ВЫКЛ ВЫКЛ ВЫКЛ
Векторы S0 и S7 являются нулевыми, и они обеспечивают формирование нулевого напряжения. Графически базовые векторы показаны на рисунке
6.
Рисунок 6 – Расположение базовых векторов на плоскости
Создание базового вектора напряжения создаётся путём поочерёдного
подбора комбинаций базовых векторов, где векторы S0–S7 соответствуют
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
18
векторам U0–U7. Положение базового вектора выходного напряжения и его
величина рассчитывается исходя из времени включения базовых векторов на
период модуляции. Данное утверждение реализуется по следующей формуле:
=
∙
+
∙
+
=
+
+
∙
(1)
(2)
где Ui, Ui+1 – смежные векторы; U0 – нулевой вектор напряжения; T1, T2,
T0 – относительное время включения соответствующих базовых векторов; Tk
– период несущей частоты [3].
Плюсом данного способа от обычной ШИМ является то, что за один
период происходит четыре коммутации транзисторных ключей (в обычной
ШИМ шесть коммутаций), что уменьшает в инверторе динамическую погрешность.
2.4 Программное управление на основе микроконтроллера
В микроконтроллере таймер/счётчик используется для подсчёта импульсов, создания временных интервалов, а так же подсчёта тактов внутри
микроконтроллера. В энергонезависимой памяти микропроцессора находится
таблица, в которой хранится от четверти до одного периода значений синуса.
Данные значения могут последовательно передаваться в модуль таймера/счётчика для создания ШИМ сигнала.
Частота регулируется путём изменения скорости подбора значений из
таблицы и аппроксимацией промежуточных отсчётов на интервале малых углов. Амплитуда регулируется логическим сдвигом вправо значений, которые
берутся из таблицы. Из этого следует, что замена аппаратной реализации
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
19
программной позволяет упрощать аналоговую часть схемы и делать более
удобное цифровое микропроцессорное управление.
Поэтому перспективным направлением остаётся создание синусоидальных сигналов при помощи микропроцессора. Особенностью систем
управления, которые созданы по данному принципу, является то, что они могут использоваться при исследовании режимов работы промышленных образцов на стадии их проектирования. В связи с данным преимуществом для
последующих разработок был выбран способ формирования трёхфазной системы на основе микроконтроллера с развитой периферией.
3 Разработка функциональной схемы системы управления
3.1 Выбор микроконтроллера
Сильный толчок в усовершенствовании микроконтроллеров сделала
фирма «Atmel», когда в 1996 году выпустила на новом ядре AVR своё семейство чипов. Данные микроконтроллеры отличались от других более продуманной архитектурой, лучшим соотношением цены, быстродействия и энергопотребления. Кроме того они имели более широкий набор команд, Flashпамять для программ и большое разнообразие выпускаемых кристаллов, которые совместимы «снизу вверх». Микроконтроллеры данной серии нашли
применение во многих сферах деятельности человека (бытовая техника,
пульты управления для промышленной техники, разнообразные электронные
игрушки, детекторы дыма, датчики температур и т.д.).
Большую роль в популярности данной серии сыграла доступность программного обеспечения, так как корпорация Atmel предоставляла его в свободном доступе, потому что развитые средства поддержки разработок при
работе с микроконтроллерами играют значимую роль не хуже самих кристаллов. В качестве примера можно привести совершенно бесплатную интег-
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
20
рированную среду разработки Atmel Studio (ранее AVR Studio), которая работает на всех версиях Windows.
Еще одной из причин популярности AVR-микроконтроллеров является
использование RISC-архитектуры. По сравнению с CISC-архитектурой, она
характеризуется мощным набором инструкций, многие из которых выполняются за один машинный цикл. Для наглядности на рисунке 7 показано сопоставление количества необходимых тактовых импульсов для выполнения двух
последовательных команд процессорами 68HC05, 80C51, построенные на
CISC-архитектуре и семействами микроконтроллеров PIC и AVR, построенные на RISC-архитектуре.
Рисунок 7 — Сравнение времени выполнения команд различными процессорами
На рисунке видно, что микроконтроллер, использующий RISCархитектуру (AVR), выполняет одну команду в 12 раз быстрее, чем микроконтроллер, использующий CISC-архитектуру (процессор 80С51). Исходя из
этого, AVR-микроконтроллер может работать с быстродействием, сопоставимым с микроконтроллером MCS51, но потреблять значительно меньшую
мощность. Таким образом, AVR-микроконтроллеры представляют более широкие
возможности
регулирования
соотношения
производительно-
сти/энергопотребления, что особенно важно при аккумуляторном способе
питания.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
21
В рамках единой базовой архитектуры микроконтроллеры AVR подразделяются на три семейства:
•
Tiny AVR.
•
Classic AVR;
•
Mega AVR;
Семейство Classic является базовой версией микроконтроллеров AVR.
После выпуска микроконтроллеров второго поколения, данное семейство
фактически заменили остальные два. Семейство Tiny AVR является бюджетной версией микроконтроллеров фирмы «Atmel». Они имеют небольшие
объёмы памяти программ и весьма ограниченную периферию. Семейство
Mega имеет наиболее развитую периферию и лидирует по объёмам памяти
программ и данных среди всех микроконтроллеров AVR.
Для разработки системы управления трёхфазным инвертором на основе
микроконтроллера с развитой периферией в работе будет использован AVRмикроконтроллер, так как он имеет ряд преимуществ:
•
Развитая система команд, включающая от 90 до 133 инструкций;
•
Гарвардская архитектура (раздельные шины памяти программ и
данных);
•
32 регистра общего назначения;
•
Встроенные таймеры/счётчики, порты SPI и UART;
•
Сторожевой таймер, аналоговый компаратор;
•
Диапазон напряжений питания от 1,8 В до 6,0 В [1].
Для работы была выбрана модель Atmega16 семейства микроконтроллеров Mega AVR. Данная модель выпускается в корпусах DIP-40 и TQFP-44.
Цоколёвка первого корпуса показана на рисунке 8.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
22
Рисунок 8 – Цоколёвка микроконтроллера Atmega16
Atmega1
Таймеры/счётчики
тчики
Atmega16 оснащён тремя таймерами/счётчиками T0,
T T1 и T2 общего
назначения. Они могут работать как счётчики внешних событий,
событий так и таймеры от внутреннего источника тактовой частоты.
Таймер/счётчик
тчик T0 (8-разрядный) может выполнять измерения временных интервалов или использоваться как генератор сигналов с широтноимпульсной модуляцией ШИМ (PWM). Таймер/счётчик
тчик Т1
Т (16-разрядный)
способен выполнять те же функции что и Т0, за исключением того, что он
дополнительно может выполнять запоминание своего состояния по внешнему сигналу, а так же работать в качестве ШИМ переменной разрядности (в
Т0 используется фиксированная разрядность).
разрядность Таймер
Таймер/счётчик Т2 (8разрядный) полностью аналогичен таймеру/счётчику
тчику Т0, а при наличии их
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
23
обоих в микроконтроллере, один может работать в асинхронном режиме, а
другой – в качестве счётчика внешних событий.
Настройка таймеров/счётчиков выполняется в регистрах TCCRx. Для
таймера Т0 содержимое данного регистра показано на рисунке 9.
Рисунок 9 — регистр настройки таймера/счётчика Т0 TCCR0
Биты CS00, CS01, CS02 – определяют источник тактового сигнала
микроконтроллера.
Биты WGM00, WGM01 – определяют режим работы таймера/счётчика
Т0.
Биты COM00, COM01 – определяют, как будет вести себя внешний вывод OC0.
Бит FOC0 – служит для принудительного изменения состояния внешнего вывода OC0.
Настройка таймера/счётчика Т2 выглядит идентично (рисунок 10).
Рисунок 10 — регистр настройки таймера/счётчика 2 TCCR2
Так как таймер/счётчик Т1 является 16-разрядным, то регистр настройки разбит на два (TCCR1A и TCCR1B).Эти регистры представлены на рисунках 11 и 12.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
24
Рисунок 11 — регистр настройки таймера/счётчика 1 TCCR1A
Рисунок 12 — регистр настройки таймера/счётчика 1 TCCR1B
Бит ICNC1 – включает схему подавления помех. Если он равен 0, то
схема подавления помех выключена и захват производится по первому активному фронту. Если бит равен 1, то захват производится после четвёртой
одинаковой выборки сигнала захвата.
Бит ICES1 – определяет выбор активного фронта сигнала. Если значение бита равно 0, то активным является спадающий фронт.
Остальные биты были описаны ранее.
У Таймеров/счётчиков в данном проекте основным режимом является
Fast PWM. Данный режим позволяет генерировать высокочастотный сигнал с
переменной частотой и скважностью. Таймеры/счётчики могут создавать запросы прерываний по переполнению и совпадению со счётным регистром,
что позволяет освободить центральное ядро от обязанности периодического
опроса состояния таймеров и переключая процессор на их обслуживание.
Для разрешения прерываний используется регистр TIMSK (рисунок 13).
Рисунок 13 – регистр масок прерывания таймеров/счётчиков TIMSK
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
25
Биты TOIEx – разрешают прерывания по переполнению соответствующих таймеров/счётчиков.
Биты OCIEx – разрешают прерывания по событию «Совпадение» соответствующих таймеров/счётчиков.
Поскольку микроконтроллеры часто применяют в системах реального
времени, таймеры/счётчики являются одним из важных элементов.
Порты ввода/вывода
Atmega16 имеет в своём составе четыре 8-разрядных порта ввода/вывода (порты A, B, C, D). Каждый порт микроконтроллера может быть
запрограммирован на приём или передачу цифровых сигналов. Особенность
портов ввода/вывода у AVR является реализация истинной функциональности вида чтение/модификация/запись, а не чтение/запись, как у распространённых 8-разрядных микроконтроллеров.
Регистр DDRx – предназначен для настройки портов на вход или на
выход. При DDRx = 0 вывод работает как вход, при DDRx = 1 – как выход.
Регистр PORTx – служит для управления состоянием порта. Если порт
функционирует как выход (DDRx = 1), то при PORTx = 1 на ножке микроконтроллера устанавливается логическая единица, и логический 0 при
PORTx = 0. Если порт функционирует как вход (DDRx = 0), то при PORTx =
1 вывод переходит в режим PullUp с подтягивающим резистором в 100 кОм,
который подключается между выводом микроконтроллера и проводом питания. При PORTx = 0 на выводе устанавливается высокоимпедансное состояние.
Это позволяет выполнять операции над любым выводом, не влияя на
другие выводы порта [1].
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
26
3.2 Разработка электрической принципиальной схемы устройства
Принципиальная схема устройства показана на рисунке 14. На данной
схеме, помимо микроконтроллера, основными элементами являются четыре
кнопки SB1 – SB4, два светодиода VD1 и VD2, а также три вывода, через которые снимается генерируемый ШИМ сигнал.
Кнопка SB1 подключена к выводу PB2, который формирует вектор
прерывания INT2. Она отвечает за выбор изменяемых параметров сигнала,
которые заданы в программе.
Кнопка SB2 подключена к выводу RESET и позволяет прервать текущую работу микроконтроллера и выполнить его сброс.
Кнопка SB3 подключена к выводу PD2, который является выводом для
внешнего прерывания INT0. Она отвечает за увеличение значения выбранного с помощью кнопки SB1 параметра сигнала.
Кнопка SB4 подключена к выводу PD3, который является выводом для
внешнего прерывания INT1. Она выполняет обратную функцию кнопки SW3.
Светодиоды VD1 и VD2 необходимы для обозначения выбранного параметра, который на тот момент можно изменять. VD1 обозначает изменение
частоты сигнала, а VD2 – изменение амплитуды.
Выводы PB3, PD5 и PD4 являются стационарными выходами, подключёнными к внутренним таймерам/счётчикам. На данных выводах генерируются ШИМ сигналы, сдвинутые друг относительно друга на 1200. PB3 формирует фазу А, PD5 – фазу В, а PD4 – фазу С.
К выводам XTAL1 и XTAL2 можно подключить генератор тактовых
импульсов. При этом можно использовать разного рода резонаторы. В данном случае к микроконтроллеру подключён внешний кварцевый резонатор с
частотой 16МГц.
Схема подключена к источнику питания с напряжением +5 В.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
27
Рисунок 14 – Схема Atmega16 с развитой периферией
4 Разработка программного обеспечения управляющего микроконтроллера
4.1 Разработка алгоритма основной программы
Перед написанием программы, разумнее будет создать алгоритм для
наглядности её работы. Данный алгоритм показан на рисунке 15.
Основной функцией программного обеспечения является формирование ШИМ сигнала на выводах микроконтроллера, который изменяется по
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
28
синусоидальному закону. Параметры сигнала изменяются за счёт внешних
прерываний от кнопок.
Рисунок 15 – Алгоритм программы
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
29
Программа начинается с инициализации переменных, где задаются их
тип и начальные значения.
int n=0;
int a=0;
int b=60;
int c=60;
int x=0;
int f=120;
float u=0.5;
int button=1;
Также в память микроконтроллера заносится таблица, состоящая из девяноста значений синуса, которые представляют собой четвёртую часть от
полного периода синуса. Данная таблица рассчитывается по следующей
формуле:
[ ] = (sin
∙ ∙
+ 1) ∙ 127.
(3)
int table[]=
{0,1,3,5,8,10,12,14,16,18,21,23,25,27,29,31,33,35,38,40,42,44,46,48,50,52,54,56,
58,60,62,64,65,67,69,71,73,75,76,78,80,82,83,85,86,88,90,91,93,94,96,97,99,100,
101,103,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119,119,120,
121,122,122,123,124,124,125,126,126,126,126,127,127,127,127,127,127,127};
Для создания синусоиды используется регистр сравнения в таймере/счётчике, но так как он 8-разрядный, то амплитуда синуса может меняться
в пределах от 1 до 255. Поэтому для использования только четверти периода
была введена константа 128, которая необходима для создания полного периода. Для каждой четверти периода создается своя формула, так например,
для первой четверти данная формула имеет следующий вид:
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
30
% & = 128
.
(4)
Перебирая все значения таблицы в порядке возрастания,
возрастания формируется
первая четверть.
четверть Во второй четверти используется эта же формула,
формула но таблица синуса уменьшается от 90 до 0. В третьей и четвёртой
ртой четвертях данные
действия происходят аналогично первой и второй
ой четверти соответственно,
но с учётом того
того, что формула будет иметь следующий вид
вид:
%&
128 )
(5)
Рисунок 16 – Формирование синуса
Константы a, b,, c необходимы для задания сдвига фаз в 120o между
сигналами. Задав им разные значения, можно создать сдвиг фаз
фаз.
После записи переменных идёт настройка таймеров
ов/счётчиков и портов
ввода/вывода. Также настраиваются необходимые прерывания
прерыван от разных источников. Все эти регистры были более подробно описаны ранее.
ранее
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
31
int main(void)
{
sei();
TCCR0=0b01101001;
TCCR1A=0b10100001;
TCCR1B=0b00001001;
TCCR2=0b00001011;
DDRA=0b11111111;
DDRB=0b11111011;
PORTB |= (1<<2);
DDRD=0b11110011;
PORTD=0b00001100;
TIMSK=0b10011010;
GICR=0b11100000;
MCUCSR |= (0<<ISC2);
Таймеры/счётчики 0 и 1 работают в режиме Fast PWM («Быстродействующий ШИМ») и заносят в регистр сравнения OCRх значения, рассчитанные по нужной формуле для каждого участка периода. Когда значение счётчика достигнет значения регистра сравнения OCRх, устанавливается флаг
прерывания TOVх регистра TIFR, где и формируются ШИМ сигналы. Так
как таймер/счётчик T1 является 16-разрядным, его необходимо настроить на
8-разрядный режим, и, исходя из этого, можно получить два 8-разрядных
счётчика.
Вышеуказанные значения синуса являются 1/4 периода. Полный период состоит из 360 отсчетов, где каждая тока равна одному градусу. Константа
«x» будет отслеживать период, и изменять свое значение от 0 до 360. Для
этого используем оператор SWITCH со структурой выбора CASE. Оператор
SWITCH дает специальный способ выбора одного из многих вариантов, который заключается в проверке совпадения значения данного выражения с
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
32
одной из заданных констант и соответствующем ветвлении [4]. Для этого будет использоваться константа «n», которая в зависимости от «x» будет присваивать значения от 0 до 11. Из этого получатся 12 отрезков периода, каждый из которых будет иметь свой набор формул.
Таймер/счётчик 2 работает в режиме CTC (Clear Timer on Compare) или
«сброс при совпадении». В этом режиме счётный регистр функционирует как
обычный счётчик. При достижении счётчиком значения, который будет равен регистру сравнения OCR2, таймер/счётчик будет уходить в прерывание
[1]. В регистре OCR2 записывается число (константа «f»), изменяя которое,
можно изменять частоту выхода в прерывание, где происходит формирование синусоид. Таким образом, можно менять частоту сигнала.
ISR (TIMER2_COMP_vect)
{
x++;
if ((x>0)&(x<30))
{ n = 0;}
if ((x>30) & (x<60))
{ n = 1;}
if ((x>60) & (x<90))
{ n = 2;}
if ((x>90) & (x<120))
{ n = 3;}
if ((x>120) & (x<150))
{ n = 4;}
if ((x>150) & (x<180))
{ n = 5;}
if ((x>180) & (x<210))
{ n = 6;}
if ((x>210) & (x<240))
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
33
{ n = 7;}
if ((x>240) & (x<270))
{ n = 8;}
if ((x>270) & (x<300))
{ n = 9;}
if ((x>300) & (x<330))
{ n = 10;}
if ((x>330) & (x<360))
{ n = 11;}
switch (n)
{
case 0:
OCR0=u*(128+table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128+table[c]);
a++;
b++;
c--;
break;
case 1:
OCR0=u*(128+table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128+table[c]);
a++;
b--;
c--;
break;
case 2:
OCR0=u*(128+table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128-table[c]);
a++;
b--;
c++;
break;
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
34
И так далее для всего периода. Полный код всей программы представлен в приложении А.
Для настраивания параметров выходного сигнала используются кнопки, которые работают от внешних прерываний INTx. Прерывания INT0 и
INT1 служат для увеличения и уменьшения параметров сигнала соответственно. Для разрешения внешних прерываний предназначен регистр GICR,
структура которого показана на рисунке 17.
Рисунок 17 – регистр разрешения внешних прерываний GICR
Биты INT0, INT1, INT2 – разрешают внешние прерывания от соответствующих событий.
Для изменения амплитуды сигнала используется константа «u», которая имеет тип float. При «u» равной 1 амплитуда выходного сигнала будет
максимальной.
ISR (INT0_vect) // увеличивать
{
switch (button)
{
case 1:
if (f>5)
{
f=f-5; // Увеличить частоту
OCR2=f;
}
break;
case 2:
if (u<1)
{
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
35
u=u+0.1; // Увеличить амплитуду
}
break;
}
}
ISR (INT1_vect) // уменьшать
{
switch (button)
{
case 1:
if (f<250)
{
f=f+5; // Уменьшить частоту
OCR2=f;
}
break;
case 2:
if (u>0.1)
{
u=u-0.1; // уменьшить амплитуду
}
break;
}
}
С помощью внешнего прерывания INT2 выбирается регулируемый параметр. Когда константа «button» равна 1, то регулируется частота ШИМ
сигналов, в случае, когда «button» равна 2, изменяется амплитуда. Оба режима регулирования обозначаются на схеме светодиодами, подключёнными к
порту A.
В программе используются порты А, B и D. Порты настроены на выход
за исключением пинов к которым подключены кнопки.
ISR (INT2_vect)
{
button++;
if (button>2)
{
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
36
button=1;
}
PORTA=button;
}
Полный код всего программного обеспечения приведён в Приложении А.
4.2 Отладка программного обеспечения
При создании данного программного обеспечения была использована
среда разработки Atmel Studio 7, а симуляция схемы и отладка программы
была произведена в среде Proteus 7 Professional.
Atmel Studio 7
Данная программа представляет собой бесплатную проприетарную интегрированную среду разработки (ИСР), которая может работать как на ассемблере, так и на С/С++. Atmel Studio поддерживает компилятор GCC и
плагин AVR RTOS (операционная система реального времени), содержит в
себе редактор исходного кода, менеджер проектов, виртуальный симулятор.
Благодаря поддержке нескольких языков программирования, пользователи
могут выбрать наиболее оптимальный язык для выполняемой задачи. Так же
визуальные инструменты облегчают создание программы.
Помимо компиляции программы, AVR Studio позволяет отлаживать
программу ещё на этапе разработки. AVR Studio эмулирует работу выбранного микроконтроллера, таймеров/счётчиков, всех портов ввода/вывода,
ШИМ и АЦП. Эмуляцию работы ранее созданной программы можно увидеть
на рисунке 18.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
37
Рисунок 18 – Atmel Studio 7
Важным замечанием является то, что эмулировать работу программы
можно только при отсутствии ошибок. Поэтому во время компиляции
программы, имеющиеся ошибки не позволят отладить программу.
Proteus 7 Professional
Proteus – это пакет программ для моделирования схем и печатных плат.
Данный пакет состоит из системы схемотехнического моделирования,
которая
базируется
на
основе
моделей
электронных
компонентов.
Отличительной особенностью данной программы является возможность
моделирования работы программируемых устройств: микропроцессоры,
микроконтроллеры, цифровые сигнальные процессоры (DSP) и прочие.
Библиотека компонентов содержит справочные данные. Дополнительно в
пакет Proteus входит система проектирования печатных плат. Пакет Proteus
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
38
состоит из двух частей, двух подпрограмм: ISIS – программа синтеза и
моделирования непосредственно электронных схем и ARES – программа
разработки печатных плат. Вместе с программой устанавливается набор
демонстрационных проектов для ознакомления.
Пакет является коммерческим. Бесплатная ознакомительная версия характеризуется полной функциональностью, но не имеет возможности сохранения файлов.
Благодаря связке программных пакетов Atmel Studio и Proteus возможно программирование микроконтроллеров без наличия какой-либо материальной базы.
4.3 Моделирование работы программного обеспечения
Моделирование работы программного обеспечения производится в
программе Proteus 7 Professional. Схема, собранная в данной программе, показана на рисунке 19.
Результаты, полученные с помощью осциллоскопа, показаны на рисунках 20 – 24.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
39
Рисунок 19 – Моделирование схемы в программе Proteus 7 Professional
Рисунок 20 – ШИМ сигнал
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
40
Рисунок 21 – Трёхфазная синусоидальная система 375 Гц 4,45 В
Рисунок 22 – Трёхфазная синусоидальная система 375 Гц 0,46 В
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
41
Рисунок 23 – Трёхфазная синусоидальная система 1 Гц 4,47 В
Рисунок 24 – Трёхфазная синусоидальная система 1 Гц 0,51 В
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
42
Данные осциллограммы показывают работоспособность программы и
спроектированного устройства. Его задачей является формирование трёхфазной синусоидальной системы с регулируемыми параметрами. Частоту можно
изменять в диапазоне от 1 до 400 Гц с шагом в 5 Гц. Амплитуда регулируется
от 0 до 4,5 В с шагом в 0,5 В.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
43
ЗАКЛЮЧЕНИЕ
После выполнения бакалаврской работы, в ней можно выделить две
основные главы:
−
анализ предметной области, где были исследованы способы фор-
мирования трёхфазного синусоидального сигнала, а также рассмотрены их
достоинства и недостатки;
−
разработка программного обеспечения микроконтроллера – был
разработан алгоритм программы с возможностью изменения параметров выходного сигнала.
Созданный в данной работе код позволяет существенно экономить финансовые и временные ресурсы в процессе разработки и анализа систем прикладной области. При разработке данной программы ставилась цель формирования трёхфазной синусоидальной системы с регулируемой частотой и амплитудой.
Таким образом, разработанный код будет полезен для решения аналогичных задач программирования конкретной прикладной области. Благодаря
способности расширяемости, разработчики могут применять в данном программном продукте свои модули для увеличения области применения.
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
44
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.
Евстифеев А. В. Микроконтроллеры AVR семейств Tiny и Mega
фирмы «Atmel» / А. В. Евстифеев. – М.: Издательский дом «Додэка – XXI»,
2004. – 560 с.
2.
Забродин Ю. С. Промышленная электроника: Учебник для вузов /
Ю. С. Забродин. – М.: Высш. школа, 1982. – 496 с.
3.
Калачев Ю.Н. Векторное регулирование (заметки практика) :
Методическое пособие / Ю. Н. Калачев. – М.: ЭФО, 2013. – 63 с.
4.
Керниган Б. У. Язык программирования С : пер. с англ. / Б. У.
Керниган. – 2-е издание. – М. : Издательский дом «Вильямс», 2009. – 304 с.
5.
Кулик В. Д. Силовая электроника. Автономные инверторы,
активные преобразователи: учебное пособие / В. Д. Кулик. – СПб. : ГОУВПО
СПбГТУРП, 2010. – 90 с.
6.
Попков О.З. Основы преобразовательной техники: учеб. пособие
для вузов / О.З. Попков. – 2-е изд., стереот. – М.: Издательский дом МЭИ,
2007. – 200 с.
7.
Способ управления трёхфазным инвертором напряжения с ШИМ
и устройство для его осуществления : пат. 2091979 Рос. Федерация : МПК7 Н
02 М 53/9 / И. М. Ляус, П. В. Ефимов, Б. Л. Сыркин ; заявитель и
патентообладатель Вангомаш – № 1996101706 ; заявл. 06.06.96, Бюл. № 9
8.
Способ
формирования
широтно-импульсных
сигналов
управления автономного инвертора : пат. 2326486 Рос. Федерация : МПК7 Н
02 М 53/95 / В. М. Иванов ; заявитель и патентообладатель Ульяновск. тех.
ин-т. – № 2007112871/09 ; заявл. 06.04.07, Бюл. № 16. – 8 с.
9.
Устройство управления трехфазным автономным инвертором
напряжения : пат. 168344 Рос. Федерация : МПК7 Н 02 М 53/86 / Д. А.
Матвеев, А. Ю. Бальзамов ; заявитель и патентообладатель ЭЛАВТ-МГУ – №
2016121806 ; заявл. 01.06.16, Бюл. № 4
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
45
ПРИЛОЖЕНИЕ А
(обязательное)
Текст программы
#include <avr/io.h>
#include <avr/interrupt.h>
int table[]=
{0,1,3,5,8,10,12,14,16,18,21,23,25,27,29,31,33,35,38,40,42,44,46,48,50,52,54,56,
58,60,62,64,65,67,69,71,73,75,76,78,80,82,83,85,86,88,90,91,93,94,96,97,99,100,
101,103,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119,119,120,
121,122,122,123,124,124,125,126,126,126,126,127,127,127,127,127,127,127};
int n=0; // выбор case
int a=0; //
int b=60; // для 3-х фаз
int c=60; //
int x=0; // координата 0-360 (для синуса)
int f=120; // частота
int button=1; // выбор частота (1) или амплитуда (2)
float u=0.5; // амплитуда
//______________________________________ ТАЙМЕРЫ
ISR (TIMER0_OVF_vect) // фаза А
{
}
ISR (TIMER0_COMP_vect)
{
}
ISR (TIMER1_OVF_vect)
// фаза B
{
}
ISR (TIMER1_COMPA_vect)
{
}
ISR (TIMER1_COMPB_vect)
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
46
{
}
ISR (TIMER2_OVF_vect) // фаза C
{
}
ISR (TIMER2_COMP_vect)
{
x++;
if ((x>0)&(x<30))
{ n = 0;}
if ((x>30) & (x<60))
{ n = 1;}
if ((x>60) & (x<90))
{ n = 2;}
if ((x>90) & (x<120))
{ n = 3;}
if ((x>120) & (x<150))
{ n = 4;}
if ((x>150) & (x<180))
{ n = 5;}
if ((x>180) & (x<210))
{ n = 6;}
if ((x>210) & (x<240))
{ n = 7;}
if ((x>240) & (x<270))
{ n = 8;}
if ((x>270) & (x<300))
{ n = 9;}
if ((x>300) & (x<330))
{ n = 10;}
if ((x>330) & (x<360))
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
47
{ n = 11;}
switch (n)
{
case 0:
OCR0=u*(128+table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128+table[c]);
a++;
b++;
c--;
break;
case 1:
OCR0=u*(128+table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128+table[c]);
a++;
b--;
c--;
break;
case 2:
OCR0=u*(128+table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128-table[c]);
a++;
b--;
c++;
break;
//______________________________________________
case 3:
OCR0=u*(128+table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128-table[c]);
a--;
b--;
c++;
break;
case 4:
OCR0=u*(128+table[a]);
OCR1A=u*(128+table[b]);
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
48
OCR1B=u*(128-table[c]);
a--;
b++;
c++;
break;
case 5:
OCR0=u*(128+table[a]);
OCR1A=u*(128+table[b]);
OCR1B=u*(128-table[c]);
a--;
b++;
c--;
break;
//__________________________________________
case 6:
OCR0=u*(128-table[a]);
OCR1A=u*(128+table[b]);
OCR1B=u*(128-table[c]);
a++;
b++;
c--;
break;
case 7:
OCR0=u*(128-table[a]);
OCR1A=u*(128+table[b]);
OCR1B=u*(128-table[c]);
a++;
b--;
c--;
break;
case 8:
OCR0=u*(128-table[a]);
OCR1A=u*(128+table[b]);
OCR1B=u*(128+table[c]);
a++;
b--;
c++;
break;
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
49
//_____________________________________
case 9:
OCR0=u*(128-table[a]);
OCR1A=u*(128+table[b]);
OCR1B=u*(128+table[c]);
a--;
b--;
c++;
break;
case 10:
OCR0=u*(128-table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128+table[c]);
a--;
b++;
c++;
break;
case 11:
OCR0=u*(128-table[a]);
OCR1A=u*(128-table[b]);
OCR1B=u*(128+table[c]);
a--;
b++;
c--;
if (x>359)
{ x=0; }
break;
}
}
//______________________________________ Кнопки
ISR (INT0_vect) // увеличивать
{
switch (button)
{
case 1:
if (f>5)
{
f=f-5; // Увеличить частоту
OCR2=f;
}
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
50
break;
case 2:
if (u<1)
{
u=u+0.1; // Увеличить амплитуду
}
break;
}
}
ISR (INT1_vect) // уменьшать
{
switch (button)
{
case 1:
if (f<250)
{
f=f+5; // Уменьшить частоту
OCR2=f;
}
break;
case 2:
if (u>0.1)
{
u=u-0.1; // уменьшить амплитуду
}
break;
}
}
ISR (INT2_vect)
{
button++;
if (button>2)
{
button=1;
}
PORTA=button;
}
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
51
int main(void)
{
sei(); // разрешить прерывания
TCCR0=0b01101001;
TCCR1A=0b10100001;
TCCR1B=0b00001001;
TCCR2=0b00001100;
DDRA=0b11111111;
DDRB=0b11111011;
PORTB |= (1<<2);
DDRD=0b11110011;
PORTD=0b00001100;
TIMSK=0b10011010; // разрешить прерывания таймеров
GICR=0b11100000;
MCUCSR |= (0<<ISC2);
while (1)
{
OCR2=f;
}
}
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
52
ПРИЛОЖЕНИЕ Б
(обязательное)
Формирование синусоиды с помощью тиристоров
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
53
ПРИЛОЖЕНИЕ В
(обязательное)
Широтно-импульсная модуляция
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
54
ПРИЛОЖЕНИЕ Г
(обязательное)
Пространственно-векторная ШИМ
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
55
ПРИЛОЖЕНИЕ Д
(обязательное)
Алгоритм программы
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
56
ПРИЛОЖЕНИЕ Е
(обязательное)
Электрическая принципиальная схема устройства
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
57
ПРИЛОЖЕНИЕ Ж
(обязательное)
Временные диаграммы
ÁÐ – 02069964 – 11.03.04 – 14 – 18
Èçì Ëèñò
Äàòà
¹ äîêóì.
Ïîäï.
Ëèñò
58
Отзывы:
Авторизуйтесь, чтобы оставить отзыв