Tải bản đầy đủ (.pdf) (27 trang)

hệ thống tối ưu hóa khả năng thu nhận ánh sáng pin năng lượng mặt trời

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.8 MB, 27 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

KỸ THUẬT LẬP TRÌNHCƠ ĐIỆN TỬ

<i>HỆ THỐNG TỐI ƯU HÓA KHẢNĂNG THU NHẬN ÁNH SÁNGPIN NĂNG LƯỢNG MẶT TRỜI</i>

<b>Giáo viên hướng dẫn: TS. Trương Công Tuấn Sinh viên thực hiện: Lê Anh Đức 20184388</b>

Lê Hồng Dương 20184410Hàn Văn Hào 20184438Hà Nội, 2/ 2022

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>BẢN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN</b>

Giáo viên hướng dẫn: Ts. Trương Công Tuấn

Sinh viên thực hiện : Lê Anh Đức, Lê Hồng Dương, Hàn Văn HàoLớp : Kĩ thuật lập trình 129407

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>NỘI DUNG TRÌNH BÀY</b>

<b><small>I.ĐẶT VẤN ĐỀ ... 4 </small></b>

<b><small>1.TÌNH HÌNH THỰC TẾ ... 4 </small></b>

<b><small>2.CHỌN GIẢI PHÁP ... 5 </small></b>

<b><small>II.TÍNH TỐN & THIẾT KẾ ... 7 </small></b>

<b><small>1.SƠ ĐỒ GIẢI THUẬT ... 7 </small></b>

<b><small>2.LỰA CHỌN THIẾT BỊ VÀ THIẾT KẾ CƠ KHÍ ... 8 </small></b>

<b><small>1.CODE GIAO DIỆN: ... 18 </small></b>

<b><small>2.CODE VI ĐIỀU KHIỂN BẰNG UART ... 22 </small></b>

<b><small>VI.TÀI LIỆU THAM KHẢO ... 26 </small></b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>I.ĐẶT VẤN ĐỀ</b>

<b>1. TÌNH HÌNH THỰC TẾ</b>

Dựa theo bản đồ bức xạ mặt trời, Miền Trung và Miền Nam có tổng bức xạ là 5kW/h/m2/ ngày. Tương đương từ 2000 – 2600 giờ nắng một năm. Miền Bắc tầm 4kW/h/m2 tương đương với 1500 – 1700 giờ nắng mỗi năm. Các tỉnh miền Bắc tuy thưa số giờ nắng nhưng vẫn cao hơn rất nhiều so với mặt bằng chung các nước Châu Âu. Đây là lợi ích đầu tiên khi khai thác điện năng lượng mặt trời. Sử dụng điện mặt trời giúp tiết kiệm tối đa chi phí tiền điện cho các hộ gia đình, doanh nghiệp, các mơ hình thương mại dịch vụ. Khơng những vậy, người tiêu dùng cịn có thể bán điện mặt trời tạo ra thu nhập tự động khi lắp song song với lưới điện Quốc gia. Mỗi hệ thống điện năng lượng mặt trời có thể hoạt động đến 20 Năm, tối đa chi phí đầu tư. bên cạnh đó hệ thống tận dụng khơng gian chết là mái nhà của bạn để lắp đặt. Khơng tốn sự vậnhành, chi phí bảo dưỡng thấp,lắp đặt, thay thế di chuyển dễ dàng. Không những thế thế Việc sử dụng hệ thống điện mặt trời cịn góp phần bảo vệ môi trường không gây tác động đến mơi trường bên ngồi thiên nhiên giúp làm giảm áp lực lên mạng lưới điện quốc gia.

Hiện nay có 3 loại mơ hình hệ thống điện mặt trời phổ biến gồm hệ thống điện mặt trời độc lập (Off Grid), hệ thống điện mặt trời nối lưới (On Grid) và hệ thống điện mặt trời hòa lưới có lưu trữ (Hybrid).

thống điện mặt trời hòa lưới (áp mái hay On grid solar system) là hệ thống được lựa chọn khá nhiều. Lý giải cho điều này có một vài nguyên nhân cơ bản sau:

