Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование микропроцессорных систем управления подвижного состава железных дорог. Учебное пособие по дисциплинам «Автоматизированные и микропроц.pdf
X
- •ВВЕДЕНИЕ
- •1. Платформа Arduino UNO
- •1.1 Описание аппаратной части
- •2.1 Основы языка программирования С/С++
- •2.2 Арифметические операторы
- •2.2.1 Оператор присваивания
- •2.2.2 Сложение, вычитание, умножение и деление
- •2.2.3 Вычисление остатка от деления
- •2.3 Логические операторы
- •2.6.1 Условные операторы
- •2.6.1.1 Условный оператор if
- •2.6.1.2 Условный оператор if..else
- •2.6.1.3 Оператор switch…case
- •2.6.2 Операторы реализации циклических вычислений
- •2.6.2.1 Оператор цикла for
- •2.6.2.2 Оператор цикла while
- •2.6.2.3 Оператор цикла do...while
- •2.6.3 Оператор break
- •2.6.4 Оператор continue
- •2.6.5 Оператор return
- •2.6.6 Оператор перехода goto
- •2.7 Операции над битами
- •2.8 Составные операторы
- •2.8.1 Операторы ++ (инкремент) и – – (декремент)
- •2.8.2 Операторы += , –= , *= , /= , %=
- •2.8.3 Оператор &= и |=
- •2.9 Математические функции
- •2.9.2 Вычисление модуля числа
- •2.9.3 Ограничение числа заданным диапазоном
- •2.9.4 Масштабирование переменной
- •2.9.5 Возведение числа в степень
- •2.9.6 Вычисление квадратного корня числа
- •3. Ввод-вывод сигналов
- •3.2 Вывод дискретных сигналов digitalWrite()
- •3.3 Ввод дискретных сигналов digitalRead().
- •3.4 Ввод аналоговых сигналов analogRead()
- •3.5 Вывод аналоговых сигналов analogWrite()
- •4. Практические задания
- •5. Основы алгоритмизации
- •6. Элементы математической логики
- •7.1 Макетная плата
- •7.2 Постоянный резистор
- •7.3 Переменный резистор
- •7.4 Тактовая кнопка DTS-61N
- •7.5 Светодиод видимого спектра свечения
- •7.6 Четыре компаратора LM239N
- •7.7 Шесть логических элементов НЕ SN74HC04N
- •7.8 Приоритетный шифратор 8 в 3 SN74HC148N
- •7.9 Датчик угла поворота EXW1J-C24-AC0024L
- •7.11 Полевой транзистор IRF530NPBF
- •7.12 Дроссель Д25
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ
- •СОДЕРЖАНИЕ

// ширина импульса определяется как value*15
//--------------------------------------------
for (int j = 0; j<SEGMENT_COUNT; ++j)
{
boolean enableSegment = bitRead(value, j);
digitalWrite (j+FIRST_SEGMENT_PIN,
enableSegment);
}
Channel_A_Signal_Last=Channel_A_Signal;
Channel_B_Signal_Last=Channel_B_Signal;
}
Порядок выполнения работы
1. В соответствии с выданным заданием, рассчитать ширину им-
пульса на выходе генератора.
2. Собрать устройство в соответствии с принципиальной схемой
(рисунок 4.20).
Рисунок 4.20 – Принципиальная схема установки для
исследования генератора с ШИМ.
81

