Программная реализация управления выпрямителем
Разработка программы управления однофазным однополупериодным выпрямителем в среде LabVIAW и AVRstudio. Контроллер как средство измерения и управления схемой, применение компьютера в качестве управляющего устройства для расчета параметров и индикации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.06.2013 |
Размер файла | 295,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Задание
Написать программу управления однофазным однополупериодным выпрямителем в средах LabVIAW и AVRstudio.
На рис.1, а показан однофазный однополупериодный управляемый выпрямитель.
Рис.1 однофазный однополупериодный управляемый выпрямитель а-схема, б-график выходного напряжения
Тиристор не проводит ток в отрицательную полуволну питающего напряжения (изображена пунктиром на рис. 1, б). Но и в положительную полуволну тиристор открывает цепь тока только после того, как на управляющий электрод будет подан импульс управления. В этот момент тиристор открывается и в цепи появляется ток. Сопротивление тиристора резко уменьшается, и все напряжение питания оказывается приложенным к нагрузке. После этого тиристор теряет управление и закрывается только после того, как анодное напряжение снизится до нуля и ток через теристор станет равным нулю. В отрицательную полуволну тиристор не работает. В следующий положительный полупериод опять необходимо подать управляющий импульс, который открывает тиристор.
Величина выходного напряжения выпрямителя в зависимости от угла регулирования:
1. Параметры настройки контроллера
1.1 Ацп
МК ATmega8 номер вывода подключенного к входу АЦП задается с помощью регистра ADMUX - регистр мультиплексора АЦП. Давайте посмотрим какие биты за что отвечают в этом регистре.
Биты 7:6 - REFS1:REFS0. Биты выбора опорного напряжения
REFS1:REFS0
2 AREF
2 Avcc, с внешним конденсатором на AREF
10 Резерв
11 Внутренний 2.56В источник, с внешним конденсатором на AREF
Бит 5 - ADLAR. Выравнивание по левому краю в регистровой паре.
Биты 3:0 - MUX3:MUX0 - Биты выбора аналогового канала.
MUX3:0
2 ADC0
2 ADC1
0010 ADC2
0011 ADC3
0100 ADC4
0101 ADC5
0110 ADC6
0111 ADC7
ADCSR - регистр контроля и состояния АЦП. В МК Atmega8 он называется ADCSRA.
Бит 7 - ADEN. Разрешение АЦП.
Бит 6 - ADSC. Запуск преобразования (в режиме однократного преобразования)
Бит 5 - ADFR. Выбор режима работы АЦП
Бит 4 - ADIF. Флаг прерывания от АЦП. Бит устанавливается, когда преобразование закончено.
Бит 3 - ADIE. Разрешение прерывания от АЦП
Биты 2:1 - ADPS2:ADPS0. Тактовая частота АЦП
ADPS2:ADPS0
2 СК/2
2 СК/2
010 СК/4
011 СК/8
100 СК/16
101 СК/32
110 СК/64
111 СК/128
1.2Аналоговый компаратор
ACSR
Бит 7 - ACD: бит выключения компаратора.
Бит 6 - ACBG: выбор опорного напряжения аналогового компаратора.
Бит 5 - ACO: выход компаратора.
Бит 4 - ACI: флаг прерывания компаратора.
Бит 3 - ACIE: разрешение прерывания от компаратора.
Бит 2 - ACIC: подключение выхода компаратора к схеме захвата Таймера/Счетчика1. Бит 1:0 - ACIS1:ACIS0: настройка условий срабатывания прерываний от компаратора.
00 Прерывание по изменению на выходе
01 Зарезервировано
10 Прерывание по спаду
11 Прерывание по фронту
1.3 Таймеры счетчики
TCCRnA - регистр управления A
Биты 7:6 - COMnA 1:0: контролируют поведение выхода OCnA
Биты 5:4 - COMnB 1:0: контролируют поведение выхода OCnB
00 Выключен
01 Переключение уровня на противоположный
10 Переключение в «0»
11 Переключение в «1»
Биты 3:2 - FOCnA, FOCnB: принудительное изменение состояния выходов OCnA и OCnB.
Биты 1:0 - WGMn1, WGMn0:настройка ТСn для работы в качестве широтно-импульсного модулятора
TCCRnB - регистр управления В
Бит 7 - ICNCn: подавление дребезга на входе ICPn.
Бит 6 - ICESn: выбор фронта срабатывания прерывания по захвату..
Бит 5 - не используется
Биты 4:3 - WGMn 3:2: настройка ШИМ.
Биты 2:0 - CSn 2:0: выбор тактирования ТСn
000 Нет источника (таймер выключен)
001 CLK
010 CLK/8
011 CLK/64
110 Внешний источник тактирования. По спаду.
TIMSK - регистр маски прерываний таймеров/счетчиков
Бит 7 - OCIE2: прерывание по совпадению ТС2
Бит 6 - TOIE2: прерывание по переполнению ТС2
Бит 5 - TICIE1: прерывание по захвату ТС1
Бит 4 - OCIE1A: прерывание по совпадению A ТС1
Бит 3 - OCIE1B: прерывание по совпадению В ТС1
Бит 2 - TOIE1: прерывание по переполнению ТС1
Бит 1 - не используется
Бит 0 - TOIE0: прерывание по переполнению ТС0
TIFR - регистр флагов прерываний таймеров/счетчиков
2. Реализация в пакете LabVIAW
Рис 2(Общий вид программы, схема)
Рис. 3 (Общий вид программы, интерфейс)
На (рис.2) показана схема программы выполняющая генирацию синусоидального сигнала, вычисление угла регулирования в зависимости от величины заданного выходного напряжения. Вывод входного,выходного и среднего выходного напряжения и пусковых импульсов тиристора. Так же организованна обратная связь по напряжению. В подпрограмме «Генерация sin» (рис. 4) используя матиматическую функцию «sin» для вычисления Uвх с шагом 1 электрический градус но заданному параметру Um. с помощью функции «tan» генерируется шум ограниченный по аплитуде ±10В.
Рис. 4 (Генерирование входного сигнала)
В подпрограмма «Компаратор» реализуется гистерезисный компаратор (рис. 5). Программа возвращает значение логической единицы если, Uвх?Верхнего порога привозрастании сигнала, а при спаде входного напряжения при Uвх?Нижнего порога.
Рис. 5(Компаратор)
Подпрограмма «Регулирование угла управления» (рис. 6) расчитывает теоритическое значение угла регулирования альфа по формуле:
.
Cравнивает значение Uвых заданного с Uвых и при равенстве значений выводит теоритически расчитанный угол альфа, а при неравенстве выводит значение
.
Рис. 6 (Расчет угла регулирования)
Uсред - среднее значение выходного напряжения. Вычисляется с помощью стандартной функции интегрирования.
В подпрограмме «Генерация импульсов» (рис. 7) формируется конечное число импульсов и выходной сигнал в зависимости от угла регулирования. Отсчет угла регулирывания ведется по принципу: увеличение значения счетчика I на единицу равно увиличению времени на один электрический градус. Из выше сказанного следует, для того что бы отложить б надо запомнить значение счетчика I в момент срабатывания компаратора и вычитая это значение из текущего, а затем сравнивать с б. Что и реализованно в подпрограмме. Ширина импульса и период импульса задается в электрических градусах. Для подачи импульсов строится счетчик который в каждый такт цикла главной программы прибавляет единицу к предыдущему значению. Начинается счет с угла б и обнуляется при достижении значением счетчика величины периода импульса, а возвращает логическую единицу только при значениях счетчика меньшем ширины импульса. Счетчик обнуляется при отключении компаратора.
Для отсчета количества импульсов так же используется счетчик который запускается с момента времени б и возвращает логическую единицу до значения 3*Период импульса. Счетчик обнуляется при отключении компаратора.
Формируется конечное число импульсов с помощью трёхвыводного элемента И который учитывает части программы: формирование задержки включения, формирование коротких импульсов и отсчет количества импульсов. При значении выхода всех трёх частей программы логической единицы на выходе селектора значение амплитуды импульса, а при логическом нуле значение на выходе 0.
Рис.7 (Генерация импульсов)
Результат выполнения программы показан на рис.8. Выходное напряжение незначительно откланяется от заданного при переходе через 0, дребезг отсутствует, что достигается благодаря гистерезисному компаратору. Три импульса управления высокой частоты уменьшают габариты согласующего устройства.
Рис.8 (результат выполнения программы)
3. Реализация в пакете AVRStudio
3.1 Параметры схемы
Для написания программы зададим входные и выходные параметры Um=310B, Uвых=70В. Расчитаем значение б по формуле
б=65°.
Выбираем микроконтроллер, в котором должно быть: ацп, аналоговый компоратор, прерывание таймера по совпадению значений регистров и шим. По этим параметрам выбираем контроллер Atmega8a.
Параметры схемы включения контроллера:
Uacd0=1,4 В
ДUain1=0...2.44 B
Uain1(переключение компаратора)=1.22 В
4.2. Код программы.
1. .include "m8def.inc" ;
2. .def temp =r16 ;
3. .def ygl =r17 ;
4. .def tp =r18 ;
5. .def uvx =r19 ;
6. .def prom =r20 ;
7. .def imp =r21 ;
8. .DEVICE Atmega8 ;
9. .cseg ; Начало программного сегмента
10. .org 0x000 ;
11. rjmp init ;переход на метку(часть инициализации)
12. ;таблица векторов прерываний
13. ;rjmp RESET
14. rjmp INT_0
15. rjmp INT_1 ;
16. .org 0x003
17. rjmp TIMER2_COMP
18. rjmp TIMER2_OVF
19. rjmp TIMER1_CAPT
20. rjmp TIMER1_COMPA
21. rjmp TIMER1_COMPB
22. rjmp TIMER1_OVF
23. .org 0x009 ;
24. rjmp TIMER0_OVF
25. rjmp SPI_STC ;
26. rjmp USART_RXC ;
27. rjmp USART_UDRE ;
28. rjmp USART_TXC ;
29. .org 0x00e ;
30. rjmp ADC_CC ;
31. rjmp EE_RDY ;
32. .org 0x010 ;
33. rjmp ANA_COMP ;
34. rjmp TWI ;
35. rjmp SPM_RDY ;
36. RESET : reti
37. INT_0: reti
38. INT_1 : reti
39. ;TIMER2_COMP : reti
40. TIMER2_OVF : reti
41. TIMER1_CAPT : reti
42. TIMER1_COMPA: reti
43. TIMER1_COMPB : reti
44. TIMER1_OVF : reti
45. ;TIMER0_OVF : reti
46. SPI_STC : reti
47. USART_RXC : reti
48. USART_UDRE : reti
49. USART_TXC: reti
50. EE_RDY : reti
51. TWI: reti
52. SPM_RDY: reti
53. ;ANA_COMP : reti
54. init: ;
55. ldi tp,low(RAMEND) ;
56. out SPL,tp ;
57. ldi tp,high(RAMEND) ;
58. out SPH,tp
59. ;
60. clr tp ;
61. out ddrc,tp ;
62. ser tp ;
63. out ddrb,tp ;
64. ldi tp,0b00111111 ;
65. out ddrd,tp ;
66. ;настройка ацп
67. ldi tp,0b00100000
68. out admux,tp
69. ldi tp,0b10001011
70. out adcsra,tp
71. ;компаратор
72. ldi tp,0b01101111
73. out acsr,tp
74. ldi tp,0b00000000
75. out sfior,tp
76. ;настройка таймера 2
77. ldi tp,0b00000000
78. out assr,tp
79. ldi tp,0b00000000
80. out tccr2,tp
81. ldi tp,0b00000000
82. out tcnt2,tp
83. ldi tp,0b10000000
84. out timsk,tp
85. ldi tp,0b11111111
86. out ocr2,tp
87. ; настройка таймера 0
88. sbi toie0,0 ; прерывание по переполнению таймера
89. ldi tp,0 ;
90. out tccr0,tp ; таймер выключен
91. sei ; разрешение глобальных прерываний
92. clr tp
93. clr ygl
94. clr imp
95. ldi prom,65; установка номинального значения угла регулирования
96. sbi ADCSRA, 6 ; разрешение единичного преобразования ацп
97. wa:
98. cpi imp,9 ; смотрим сколько прошло импульсов
99. breq v3 ; если прошло 5 импульсов переходим на метку
100. cp temp,ygl ; сравниваем текущего угла с углом включения
101. breq v2 ; если ровны перейти на метку
102. rjmp wa ; переход на метку w
103. v2: ;
104. sbi PortD,0 ; подать импульс управления
105. ldi tp,0b00000010 ; пред делитель на 8
106. out tccr2,tp ; запуск импульсов
107. cbi acsr,7 ; запускаем компаратор
108. sbi ADCSRA, 6
109. clr imp
110. rjmp wa ; переход на метку w
111. v3:
112. clr imp
113. ldi tp,0b00000000 ; останавливаем импульсы
114. rjmp wa
115. ;значение ацп
116. ADC_CC: ;
117. mov ygl,prom ; угол=65
118. in uvx,adch ; считываем значение старшего байта ацп
119. ror uvx ; делим на 2 получаем значение в вольтах
120. cpi uvx,70 ; сравниваем с номинальным
121. breq v1 ; если равно переходим на метку
122. subi uvx,70 ; вычитаем номинальное значение
123. sub ygl,uvx ; прибавляем разность к углу регулирования
124. v1: ;
125. reti ; выход из прерывания
126. ;компаратор
127. ANA_COMP:
128. sbi acsr,7 ;выключаем компаратор
129. clr temp ;обнуляем значение счетчика
130. ldi tp,0b00000010 ;
131. out tccr0,tp ;запускаем таймер 0
132. ldi tp,227 ;
133. out tcnt0,tp
134. reti ;выход из прерывания
135. ;таймер 2 генерация импульсов высокой частоты
136. TIMER2_COMP:
137. sbic portd,0 ;если бит в порту установлен пропускаем следующую строчку
138. sbi portd,0 ;устанавливаем нулевой бит порта D в 1
139. sbis portd,0 ;если бит в порту сброшен пропускаем следующую строчку
140. cbi portd,0 ;устанавливаем нулевой бит порта D в 0
141. inc imp ;увеличиваем счетчик на 1
142. reti ;
143. ;таймер0
144. TIMER0_OVF: ;
145. inc temp ;увеличиваем счетчик на 1
146. out tcnt0,tp ;устанавливаем начальный момент счета частота прерываний 18кГц
147. reti ;выход из прерывания
148. .exit
4.3. Принцип работы программы.
После окончания настройки контроллера разрешается единичное преобразование ацп и программа входит в главный цикл. В главном цикле (строки 97-114) происходит включение и выключение импульсов управления. При срабатывании аналогов компаратора (компаратор настроен на прерывание по фронту, и работы от внутреннего источника опорного напряжения 1.23В) происходит переход в подпрограмму обработки прерывания (строки 127-134). В подпрограмме сразу запрещается прерывание компаратора для того, чтобы избавиться от дребезга при переходе ерез ноль. Обнуляется значение регистра temp, который отвечает за отсчет градусов. Запускается таймер0 с пред делителем тактовой частоты микроконтроллера на 8, и установлено начальное значение счета 227.
Частота прерывания таймера 0 примерно 18кГц, что достигается за счет установки начального значения регистра tcnt0=227. При переполнении таймера вызывается подпрограмма прерывания (строки 143-147). В подпрограмме увеличивается на одно значение регистра temp.
При окончании преобразования ацп, вызывается прерывание. В подпрограмме (строки 116-125) считывается значение выходного напряжения выпрямителя равное половины величины старшего байта ацп (adch/2) и высчитывается угол регулирования по формуле ygl=65+(70- adch/2)
При достижении значения регистра temp=ygl в главном цикле включается импульсы управления, за которые отвечает таймер2: частота импульсов равна f=4МГц/256/8/2=976Гц настройка прерывания таймера по совпадению регистров tcnt2 и ocr2 позволяют увеличить частоту; для уменьшения частоты надо изменить значение пред делителя на 32. Число импульсов равно (9+1)/2=5 строка 98, меняя значение числа, можно менять количество подаваемых импульсов (число обязательно должно быть не четным). После прохождения заданного числа импульсов в главном цикле программы включается аналоговый компаратор и ацп.
3.4 Схема включения контроллера
Заключение
выпрямитель программа схема
Графический интерфейс языка программирования LabVIEW позволяет относительно быстро писать приложения под Windows и управлять устройством с компьютера. Недостатком является высокая стоимость аппаратуры фирмы National Instruments.
Недостатком 8ми битных контроллеров AVR является скудный математический аппарат и как следствие на них практически невозможно вести сложный пересчет данных. Но при этом у контроллеров широкие технические возможности.
Наличие одинаковых интерфейсов передачи у AVR и у LabVIEW позволяет объединить контроллер с компьютером. ПК, в таком случае будет является управляющим устройством, на котором выполняется расчет параметров и индикации, а контроллер в свою очередь является устройством измерения и управления схемой.
Размещено на Allbest.ru
Подобные документы
Разработка функциональной и принципиальной схемы. Выбор управляющего контроллера. Описание МК PIC16F626, МК AVR, МК 51. Выбор элементной базы. Разработка управляющей программы. Описание алгоритма работы программы. Схема устройства, листинг программы.
курсовая работа [492,9 K], добавлен 28.12.2012Проект программы, имитирующей автоматизированную систему управления светофором. Установка QNX 6.5 на виртуальную машину, ее графические возможности. Описание виджетов приложения; разработка GUI. Алгоритм функционирования программы контроллера управления.
курсовая работа [823,2 K], добавлен 24.05.2015Разработка управляющего микропроцессорного устройства, реализующего заданное взаимодействие с объектом управления, особенности аппаратного и программного обеспечения. Программные средства системы, обеспечивающие выполнение заданного алгоритма управления.
курсовая работа [95,4 K], добавлен 25.10.2009Устройство и назначение однокристальных микроконтроллеров, сферы их применения. Разработка контроллера для управления домашней метеостанцией: расчет принципиальной схемы и характеристика ее элементов, выбор датчиков. Описание программы управления.
курсовая работа [280,3 K], добавлен 28.12.2012Применение, функции и элементы контроллеров. Функциональная структура системы управления движением поездов. Этапы проектирования контроллера для модели железной дороги на основе микропроцессора. Реализация машинной модели, блок-схема и листинг программы.
курсовая работа [744,6 K], добавлен 08.11.2009Требования к системе оперативного управления на предприятии. Входная и выходная информация. Алгоритм решения задачи по учету оказания услуг производственного характера, его программная реализация. Оценка экономической эффективности поставленной задачи.
курсовая работа [4,2 M], добавлен 13.10.2017Разработка принципиальной схемы, выбор управляющего микроконтроллера. Общий алгоритм работы программы. Блок анализа и реализации команд, принятых от персонального компьютера. Описание используемых интерфейсов. Формат данных RS-232C, листинг программы.
курсовая работа [1,2 M], добавлен 26.12.2012Устройство и назначение однокристальных микроконтроллеров, сферы их применения. Разработка контроллера для управления роботизированной платформой, ориентированной на движение по напольной линии. Расчет функциональной и принципиальной схемы управления.
курсовая работа [540,6 K], добавлен 28.12.2012Теоретическое исследование вопроса и практическое применение. Общие сведения о графах. Алгоритм Дейкстры. Особенности работы в среде. Программная реализация. Описание алгоритма и структуры программы. Описание программных средств. Текст программы.
курсовая работа [1,0 M], добавлен 27.11.2007Разработка программы учета занятости компьютеров в лаборатории. Анализ требований, метод решения. Разработка алгоритма в виде структурных схем. Программная реализация в среде Borland Delphi. Минимальные системные требования для ее корректной работы.
дипломная работа [6,3 M], добавлен 10.06.2013