Преобразователь постоянного напряжения инвертирующего типа с цифровым управлением

Автор работы: Пользователь скрыл имя, 19 Декабря 2013 в 02:55, курсовая работа

Краткое описание

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

Содержание

1. Постановка задачи. 3
2. Принципиальная схема понижающего преобразователя напряжения. 4
3. Блок-схема алгоритма работы основных функций программы. 5
4. Результаты, полученные в ходе проведения эксперимента. 7
5. Код программы. 10
6. Список литературы……...…………………………………………………….13

Прикрепленные файлы: 1 файл

Kursovoy_proekt_Shtrinyov.docx

— 414.88 Кб (Скачать документ)

Министерство  образования РФ

РГРТУ

 

Кафедра тоР

 

 

 

 

Курсовой проект по дисциплине

«Микропроцессорная техника  в системах электрооборудования».

 

Тема:

«Преобразователь постоянного напряжения инвертирующего типа с цифровым управлением».

 

Вариант 3.1.

 

 

 

 

Выполнил: студент группы 9111:

Трепалин Е.С.           

          Проверил: доцент кафедры ТОР

Линович А. Ю.

 

 

 

 

 

Рязань 2013

Оглавление

 

1. Постановка  задачи. 3

2. Принципиальная  схема понижающего преобразователя  напряжения. 4

3. Блок-схема алгоритма работы основных функций программы. 5

4. Результаты, полученные в ходе проведения эксперимента. 7

5. Код программы. 10

6. Список литературы……...…………………………………………………….13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Постановка задачи.

 

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

 

Таблица 1. Исходные данные.

№ 
варианта

Uвх
В

Uвых
В

Rн
Ом

L , 
мГн

FШИМ
кГц

3.1

12,0

-4.5 

200

10

25


 

Ёмкость конденсатора в силовой части  схемы одинакова для всех вариантов: C = 100 мкФ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Принципиальная схема понижающего преобразователя напряжения.

 

 

3. Блок-схема алгоритма работы основных функций программы.

 

 

4. Результаты, полученные в ходе проведения эксперимента.

 

Рисунок 3. Напряжение на нагрузке для схемы  без обратной связи.

 

 

Канал 1 – импульсы, подаваемые с отладочной платы «eZdspTMS320F2808».

Канал 2 – напряжение на нагрузке.

Отклонение напряжения = 0,8В.

 

 

 

 

Рисунок 4. Напряжение на нагрузке для схемы  с обратной связью.

 

Канал 1 – импульсы, подаваемые с отладочной платы «eZdspTMS320F2808».

Канал 2 – напряжение на нагрузке.

 

 

 

 

Рисунок 5. Пульсации выходного напряжения.

 

Канал 1 – импульсы, подаваемые с отладочной платы «eZdspTMS320F2808».

Канал 2 – напряжение на нагрузке.

Пульсации напряжения примерно равны 100мВ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5. Код программы.

 

//######################################################

 

#include "DSP280x_PieVect.h" // Стандартная таблица

// векторов PIE

#include "DSP280x_Device.h" // Основной заголовоч-

// ный файл DSP280x

#include "DSP280x_Examples.h" // Файл стандартных оп-

// ределений и настроек

#include <math.h>  // Файл математических функций

 

// Константы для начальной настройки  блока EPWM1

#define EPWM1_TIMER_TBPRD  3999 // Период следования

// импульсов  = 3999 + 1

#define EPWM1_MIN_CMPA     1079 // MIN_CMPA (основной

// уровень)

 

 

 

// Прототипы (объявления) функций  и процедур обработки

// прерываний.

void InitEPwm1Example(void);

interrupt void timer0_isr(void);

 

 

// Глобальные переменные.

Uint16 Voltage1[1000]; // Отсчёты, поступившие с АЦП.

int E;

float x=1079;

 

 

 

 

void main(void)