3. Подключить осциллограф к выходу PWM_Out микроконтрол-
лера.
4. Изменяя при помощи энкодера заданное значение ширины
импульса, наблюдать соответствующие изменения на экране
осциллографа.
5. Установив заданное значение ширины импульса (в соответ-
ствии с вариантом), получить осциллограмму сигнала на выходе генератора ШИМ (записать на съёмный USB диск), по осциллограмме определить временные характеристики этого
сигнала, сопоставить полученное значение с расчётным.
6. Оформить отчёт по работе
Содержание отчёта
1. Наименование, цель работы.
2. Принципиальная схема устройства.
3. Экспериментально полученная зависимость выходных сигна-
лов энкодера.
4. Схемы разработанных алгоритмов.
5. Дополненный в соответствии с разработанным алгоритмом
текст программы lab_4_2.
6. Расчёт ширины импульса в соответствии с заданием.
7. Результаты измерений.
8. Заключение по работе, содержащее результаты исследования
энкодера и генератора ШИМ.
Широтно-импульсный преобразователь
постоянного напряжения.
Цель работы
Изучение способа управления импульсным преобразователем
постоянного напряжения, допускающего реверсирование коллекторного электродвигателя. Закрепление навыков разработки алгоритмов управления, реализующих порядково-временное связывание событий.
Краткие теоретические сведения
Импульсные преобразователи используют в системах управления электроприводами с коллекторными двигателями, в том
числе и на электроподвижном составе, для плавного регулирования напряжения, приложенного к двигателю, а следовательно, и
частоты вращения якоря электродвигателя (рисунок 4.21).
82

При помощи импульсного преобразователя реализуют следу-
= var,
:
к
ющие способы регулирования напряжения U
– частотно-импульсное, τ = const, t
– широтно-импульсное, τ = var, t
п
= const.
п
Рисунок 4.21 – Структурная схема (а) и диаграмма работы в квази-
стационарном режиме (б) импульсного
преобразователя
На электроподвижном составе железных дорог применение
находит способ широтно-импульсного регулирования напряжения, при котором управление напряжением на зажимах тяговых
электродвигателей осуществляется путём изменения величины
коэффициента заполнения импульсного цикла k = τ / t
:
п
U
= (τ / t
к
) · Uкс. (4.5)
п
Известно, что величина электромагнитного момента M
на
э
валу электродвигателя (рисунок 4.21, а) постоянного тока определяется в соответствии со следующим выражением:
= с
М
· iд · Ф, (4.6)
э
м
где с
– постоянная электрической машины;
м
– величина тока якоря, А;
i
д
Ф – величина магнитного потока, создаваемого обмот-
кой возбуждения, Вб.
Очевидно, что для изменения направления вращения якоря
необходимо при неизменном направлении тока якоря изменить
83

направление магнитного потока Ф, создаваемого обмоткой возбуждения, для чего изменяют направление тока в обмотке возбуждения, или при неизменном направлении тока в обмотке возбуждения изменить направление тока в обмотке якоря.
При выполнении работы используется коллекторный двигатель с постоянными магнитами, поэтому единственной возможностью для реверсирования двигателя является изменение тока
якоря. Для этого можно использовать реверсивный импульсный
преобразователь (рисунок 4.22) на транзисторах. Как видно,
направление тока, протекающего через обмотку якоря а, следовательно, и его направление вращения, зависят от того, какая пара
транзисторов (VT1 и VT4, или VT2 и VT3) использована для подклю-
чения нагрузки к источнику питания.
Рисунок 4.22 – Принципиальная схема реверсивного импульсного
преобразователь и диаграммы, поясняющие способ
реверсирования электродвигателя
Для управления транзисторами преобразователя удобно использовать генераторы ШИМ микроконтроллера, принцип действия которых рассмотрен в разделе 4.4. Для сопряжения выходов
микроконтроллера с выводами, управляющими включением/выключением транзисторов (на схеме (рисунок 4.22) ни к чему не подключены) используют специальные микросхемы, т.н. «драйверы».
Назначением драйвера является приведение параметров сигнала
на выходе микроконтроллера к параметрам, необходимым для
управления транзисторами уровня сигнала (как правило, усиление
по мощности), создание необходимых электрических цепей для
подключения транзисторов преобразователя, разделение высоковольтных цепей преобразователя и управляющего микроконтрол-
84

