Lập trình cài đặt trên vi điều khiển 61

Một phần của tài liệu Nghiên cứu và thiết kế bộ điều khiển nạp acquy từ nguồn năng lượng mặt trời (Trang 61 - 70)

L ỜI MỞ ĐẦU 5

9.Lập trình cài đặt trên vi điều khiển 61

- Cấu hình cho dspic30f2020:

#include <p30F2020.h>

#include <adc10.h>

_FOSCSEL(FRC_PLL)

_FOSC(CSW_FSCM_OFF & FRC_HI_RANGE & OSC2_CLKO)

_FPOR(PWRT_128) _FGS(CODE_PROT_OFF) _FBS(BSS_NO_FLASH) - Đọc tín hiệu từ ADC 4 kênh : void Init_ADC0(void) {

ADCON = 0x2003; // CHO PHEP ADC HOAT DONG O 4 CHAN B0, B1, B2, B3

ADCPC0 = 0xC3C3; // lien ket voi PWM//

_ADIF = 0; //Xoa co ngat ADC

_ADCP0IF = 0; //---

ADSTATbits.P0RDY = 0; //XOA co bao data is ready

_ADCP1IF = 0; //---

ADSTATbits.P1RDY = 0; //XOA co bao data is ready

_ADIE = 1; //Cho phep ngat ADC

_ADON = 1; // cho phep ADC hoat dong

void _ISR _ADCInterrupt(void) //ham ngat cua adc

{

_ADIF = 0; // xoa co ngat

_ADCP0IF = 0; //xoa co ngat

ADSTATbits.P0RDY=0; //xoa bit bao du lieu

_ADCP1IF = 0; //xoa co ngat

ADSTATbits.P1RDY=0; //xoa bit bao du lieu

// to do code here voltageIn=(ADCBUF0/1023)*5*G1; // pin B0: đọc tín hiệu điện áp vào currentIn=(ADCBUF1/1023)*5*G2; voltageOut=(ADCBUF2/1023)*5*G3; currentOut=(ADCBUF3/1023)*5*G4; }

- Khởi tạo khối PWM đểđiều khiển 1 van ở chếđộđộc lập tần số băm xung là f=50Khz

void Init_MCPWM(void)

{

PTPER = (Fcy/Fpwm)*2-1; //Dat thanh ghi chu ky voi tan so PWM = 50 kHz

SEVTCMP = PTPER; //su kien dac biet duy nhat là khi bo dem bang PTPER

PWMCON1 = 0x00 // thanh ghi dieu khien pwm1, dung rieng PDCx,lo dead_time

PHASE1 = PTPER; // khoi tao period cho pwm1

// duty=Ton/T * PTPER

IOCON1 = 0xC400; //hoat dong o che do independent,

PTCON = 0x8000; //Kich hoat module PWM

}

- Module điều khiển theo các chếđộ P, PI, PID:

float Kp = 0.02, Ti = 0.0055, Td = 0;

unsigned char SystemStatus = Stop;

unsigned short int Vset = 48, Vreal = 0;

unsigned int Duty = 0;

unsigned int Fpwm = 0;

unsigned int ControlLaw = PI_Law;

unsigned int PIDEnable = 0;

unsigned int TimeOutSampleTime = 0;

unsigned char ControlType = AutoControl;

signed int Ek = 0,Ek_1 = 0,Ek_2 = 0;

void PIDExecute() { Ek_2 = Ek_1; Ek_1 = Ek; Ek = Iref - Iin; if(ControlLaw == P_Law) { Duty = (float)Ek*Kp;

if (Duty > MaxDutyValue) Duty = MaxDutyValue;

}

else if(ControlLaw == PI_Law)

{

Duty += (float)(Ek - Ek_1)*Kp + (float)SampleTime/Ti*(float)Ek_1;

if (Duty >= MaxDutyValue) Duty = MaxDutyValue;

}

else if (ControlLaw == PID_Law)

{

Duty += (float)(Ek - Ek_1)*Kp +

(float)SampleTime/Ti*(float)Ek_1 + (float)Td/SampleTime*(float)(Ek - 2*Ek_1 - Ek_2);

if (Duty >= MaxDutyValue) Duty = MaxDutyValue;

}

SetDuty();

}

- Thiết lập chu kỳđiều khiển

unsigned int TimeOutSend = 0;

extern unsigned short int DelayTime;

extern unsigned int TimeOutSampleTime;

extern unsigned short int ADCValue;

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

void _ISR _T1Interrupt()

if(TimeOutSend > 0) TimeOutSend--; if(DelayTime > 0) DelayTime--; if(TimeOutSampleTime > 0) { TimeOutSampleTime--; } else { TimeOutSampleTime = SampleTime; PIDExecute(); } _T1IF = 0; } //================================== void InitTimer() { TMR1 = 0;

// Tcy = 1/30 us + prescaler = 1:1 => cu 1000us timer 1 tran => PR1 = 1000*30

PR1 = 30000;

_T1IF = 0;

_T1IE = 1;

Chương 4 Kết quđánh giá

Thử nghiệm đánh giá kết quả:

Thực nghiệm 1: Trong thời gian chưa có điều kiện về nguồn cấp và hệ tải acquy. Chúng ta set up hệ thử nghiệm với đầu vào là acquy 12V, đầu ra tải là hệ

LED bố trí như sau :

Hình 4.1: Thử nghiệm tải LED cho bộ biến đổi

Hệ thống lắp đặt có thểđiều khiển cường độ ánh sáng LED thông qua các giá trị dòng và áp đầu vào và đầu ra của bộ DC-DC

Kết quả thu được :

- Bộ biến đổi DC-DC Cuk thực hiện đúng như tính toán lý thuyết, khi thay đổi duty cycle ta thay đổi được dòng điện và điện áp ra như mong muốn

Thực nghiệm 2: nạp năng lượng mặt trời vào acquy, khi thay thế đầu vào bằng pin NLMT, đầu ra là 1 acquy 12V, setup các thông số cho hệ thống hoạt động thu

được kết quả:

- Thay đổi công suất nạp bằng cách thay đổi dòng nạp vào acquy, đã tìm được

điểm cho công suất lớn nhất.

Điểm chưa đạt

- Phần xử lý tín hiệu đo chưa lọc được như ý muốn, nên mạch bảo vệ phần cứng đôi lúc tác động

- Khi thay nhiều acquy thì công suất nạp thấp vì lúc này điện áp đầu ra lớn,

điện áp đầu vào lớn theo, theo đường đặc tính lúc này I giảm mạnh Hướng phát triền

- Thiết kế bộđiều khiển thích nghi, để thực hiện cho các điều kiện tải thay đổi nhiều

Kết lun

Đề tài “Nghiên cu và thiết kế b điu khin np acquy t ngun năng lượng mt tri” đã thực hiện được nhiều điểm mấu chốt trong việc sử dụng năng lượng mặt trời ở dạng điện năng để nạp cho hệ acquy sử dụng cho các mục đích khác nhau. Tôi còn nhiều điểm hạn chế khi thực hiện trong đề tài. Tôi mong muốn sau đề tài vẫn còn có thể thực hiện hoàn thiện và đưa vào thực tế trong quá trình học tập cũng như công tác của tôi.

Một lần nữa tôi xin chân thành cảm ơn đến thầy TS. Lưu Hồng Việt và Bộ môn Cơ Khí Chính Xác và Quang học – Viện Cơ khí đã tạo mọi điều kiện về kiến thức và cơ sởđể tôi thực hiện để tài này.

TÀI LIU THAM KHO

[1]D.C. Riawan and C.V. Nayar, Analysis and Design of a Solar Charge Controller Using Cuk Converter, Power Engineering Conference, 2007. AUPEC 2007. Australasian Universities

[2]TAMER T.N. KHATIB, A. MOHAMED,N. AMIN and K. SOPIAN, An Efficient Maximum Power Point Tracking Controller for Photovoltaic Systems Using New Boost Converter Design and Improved Control Algorithm,

[3]TAMER T.N. KHATIB, A. MOHAMED,N. AMIN and K. SOPIAN, An Efficient Maximum Power Point Tracking Controller for Photovoltaic Systems Using New Boost Converter Design and Improved Control Algorithm,

[4]Takehara, N., Kurokami, S., Power control apparatus and method and power generating system using them. Patent US5,654,883, 1997

[5]Phang, J.C.H., Chan, D.S.H. , Phillips, J.R. Accurate analytical method for the extraction of solar cell, Electron. Lett. Vol.20, 1984

[6]Faranda, R. , Leva, S. Energy comparison of MPPT techniques for PV Systems. WSEAS Transactions on Power Systems, Vol. 3, 2008

[7]Nguyễn Phùng Quang, Matlab và simulink dành cho kỹ sư điều khiển tự động,

Nhà xuất bản khoa học kỹ thuật, 2005

[8]Nguyễn Phùng Quang, Slide môn học Điều khiển số, 2008

[9]Nguyễn Doãn Phước, Phan Xuân Minh, Lý thuyết điều khiển tuyến tính, Nhà xuất bản Khoa học kỹ thuật, 2007

[10] HeberttSira-Ramírez and RamónSilva-Ortigoza, Control design Techniques in Power Electronics Device, Springer

Một phần của tài liệu Nghiên cứu và thiết kế bộ điều khiển nạp acquy từ nguồn năng lượng mặt trời (Trang 61 - 70)