- Mức chi phí ban đầu ở mức vừa phải, khơng quá cao bởi không phải đầu tưcho ắc quy mà hiệu quả năng lượng đem đến lại vô cùng cao.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

- Hệ thống bền vững và có tuổi thọ lâu dài vận hành song song với lưới điện. Mọi đột biến của tải hoặc điện áp trên đường dây, nguồn điện đểu sẽ không

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

tác động trực tiếp đến máy.

- Hệ thống hoạt động đồng thời với lưới điện nên hệ thống chỉ hoạt động khi điện lưới hoạt động. Vẫn sẽ xảy ra trường hợp mất điện khi điện lưới mất điện để đảm bảo an tồn.

- Chi phí bảo hành, bảo dưỡng thấp

- Có khả năng tăng thêm thu nhập nhờ vào việc bán điện dư thừa cho Công tyĐiện lực Việt Nam.

- Hiện nay ở nhiều nước trên thế giới khuyến khích sử dụng hệ thống này vì nó giúp giảm một phần chi phí điện hàng tháng. Ở Việt Nam, Chính phủ đang khuyến khích phát triển và lắp đặt hệ thống điện năng lượng mặt trời hòa lưới. Đồng thời cũng đưa ra nhiều chính sách khích lệ, tăng giá bán điện để giúp giảm thiểu chi phí thậm chí là kiếm thêm 1 phần thu nhập nhỏ đều hàng tháng.

<b>2. CHỌN GIẢI PHÁP</b>

Tuy nhiên, hệ thống này có một vài điểm hạn chế. Đối diện bài toán điện năng lượng mặt trời có tính ổn định thấp: Vào những ngày mưa gió, nhiều mây, ánh sáng mặt trời khơng có. Nên số giờ nắng giảm, khơng đồng đều, khơng thể chủ động, kiểm sốt được nguồn năng

<i>lượng. Vì vậy, bọn em đã thực hiện đề tài: “HỆ THỐNG TỐI ƯU HÓA KHẢ NĂNG THU </i>

<i>NHẬN ÁNH SÁNG PIN NĂNG LƯỢNG MẶT TRỜI ”. Hệ thống trình bày bao quát cả một </i>

hệ thống pin mặt trời làm việc độc lập với đầy đủ các thành phần cần thiết trong hệ. Sau đó đồ án tập trung nghiên cứu sâu hơn vào nguồn điện pin mặt trời gồm pin mặt trời, phương pháp và thuật toán điều khiển để thấy rõ đặc tính làm việc, ưu nhược điểm, khả năng ứng dụng của các thuật toán điều khiển nhằm để hệ pin mặt trời được làm việc tối ưu nhất.Để nâng cao hiệu suất chuyển đổi của tấm pin thơng qua việc điều khiển vị trí tấm pin ln vng góc với tia sáng mặt trời chiếu tới.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Trong khuôn khổ đề tài này hệ thống quang điện cho quy mơ gia đình sẽ được chọn làm mơ hình nghiên cứu thử nghiệm.

Hình 1 Các loại mơ hình 1 trục và 2 trục định hướng theo vị trí mặt trời

Các hệ thống có bộ định hướng có thể đạt cơng suất gần như tối đa suốt thời gianhoạt động vào những ngày nắng, quang mây trong khi hệ thống có mặt thu cố địnhchỉ đạt cơng suất tối đa trong một vài giờ trong giữa ngày.

Hệ thống có bộ định hướng theo vị trí mặt trời sẽ nhận được nhiều năng lượnghơn so với hệ thống có mặt thu cố định. Điều đó chỉ ra rằng các dàn pin có bộ địnhhướng sẽ cần cơng suất đặt nhỏ hơn so với các dàn pin lắp cố định mà vẫn sản racùng mức điện năng.

Thị trường hiện nay, có hai loại hệ thống năng lượng mặt trời định hướng, hệ thống định hướng theo trục đơn, và hệ thống định hướng theo trục kép. Hệ thống định hướng theo mộttrục duy nhất sẽ định hướng theo vị trí mặt trời từ Đơng sang Tây trên một trục đặt theo hướng Bắc Nam. Hệ thống trục kép định hướng Đơng sang phía Tây và định hướng theo phía Bắc đến phía Nam.