лера. В некоторых устройствах, для обеспечения последней функции в драйвере предусмотрена гальваническая оптоэлектронная
развязка цепей управления и силовых.
При выполнении данной работы используются микросхемыдрайверы транзисторов верхнего и нижнего уровней мостового
преобразователя IR2101 [15]. Для создания системы управления
преобразователем необходимы две микросхемы-драйвера – для
пар транзисторов VT1 и VT2, а также для VT3 и VT4. В преобразова-
11
теле работают мощные MOSFET
транзисторы IRF530NPbF [16].
Принципиальная схема установки приведена на рисунке
4.23. Для управления величиной выходного напряжения предназначены контакты SA1.1 и SA1.2 датчика угла поворота, направлением вращения – кнопки SA2 и SA3. Для индикации выбранного
направления вращения служат светодиоды HL2 – HL4. Светодиод
HL1 предназначен для индикации состояния генератора ШИМ, вне
зависимости от направления вращения.
Подготовка к работе
1. Изучить принципиальную схему установки. Выделить на
схеме следующие части: микроконтроллер с органами управления и индикации режимов работы; драйверы транзисторов
с необходимыми дополнительными внешними компонентами
(обвязкой); импульсный преобразователь напряжения.
2. Проанализировать программу управления импульсным пре-
образователем.
11
MOSFET – полупроводниковая структура, применяемая при
производстве микросхем и дискретных полевых транзисторов. Полупроводниковые приборы на основе этой структуры называют
МОП-транзисторами (от слов «металл-оксид-полупроводник»,
англ. metal-oxide-semiconductor field effect transistor, сокращённо
«MOSFET»), МДП-транзисторами (от слов «металл-диэлектрик-полупроводник») или транзисторами с изолированным затвором
(так как у таких транзисторов затвор отделён от канала тонким
слоем диэлектрика). В отличие от биполярных транзисторов, которые управляются током, транзисторы с изолированным затвором
управляются напряжением, так как, по причине изолированного
управляющего электрода (затвора) такие транзисторы обладают
очень высоким входным сопротивлением.
85

Рисунок 4.23 – Принципиальная схема установки исследования
импульсного регулятора
#define FIRST_SEGMENT_PIN 4
// Установка первого вывода индикатора
#define SEGMENT_COUNT 3
// Установка числа разрядов в индикаторе
byte Channel_A_pin=7; // Канал А энкодера
byte Channel_B_pin=8; // Канал B энкодера
byte forward_pin=2; // Кнопка «Вперёд»
byte revers_pin=3; // Кнопка «Назад»
86

byte PWM_Out_led=9; // «Контрольный» ШИМ
byte PWM_CW=10; // ШИМ на VT1, VT4
byte PWM_CCW=11; // ШИМ на VT2, VT3
byte forward_led_pin=4; // Индикатор «Вперёд»
byte zero_led_pin=5; // Индикатор «Ноль»
byte revers_led_pin=6; // Индикатор «Назад»
boolean Channel_A_Signal, Channel_B_Signal,
Channel_A_Signal_Last, Channel_B_Signal_Last;
boolean forward_pin_signal,
forward_pin_signal_last,
revers_pin_signal, revers_pin_signal_last;
int value; // Управляющая величина для ШИМ
byte direction;
byte forward=B001;
byte zero=B010;
byte revers=B100;
//-------------------------------------------void setup()
{
value=0;
Channel_A_Signal=false;
Channel_B_Signal=false;
Channel_A_Signal_Last=false;
Channel_B_Signal_Last=false;
forward_pin_signal=false;
forward_pin_signal_last=false;
revers_pin_signal=false;
revers_pin_signal_last=false;
direction=zero;
pinMode (Channel_A_pin, INPUT);
pinMode (Channel_B_pin, INPUT);
pinMode (forward_pin, INPUT);
pinMode (revers_pin, INPUT);
pinMode (PWM_Out_led, OUTPUT);
pinMode (PWM_CW, OUTPUT);
pinMode (PWM_CCW, OUTPUT);
for (int j = 0; j<SEGMENT_COUNT; ++j)
{
pinMode (j+FIRST_SEGMENT_PIN, OUTPUT);
}
}
boolean Click(int pin, boolean old_stat)
87