{

  int i;

 

 

  InitSysCtrl(); // Настройка основных параметров

// управления  системой: PLL, стороже-

// вого таймера и тактовой синхрони-

// зации периферийных устройств.

 

  // Перенастройка HISPCP на режим  SYSCLKOUT / 8.

  // То есть тактовая частота  периферийных устройств

  // равна 12.5МГц (100/8).

  EALLOW;

  SysCtrlRegs.HISPCP.all = 0x0004;

  EDIS;

 

   

////////////////////////////////////////////////////////

// Настройка системы прерываний  и таблицы PIE-векторов /

 

  DINT;   // Запрещение прерываний

// (Disable INTerrupts)

  InitPieCtrl();  // Инициализация регистров

//управления PIE (PieCtrlRegs)

  IER = 0x0000;  // Interrupt Enable Register

  IFR = 0x0000;  // Interrupt Flag Register

  InitPieVectTable(); // Инициализация и разрешение

// таблицы  векторов PIE

 

 

  // Внесение своих изменений  в таблицу векторов PIE

  EALLOW;

  PieVectTable.TINT0 = &timer0_isr;

  EDIS;

// Разрешение прерывания от таймера  (DSP280x_PieVect.h)

  PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

 

 

////////////////////////////////////////////////////////

/// Настройка таймера CPU-Timer 0 (DSP280x_CpuTimers.c)

  InitCpuTimers();  // Настройка вспомогательных

// параметров

  ConfigCpuTimer(&CpuTimer0, 100, 40); // Настройка

// основных  параметров:

// тактовая  частота = 100 МГц,

// период = 40 мкс (25 кГц).

 

////////////////////////////////////////////////////////

/// Настройка АЦП (DSP280x_Adc.c)

  InitAdc();   // Настройка вспомогательных

// параметров

  AdcRegs.ADCMAXCONV.all = 0x0001; // Разрешение

     // двух каналов конвейера SEQ1

  AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;// Разрешение

// запуска  SEQ1 по импульсу

// SOCA от блока ШИМ

 

////////////////////////////////////////////////////////

/// Настройка GPIO на передачу сигнала  от блока ШИМ-1 /// (DSP280x_EPwm.c)

  InitEPwm1Gpio();

 

////////////////////////////////////////////////////////

/// Настройка параметров блока  ШИМ-1

  InitEPwm1Example();

 

  EINT; // Разрешение глобального прерывания INTM

// (для  отладки программы)

 

  IER |= M_INT1; // Разрешение прерываний группы 1 (в

// том  числе от таймера CPU-Timer 0)

 

    StartCpuTimer0(); // Запуск таймера

 

                                                                                                                                                                                                       while(1);   // Вечный цикл

}

 

 

// Процедура обслуживания прерывания  от блока CPU-Timer0

interrupt void timer0_isr(void)

{

 

  static int t = 0;

  t ++;

  if(t >= 256) t = 0;

 

  // Подтверждение прерывания группы 1

  PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

 

 

  // Измерение напряжения на входе АЦП

  // АЦП 12-разрядный, поэтому  младшие 4 разряда пустые

  Voltage1[t] = AdcRegs.ADCRESULT0 >> 4;

  E = 1000 - Voltage1[t];

  x = x + E*0.001;

  if (x>2000) x=2000;

  EPwm1Regs.CMPA.half.CMPA=x;

  return;

 

}

 

 

 

// Функция установки первоначальных  настроек блока ШИМ-1

void InitEPwm1Example()

{

  // Настройка тактовой синхронизации  (TBCLK)

 

  // Отмеряемый период:

  EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD;

  // Порог CMPA:

  EPwm1Regs.CMPA.half.CMPA = EPWM1_MIN_CMPA;

  // Начальная фаза равна нулю:

  EPwm1Regs.TBPHS.half.TBPHS = 0x0000;

  // Обнуление счётчика:

  EPwm1Regs.TBCTR = 0x0000;

  // Счёт на увеличение:

  EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;

  // Запрет загрузки по синхроимпульсу  EPWMxSYNCI:

  EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;

  // Делитель частоты SYSCLKOUT:

  EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;

  EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

 

 

  // Установка теневых регистров в нуль

  EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;

  EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;

  EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;

  EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

 

 

  // Выбор вариантов реакции на события

  EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // По НУЛЮ выход

// PWM1A = «1»

  EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; // По ПЕРЕСЕЧЕНИЮ

  // ПОРОГА A ВВЕРХ выход PWM1A = «0»

 

  EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET; // По НУЛЮ выход

// PWM1B = «1»

  EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR; // По ПЕРЕСЕЧЕНИЮ

      // ПОРОГА B ВВЕРХ выход PWM1B = «0»

 

 

  // Сигналы запуска АЦП

  EPwm1Regs.ETSEL.bit.SOCAEN = 1; // Разрешение

// импульса SOC-A

  EPwm1Regs.ETSEL.bit.SOCASEL = 4; // Привязка SOC к

     // пересечению CPMA вверх

  EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Выработка им-

    // пульса SOC по 1-му (каждому) событию

 

 

  // Настройка прерываний в  блоке ШИМ-1

  // Прерывание по достижению  НУЛЯ

  EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;

 

  // Прерывание по 1-му событию

  EPwm1Regs.ETPS.bit.INTPRD = ET_1ST;

 

// Разрешение прерывания

  EPwm1Regs.ETSEL.bit.INTEN = 1;

}

 

//======================================================

 

 

 

 

6. Список литературы

  1. Бесекерский В.А., Попов Е.П. Теория систем автоматического регулирования. — М.: Наука, 1975. — 768 с.
  2. Герман-Галкин С.Г. Силовая электроника: Лабораторные работы на ПК. — СПб.: Учитель и ученик, КОРОНА принт, 2002. — 304 с.
  3. Программирование цифровых сигнальных контроллеров.: Метод. указ. к лаб. работам / А.В. Кистрин, А.Ю. Линович. — Рязань: РГРТУ, 2009. — 76 с.
  4. Теория автоматического управления: Учеб. для вузов. / Под ред. А.А. Воронова. — М.: Высш. шк., 1986. — 367 с.
  5. Черных И.В. Моделирование электротехнических устройств в MATLAB, SimPowerSystems и Simulink. — М.: ДМК Пресс; СПб.: Питер, 2008. — 288 с.
  6. http://www.ti.com
  7. http://www.irf.ru

 

 

 


Информация о работе Преобразователь постоянного напряжения инвертирующего типа с цифровым управлением