Theo nghiên cứu cho thấy hệ thống trục kép thu được nhiều năng lượng hơn hệ thống trụcđơn. Vì vậy, đề tài lựa chọn phương án hệ thống định hướng vị trí mặt trời theo hai trục quay.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>II.TÍNH TỐN & THIẾT KẾ</b>

<b>1. SƠ ĐỒ GIẢI THUẬT</b>

Hệ thống sử dụng các hệ thống điều khiển tự động nhờ vào cảm biến, vào cácchương trình, thuật tốn… để có thể tự động xoay theo hướng ánh sáng và dịtìm điểm cơng suất cực đại. Ta có lưu đồ tổng quan của tồn hệ thống như sau:

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>2. LỰA CHỌN THIẾT BỊ VÀ THIẾT KẾ CƠ KHÍ<small>A. LỰA CHỌN THIẾT BỊ</small></b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>3. LẬP TRÌNH THIẾT BỊ<small>A. LẬP TRÌNH CHẾ ĐỘ TỰ ĐỘNG</small></b>

<small>while (1){</small>

<small>if(R_adc==1) {if(PC_ctr==0) {</small>

<small>if((rx3+15)<rx2) k_SV1=0;</small>

<small>else if((rx2+15)<rx3) k_SV1=1;</small>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<small>else k_SV1=2;</small>

<small>if((rx4+15)<rx3) k_SV2=0; else if((rx3+15)<rx4) k_SV2=1;</small>

<small>else k_SV2=2;}</small>

<b><small>B.</small>LẬP TRÌNH ĐIỀU KHIỂN THỦ CƠNG</b>

<small>if(PC_Data=='Y') PC_ctr=1;if(PC_Data=='N') PC_ctr=0;</small>

<small>if(PC_Data=='A') k_SV1=0;if(PC_Data=='B') k_SV1=1;if(PC_Data=='C') k_SV2=0;if(PC_Data=='D') k_SV2=1;</small>

<small>}}</small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<small>if(TB_PC==0) {PC_Data=UDR; TB_PC=1; }}</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>4. LẬP TRÌNH GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>III. HOÀN THIỆN SẢN PHẨM VÀ THỰC NGHIỆM</b>

<b>1. LẮP RÁP VÀ HOÀN THIỆN SẢN PHẨM</b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>2. THỰC NGHIỆM:</b>

Test khả năng hoạt động ở chế độ auto:

Test khả năng hoạt động ở chế độ thủ công :

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Test giao diện điều khiển:

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>IV. KẾT LUẬN</b>

<b>1. KẾT QUẢ ĐẠT ĐƯỢC</b>

Đề tài đã đạt mục tiêu, nghiên cứu các hệ thống tự động điều chỉnh góc quaybề mặt thu năng lượng mặt trời theo vị trí của mặt trời để thu được nhiều nănglượng. Thiết kế, chế tạo hoàn chỉnh hệ thống tự động điều chỉnh góc quay bề mặtthu của thiết bị pin mặt trời hệ gia đình, có thiết bị đối chứng. Mơ hình đã hoạtđộng tốt và đúng với u cầu đặt ra từ đầu,có thể nâng cao hiệu suất panel mặttrời tại mọi thời điểm. Mơ hình có giá khơng quá đắt và có thể ứng dụng tạinhiều nơi, có thể làm nguồn cung cấp điện cho những hộ gia đình tại khu vựcchưa phát triển điện lưới, hoặc làm nguồn cung cấp dự phòng khi cúp điện.

Tuy nhiên, đây mới chỉ là mô hình, độ bền sản phẩm cũng chưa cao, cầnđược đầu tư và phát triển thêm để có thể ứng dụng rộng rãi hơn.

<b>2. HƯỚNG PHÁT TRIỂN ĐỀ TÀI</b>

- Ứng pin mặt trời vào mơ hình có cơng suất lớn hơn trong đời sống