{
boolean stat=digitalRead(pin);
if (stat!=old_stat)
{
delay (1);
stat=digitalRead(pin);
if (stat!=old_stat)
{
return stat;
}
}
}
void loop()
{
Channel_A_Signal=Click(Channel_A_pin,
Channel_A_Signal_Last);
Channel_B_Signal=Click(Channel_B_pin,
Channel_B_Signal_Last);
forward_pin_signal=Click(forward_pin,
forward_pin_signal_last);
revers_pin_signal=Click(revers_pin,
revers_pin_signal_last);
if (forward_pin_signal == HIGH &&
forward_pin_signal_last == LOW)
{
if (direction != forward) {value=0;}
if (direction == revers) {direction = zero;}
else {direction = forward;}
}
if (revers_pin_signal == HIGH &&
revers_pin_signal_last == LOW)
{
if (direction != revers) {value=0;}
if (direction == forward){direction = zero;}
else {direction = revers;}
}
if (direction!=zero)
{
if (Channel_A_Signal == HIGH &&
Channel_A_Signal_Last == LOW &&
88

Channel_B_Signal == LOW) {++value;}
if (Channel_B_Signal == HIGH &&
Channel_B_Signal_Last == LOW &&
Channel_A_Signal == LOW) {--value;}
if (value>15){value=15;}
if (value<0){value=0;}
}
//-------------------------------------------
analogWrite(PWM_Out_led, value*17);
if (direction == zero)
{
analogWrite(PWM_CW, 0);
analogWrite(PWM_CCW, 0);
}
else
if (direction == forward)
{ analogWrite(PWM_CW, value*17);}
else { analogWrite(PWM_CCW, value*17); }
//--------------------------------------------
for (int j = 0; j<SEGMENT_COUNT; ++j)
{
boolean enableSegment =
bitRead(direction, j);
digitalWrite (j+FIRST_SEGMENT_PIN,
enableSegment);
}
Channel_A_Signal_Last=Channel_A_Signal;
Channel_B_Signal_Last=Channel_B_Signal;
revers_pin_signal_last=revers_pin_signal;
forward_pin_signal_last=forward_pin_signal;
}
3. На основании выполненного анализа, составить граф перехо-
дов между допускаемыми состояниями («вперёд», «назад»,
«ноль») системы управления.
4. Выделить фрагменты программы, формирующие реакцию си-
стемы на нажатие кнопок «вперёд» или «назад» при нахождении системы управления в любом из допустимых состояний.
5. Модернизировать программу таким образом, чтобы исклю-
чить из графа переходов состояние «ноль». Переход из одного
состояния в другое должен сопровождаться установкой на выходе генератора ШИМ нулевого сигнала.
89

6. Составить схемы алгоритмов, реализующих пункты 3, 4 и 5.
Порядок выполнения работы
1. Собрать часть установки в соответствии с принципиальной
схемой, содержащую микроконтроллер с органами управления и индикации.
2. Ввести базовый вариант программы. Исследовать работу уста-
новки.
3. Ввести модернизированный в соответствии с п. 5 подготовки
к работе программу, исследовать работу установки.
4. Подключив предварительно подготовленную часть схемы, со-
держащую драйверы транзисторов преобразователя и преобразователь с нагрузкой, исследовать работу импульсного преобразователя напряжения в соответствии с двумя вариантами
программы.
Содержание отчёта
1. Наименование, цель работы.
2. Принципиальная схема устройства.
3. Текст программы.
4. Графы изменения состояний системы управления.
5. Схемы алгоритмов, реализующих исходный и
модифицированный графы переходов между состояниями
системы.
6. Результаты исследования работы импульсного
преобразователя.
7. Заключение по работе.
Автономный инвертор напряжения с широтно-
импульсной модуляцией
Цель работы
Изучение принципа действия и способа управления однофазным автономным инвертором напряжения. Закрепление навыков
разработки алгоритмов управления статическими преобразователями.
Краткие теоретические сведения
Инвертором называют статический преобразователь, предназначенный для преобразования постоянного напряжения (инверторы напряжения) или тока (инверторы тока) в переменное напря-
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