- Làm bộ nghịch lưu một pha để ứng dụng được nhiều hơn xài cho tải xoay chiều- Thiết kế bộ khung xoay bằng inox bền bỉ hơn theo thời gian

- Tiếp tục phát triểnvà ứng dụng các giải thuật dị tìm điểm cơng suất cực đại đểnhanh chóng bám sát điểm cực đại và ổn định

-Ứng dụng vào mô hình năng lượng mặt trời lớn,từ đó có thể kết nối với lưới điện.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>3. LỜI CẢM ƠN</b>

<b>Chúng em xin gửi lời cảm ơn đến Thầy TS. Trương Cơng Tuấn đã tận tình giảng dạy và</b>

chỉ bảo trong suốt thời gian diễn ra môn học và giúp em hồn thành tốt đề tài này.Tuy đã có nhiều cố gắng nhưng do kiến thức và thời gian nghiên cứu có hạn nên bài báocáo của chúng em khơng tránh khỏi những sai sót. Do đó, một lần nữa nhóm em rất mongnhận được sự góp ý của Thầy để chúng em có điều kiện để phát triển đề tài và hồn thiệnhơn kiến thức của mình.

Chúng em xin chân thành cảm ơn!

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>1. CODE GIAO DIỆN:</b>

<small>using System;</small>

<small>using System.Collections.Generic;using System.ComponentModel; using System.Data;</small>

<small>using System.Drawing;using System.Linq; using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO.Ports;using ZedGraph; namespace Suntrackck{</small>

<small>public partial class Form1 : Form{</small>

<small>public Form1(){</small>

<small>string[] baud = { "1200", "2400", "4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200" };private void Form1_Load(object sender, EventArgs e)</small>

<small>GraphPane myPane = zedGraphControl1.GraphPane;myPane.Title.Text = "Đồ thị dữ liệu theo thời gian"; myPane.XAxis.Title.Text = "Thời gian "; myPane.YAxis.Title.Text = "P(mW)";</small>

<small>RollingPointPairList list1 = new RollingPointPairList(60000);</small>

<small>LineItem duongline1 = myPane.AddCurve("P(mW)", list1, Color.Red, SymbolType.None);</small>

<small>myPane.XAxis.Scale.Min = 0;myPane.XAxis.Scale.Max = 30;myPane.XAxis.Scale.MinorStep = 1;myPane.XAxis.Scale.MajorStep = 5;myPane.YAxis.Scale.Min = 0;myPane.YAxis.Scale.Max = 100;myPane.YAxis.Scale.MinorStep = 1;myPane.YAxis.Scale.MajorStep = 5;zedGraphControl1.AxisChange();string[] myport = SerialPort.GetPortNames();cBoxPortName.Items.AddRange(myport); cBoxBaudRate.Items.AddRange(baud);</small>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<small>private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e){</small>

<small>data += serialPort1.ReadExisting();</small>

<small>Invoke(new MethodInvoker(() => listBox1.Items.Add(data)));Invoke(new MethodInvoker(() => draw(int.Parse(data)))); data = "";</small>

<small>private void btnConnect_Click(object sender, EventArgs e){</small>

<small>serialPort1.PortName = cBoxPortName.Text; serialPort1.BaudRate = int.Parse(cBoxBaudRate.Text);serialPort1.Open();</small>

<small>progressBar1.Value = 100; btnConnect.Enabled = false;btnDisCon.Enabled = true;</small>

<small>catch (Exception ex){</small>

<small>private void btnDisCon_Click(object sender, EventArgs e){</small>

<small>serialPort1.Close(); progressBar1.Value = 0; btnConnect.Enabled = true;btnDisCon.Enabled = false;</small>

<small>catch (Exception ex){</small>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<small>private void btAuto_Click(object sender, EventArgs e){</small>

<small>private void btManual_Click(object sender, EventArgs e){</small>

<small>private void btUp_Click(object sender, EventArgs e){</small>

<small>private void btDown_Click(object sender, EventArgs e){</small>

<small>private void btLeft_Click(object sender, EventArgs e){</small>

<small>serialPort1.Write("C");serialPort1.Write("C");serialPort1.Write("C");serialPort1.Write("C");}</small>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<small>IPointListEdit list = duongline1.Points as IPointListEdit;</small>

<small>if (list == null) return; </small>

<small>list.Add(tong, line1);</small>

<small>zedGraphControl1.AxisChange();zedGraphControl1.Invalidate(); zedGraphControl1.Refresh(); tong += 2;</small>

<small>private void btnClear_Click(object sender, EventArgs e){</small>

<small>zedGraphControl1.GraphPane.CurveList.Clear(); zedGraphControl1.GraphPane.GraphObjList.Clear(); zedGraphControl1.AxisChange(); </small>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<small>myPane.Title.Text = "Đồ thị dữ liệu theo thời gian"; myPane.XAxis.Title.Text = "Thời gian "; myPane.YAxis.Title.Text = "P(mW)";</small>

<small>RollingPointPairList list1 = new RollingPointPairList(60000);</small>

<small>LineItem duongline1 = myPane.AddCurve("P(mW)", list1, Color.Red, SymbolType.None);</small>

<small>myPane.XAxis.Scale.Min = 0;myPane.XAxis.Scale.Max = 30;myPane.XAxis.Scale.MinorStep = 1;myPane.XAxis.Scale.MajorStep = 5;myPane.YAxis.Scale.Min = 0;myPane.YAxis.Scale.Max = 100;myPane.YAxis.Scale.MinorStep = 1;myPane.YAxis.Scale.MajorStep = 5;zedGraphControl1.AxisChange();}</small>

<b>2. CODE VI ĐIỀU KHIỂN BẰNG UART:</b>

<small>#include <avr/io.h> #include <avr/interrupt.h></small>

<small>volatile uint16_t rx2, rx3, rx4, d_SV1=3000, d_SV2=3000;volatile uint16_t u=0, i=0;p=0;</small>

<small>volatile unsigned char k_SV1=2, k_SV2=2, t_dem=0, R_adc, n_lan=0;volatile unsigned char PC_ctr=0, TB_PC=0, PC_Data;</small>

<small>void uart_char_tx(unsigned char chr){while (bit_is_clear(UCSRA,UDRE)) {};UDR=chr;</small>

<small>uint16_t read_adc(unsigned char adc_channel){ADMUX=adc_channel|(1<<REFS1)|(1<<REFS0);ADCSRA|=(1<<ADSC);</small>

<small>loop_until_bit_is_set(ADCSRA,ADIF);return ADCW;</small>

<small>}</small>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<small>TCCR1A=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11); TCCR1B=(1<<WGM13)|(1<<WGM12)|(1<<CS11); OCR1A=3000;</small>

<small>TIMSK=(1<<4);//////////////////////////////////// UBRRH=0; UBRRL=103;</small>

<small>UCSRA=0x00; UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE); UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);</small>

<small>/////////////////////// ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS0); ADMUX=(1<<REFS1)|(1<<REFS0);</small>

<small>while (1){if(R_adc==1) {if(PC_ctr==0) {rx2=read_adc(2);rx3=read_adc(3);</small>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<small>else if((rx2+15)<rx3) k_SV1=1;else k_SV1=2;</small>

<small>if((rx4+15)<rx3) k_SV2=0; else if((rx3+15)<rx4) k_SV2=1;else k_SV2=2;</small>

<small>n_lan++; </small>

<small>if(n_lan==25){n_lan=0; i=i/25;u=u/25;p=u*i;</small>

<small>// uart_char_tx('.'); uart_char_tx(p/10+48);p=0 ;i=0; u=0;} </small>

<small>if(TB_PC==1){if(PC_Data=='Y') PC_ctr=1;if(PC_Data=='N') PC_ctr=0;</small>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<small>if(PC_Data=='B') k_SV1=1;if(PC_Data=='C') k_SV2=0;if(PC_Data=='D') k_SV2=1;TB_PC=0;</small>

<small>if(TB_PC==0) {PC_Data=UDR; TB_PC=1; }}</small>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>VI. TÀI LIỆU THAM KHẢO</b>

</div>

×