PDA

View Full Version : Dùng pic đo hệ số công suất của lưới điện


picpen
28-06-2008, 12:50 AM
** Em muốn làm một thiết bị ,dùng để đo hệ số công suất cos của lưới điện.
nhưng em gặp phải một số khó khăn cần các bác giúp đỡ !!!!!
ý tưởng của em như sau:
- dùng một thiết bị ,mạch điện hay thuật toán nào đó để tách hai đại lượng
là dòng điện I và điện áp U
- sau đó lấy một mốc thời gian để xác định xem, tín hiệu dòng điện I và điện
áp U,đại lượng nào xuất hiện trước và thoi gian trễ ( chênh lệch về thời gian xuất
hiện giữa hai tín hiệu ) giua hai tín hiệu la bao nhiêu ? vdk pic sẽ giam sát và đo
khoảng thời gian lệch nhau này . dựa vào khoảng thời gian này và tần số của lưới
điện. pic sẽ tính ra được độ lệch pha giữa hai tín hiệu U và I >> từ đó tìm ra hệ số
công suất cos của lưới điện
** Theo các bác,ý tưởng của em có thực hiện được không?
** ta phải sử dụng thiết bị gì để tách hai tín hiệu U và I ??
..... mong các bác góp ý và giúp đỡ !! thanks...

namqn
28-06-2008, 01:17 AM
** Em muốn làm một thiết bị ,dùng để đo hệ số công suất cos của lưới điện.
nhưng em gặp phải một số khó khăn cần các bác giúp đỡ !!!!!
ý tưởng của em như sau:
- dùng một thiết bị ,mạch điện hay thuật toán nào đó để tách hai đại lượng
là dòng điện I và điện áp U
- sau đó lấy một mốc thời gian để xác định xem, tín hiệu dòng điện I và điện
áp U,đại lượng nào xuất hiện trước và thoi gian trễ ( chênh lệch về thời gian xuất
hiện giữa hai tín hiệu ) giua hai tín hiệu la bao nhiêu ? vdk pic sẽ giam sát và đo
khoảng thời gian lệch nhau này . dựa vào khoảng thời gian này và tần số của lưới
điện. pic sẽ tính ra được độ lệch pha giữa hai tín hiệu U và I >> từ đó tìm ra hệ số
công suất cos của lưới điện
** Theo các bác,ý tưởng của em có thực hiện được không?
** ta phải sử dụng thiết bị gì để tách hai tín hiệu U và I ??
..... mong các bác góp ý và giúp đỡ !! thanks...
Ý tưởng của bạn có thể thực hiện (và tôi đã trực tiếp hướng dẫn một người làm bằng mạch số vào năm 1997).

Hệ số công suất và cos(phi) không phải cùng một đại lượng, chúng chỉ bằng nhau khi dòng điện và điện áp của bạn đều là hình sin (điều này hiện nay hiếm khi xảy ra vì đủ loại tải phi tuyến đang được nối vào lưới điện).

Thân,

picpen
28-06-2008, 11:43 PM
vui quá !! đọc được những lời nhận xét , góp ý của bác em rất vui ....
Ý tưởng về thiết bị này đã theo em từ rất lâu rồi ,nhưng vẫn chưa thực hiện được...
Giờ thì em đã may mắn gặp được người có thể giúp em ( bác đã từng thực hiện ý tưởng trên bằng số...thật tuyệt...)
Bác hướng dẫn giúp đỡ em nhé (em sẽ dùng pic để thực hiện ) thanhk..bác nhiều nhiều..
Bác cho em hỏi chút chút : - làm thế nào để tách hai tín hiệu điện áp U và dòng điện I
- bằng cách nào để xác định khoảng thời gian trễ ( độ
chênh lệch về thời gian ) giữa hai tín hiệu U và I

Bác có tài liệu về vấn đề này thì gửi cho em nhé !!
Địa chỉ mail của em là : picpen@gmail.com

**** mong nhận hồi âm của bác càng sớm càng tốt ***

namqn
29-06-2008, 12:27 AM
vui quá !! đọc được những lời nhận xét , góp ý của bác em rất vui ....
Ý tưởng về thiết bị này đã theo em từ rất lâu rồi ,nhưng vẫn chưa thực hiện được...
Giờ thì em đã may mắn gặp được người có thể giúp em ( bác đã từng thực hiện ý tưởng trên bằng số...thật tuyệt...)
Bác hướng dẫn giúp đỡ em nhé (em sẽ dùng pic để thực hiện ) thanhk..bác nhiều nhiều..
Bác cho em hỏi chút chút : - làm thế nào để tách hai tín hiệu điện áp U và dòng điện I
- bằng cách nào để xác định khoảng thời gian trễ ( độ
chênh lệch về thời gian ) giữa hai tín hiệu U và I

Bác có tài liệu về vấn đề này thì gửi cho em nhé !!
Địa chỉ mail của em là : picpen@gmail.com

**** mong nhận hồi âm của bác càng sớm càng tốt ***
Như bạn có thể thấy, tôi đã hướng dẫn người khác làm chứ không phải là tôi đã làm đề tài đó, do đó người đó nắm các tài liệu chứ không phải tôi. Hơn nữa người đó ở VN còn tôi ở Anh, nên tôi không thể liên lạc với người đó để lấy tài liệu được.

Và sau 11 năm thì tôi không nghĩ người đó còn giữ những tài liệu đó làm gì.

Tôi có thể giúp bạn ý tưởng, nhưng tìm hiểu và thực hiện nó là việc của bạn. Tuy nhiên, bạn phải cho tôi biết bạn định làm gì với đề tài này (kinh doanh chăng).

Thân,

picpen
30-06-2008, 12:32 AM
hic hic !! em là dân kỹ thuật thứ thiệt mà ,chỉ biết mầy mò với với đống linh kiện chuyên ngành thôi ,chứ có biết kinh doanh gi gi đâu ..

em là sinh viên năm thứ 3 chuyên ngành ĐIỆN TỰ ĐỘNG HÓA

khi học môm KỸ THUẬT ĐIỆN và ĐIỆN TỬ CÔNG SUẤT ,em được biết nếu hệ thống điện của một xí nghiêp nào đó có hệ số công suất nhỏ hơn một giới hạn nhất định thì sẽ bị cơ quan ngành điện phạt tiền vì đã làm tổn hao điện năng vô ích. từ đó em đặt ra câu hỏi ?? làm thế nào và bằng cách nào ta xác định được hệ số công suất của lưới điện????

cho đến khi em được tiếp cận với VDK PIC ,em thấy pic rất mạnh và có nhiều ứng dụng rộng rãi thì em nghĩ ngay đến việc dùng pic để thực hiện ý tưởng trên......

Em muốn thực hiện đề tài trên vì:
- em không muốn ý tưởng của mình mãi chỉ là ý tưởng trên lý thuyết ,sách vở giấy bút ,nó phải được thưc hiện nếu có thể
- vì đam mê kỹ thuật
- và nếu em thực hiện được đề tài này ,có thể em sẽ hoàn thiện và phát triển đề tài này và dùng làm đề tài tốt nghiệp sau 2 năm nữa.

đó là tất cả những suy nghĩ của em !!
Em rất mong nhận được ý kiến đóng góp của bác cũng như tất cả các thành viên trên diễn đàn
Cám ơn Bác !!!! cám ơn tất cả các thành viên trên diễn đàn
Tôi yêu " PICVIETNAM" ......THANKS

namqn
30-06-2008, 01:25 AM
À, tôi chỉ muốn nắm chắc rằng lòng tốt của tôi không bị lợi dụng cho mục đích kinh doanh thôi.

Về ý tưởng của bạn, bạn có thể thực hiện như sau (tôi nói trước rằng phương pháp này không có gì nổi bật cả, và không phản ánh đúng hệ số công suất của những lưới điện có tải phi tuyến, tải điện tử công suất):

- Bạn dùng một mạch so sánh (comparator) và điện trở đủ lớn, cùng với mạch ghim điện áp để phát hiện thời điểm điện áp đi qua giá trị 0.
- Bạn dùng một biến dòng để cách ly và chuyển dòng điện của lưới thành điện áp, và cũng dùng mạch so sánh để phát hiện thời điểm dòng điện đi qua giá trị 0.

Đưa các tín hiệu trên về PIC (có thể cách ly bằng opto-coupler cho an toàn với người dùng), và dùng Timer 1 để đo thời gian giữa hai điểm 0 đó, cũng như thời gian của chu kỳ điện áp lưới, từ đó bạn có thể tính ra góc lệch pha, và cosine của nó.

Bạn thử tìm trên mạng những mạch điện trên và post lên đây, tôi sẽ cho biết mạch nào thích hợp với mục đích của bạn. Bạn cũng nên làm gì đó thay vì để tôi làm hết, nó sẽ giúp bạn hiểu rõ hơn vấn đề.

Các từ khóa có thể dùng với Google: zero crossing detector, voltage sign detector, clamping circuit, clamp circuit.

Thân,

picpen
02-07-2008, 02:20 AM
Cám ơn bác đã chỉ giáo, em sẽ cố gắng ,khi nào gặp khó khăn em sẽ lên diễn đàn tìm bác và mọi người nhờ giúp đỡ ..thanks.............

quangduy2020
06-07-2011, 09:05 PM
Chào thầy namqn, nay e xin hỏi lại 1 lần nữa về vấn để đo cosphi dk bằng pic.
Em dùng Lm339 tạo xung vuông như thầy đã đề cập, e dùng dòng và áp đỉnh để so sánh. E dùng led để kiểm tra output. Thì e gặp tình huống led sáng mờ khi ở mức ko, như vậy ta lắp 1 zenner để vào cổng XOR 7486 sau đó đưa vào pic dc ổn định ko ah? Hay chỉ cần opto thôi?
E còn thắc mắc về capture mode của pic:
CCPxM3:CCPxM0: CCPx Mode Select bits
0000 = Capture/Compare/PWM disabled (resets CCPx module)
0100 = Capture mode, every falling edge
0101 = Capture mode, every rising edge
0110 = Capture mode, every 4th rising edge
0111 = Capture mode, every 16th rising edge
1000 = Compare mode, set output on match (CCPxIF bit is set)
1001 = Compare mode, clear output on match (CCPxIF bit is set)
1010 = Compare mode, generate software interrupt on match (CCPxIF bit is set, CCPx pin is
unaffected)
1011 = Compare mode, trigger special event (CCPxIF bit is set, CCPx pin is unaffected); CCP1
resets TMR1; CCP2 resets TMR1 and starts an A/D conversion (if A/D module is
enabled)
11xx = PWM mode
Như vậy làm sao nạp giá trị cho capture hiểu mình dùng xung cạnh lên hay xuống ạ?
E chưa từng lập trình trên pic nên còn mù mờ lắm. À e dùng mplab để viết code ạ:D
Mong thầy giúp cho

ocean_86
17-07-2011, 11:52 PM
anh ơi!
em muốn đo hệ số COSj của lưới điện dùng ngắt ngoài trên chân RBO của pic 16f877a
em đã đuă dòng và áp sau khi chuyển từ song sin sang sóng vuông(em dùng opamp) và cho qua con 74ls86 để so pha rồi bây giờ không biêt viêt chương trình làm sao
anh có thể giúp em được không? . em dung timer1. phần đo điện áp và dòng điện thì em đã làm chạy rồi
em cám ơn anh nhiều!!!

pstin
29-07-2011, 01:19 PM
Lúc trước bạn ocean_86 có hỏi, tui có ý kiến như sau:
Nếu bạn tạo được tín hiệu xung vuông áp và dòng có "bề rộng" như nhau như hình bên dưới, thì giải thuật tính:
theo hình: dòng trễ t0 so với tín hiệu áp.
u=u0*sin(wt); i=i0*sin(w(t-t0). Góc lệch pha wt0.
cosphi=cos(wt0)=cos(2*pi*f*t0). w radian/s, do đó góc tính theo radian, tính theo độ là trớt wớt.
Dùng "mọi chiêu" để đo được t0 là ok thui!!!!!!!!!!!.
Tui thấy các cao thủ hay dùng ADE7753 hay hơn!!!!!!!!.
Để các cao thủ cho ý kiến thêm vậy!!!!!!!

ocean_86
30-07-2011, 02:24 AM
cám ơn picpen
mình đã so pha như vậy rồi đó còn đây là chương trình của mình, mình viết mà nó không chạy(không đo được khoảng thời gian lệch pha đó)
#INCLUDE <16F877A.h>
//#include <math.h>
#DEVICE *=16 ADC = 10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
#USE DELAY (CLOCK = 12000000)
#INCLUDE <lcd_lib_4bit.C>
//================================================== ============================
// DINH NGHIA THANH GHI, PORT, CAC CHAN
#byte PORTA = 0x05
#byte PORTB = 0x06
#byte PORTC = 0x07
#byte PORTD = 0x08
#byte PORTE = 0x09

#byte TRISA = 0x85
#byte TRISB = 0x86
#byte TRISC = 0x87
#byte TRISD = 0x88
#byte TRISE = 0x89
#bit RB7 = 0X06.7
#bit RB6 = 0X06.6
#bit RB5 = 0X06.5
#bit RB4 = 0X06.4

char BANG[90]={0x01,0x03,0x05,0x06,0x08,0x0A,0x0C,0x0D,0x0F,
0x11,0x13,0x14,0x16,0x18,0x19,0x1B,0x1D,0x1E,0x20,
0x22,0x23,0x25,0x27,0x28,0x2A,0x2B,0X2D,0x2E,0x30,
0x32,0x33,0X34,0x36,0x37,0x39,0x3A,0x3C,0x3D,0x3E,
0x40,0x41,0x42,0x44,0x45,0x46,0x47,0x49,0x4A,0x4B,
0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,
0x56,0x57,0x58,0x59,0x59,0x5A,0x5B,0x5C,0x5C,0x5D,
0x5D,0x5E,0x5F,0x5F,0x60,0x60,0x61,0x61,0x61,0x62,
0x62,0x62,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x64};
int16 temp2,k;
int16 a1,b1,c1, state;
#int_timer1
#int_ext
void ngat()
{
if(k=0)
{
set_timer1 (0);
ext_int_edge(l_to_h);
k = 1;

}
else
{
temp2=get_timer1();
ext_int_edge(h_to_l);
k = 0;
state = 1;
}

}
void main()
{
k=0;
temp2 = 0;
state = 0;
output_bit (pin_D2, 0); // DK RS
output_bit (pin_D3, 1); // DK CS
enable_interrupts(global);
enable_interrupts(int_ext);
ext_int_edge (l_to_h);
enable_interrupts(int_timer1);
setup_timer_1(t1_internal|t1_div_by_1);
while(true);
{
if(state=1)
{
temp2 = get_timer1();
temp2=bang[temp2-90];
state = 0;
a1=temp2/100;
temp2=temp2%100;
b1=temp2/10;
c1=temp2%10;
}

}
lcd_putcmd(0xc0);
printf(lcd_putchar,"COS = ");
lcd_putchar(a1 + 0x30);
printf(lcd_putchar,".");
lcd_putchar(b1 + 0x30);
lcd_putchar(c1 + 0x30);
}
rất mong các cao thủ giúp đỡ em.
thanks!!!

pstin
03-08-2011, 04:29 PM
Hì, các cao thủ đâu hết rồi sao chẳng ai giúp bạn vậy nhỉ!!!!!!!!!. Tui đang lu bu quá chưa thử chương trình cho bạn được, nhưng nhìn sơ sơ thấy là "trớt wớt":
- Cái lệnh if(state==1); if(k==0), còn như bạn thì vdk treo luôn mới phải!!!!!!!!.
- Khi xung lên mức 1 thì bạn mới nên set timer!!!!!!!.
- Tạo chu kỳ 1, 2 giây mới đọc và tính tần số 1 lần, như vậy vdk còn rảnh để làm việc khác.
- Tui nghĩ như bạn thì nên kích 1 nút nhấn và đếm thời gian bấm nút bằng timer, thành công cái lập trình này rồi mới tính tới cái "chiện" chơi tiếp đo tần số!!!!!!!!.
Bạn làm thử đi, có gì tui,....hay các cao thủ võ lâm mới giúp bạn tiếp được!!!!!!!!!!!!!

ocean_86
15-08-2011, 10:28 AM
Hì, các cao thủ đâu hết rồi sao chẳng ai giúp bạn vậy nhỉ!!!!!!!!!. Tui đang lu bu quá chưa thử chương trình cho bạn được, nhưng nhìn sơ sơ thấy là "trớt wớt":
- Cái lệnh if(state==1); if(k==0), còn như bạn thì vdk treo luôn mới phải!!!!!!!!.
- Khi xung lên mức 1 thì bạn mới nên set timer!!!!!!!.
- Tạo chu kỳ 1, 2 giây mới đọc và tính tần số 1 lần, như vậy vdk còn rảnh để làm việc khác.
- Tui nghĩ như bạn thì nên kích 1 nút nhấn và đếm thời gian bấm nút bằng timer, thành công cái lập trình này rồi mới tính tới cái "chiện" chơi tiếp đo tần số!!!!!!!!.
Bạn làm thử đi, có gì tui,....hay các cao thủ võ lâm mới giúp bạn tiếp được!!!!!!!!!!!!!

cám ơn pstin nhiều. mình viết chương trình xong rùi nhưng chưa chính xác lắm vẫn còn sai số. đo khoảng cách 1 xung khác với đo tần số bạn ah.
minh pót bài lâu rồi mà chẳng cao thủ nào giúp cả.hihihi

HANC
16-10-2011, 01:02 AM
cái này khó quá ít ai làm được,(cao nhân mắc bệnh vô phương trị) hẹn lại nhen dùng pic đo hệ số công suất lưới điện

0903579509
22-10-2011, 02:06 PM
Thử xem ý tưởng dưới đây, tôi đã thử trên Proteus thấy nó hoạt động được.

Mạch điện đi kèm hoạt động như sau:

Khi nhấn button thì đo 1 lần, kết quả đo được chuyển vào biến thoiGianDo, việc tính cos phi dựa vào thời gian này và một biến int0Truoc để biết ngắt nào xãy ra trước để tính toán âm hoặc dương.

Trên mạch điện, khi thay đổi góc pha của một nguồn xoay chiều, ta nhấn button sau đó pause hoạt động của mạch, xem giá trị trên biến thoiGianDo sẽ thay đổi.

Vì không có thời gian nên tôi chỉ viết đến thế. các bạn bổ sung thêm LCD hoặc 7segments cho hoàn hảo hơn và cho mạch điện 1/2 giây sẽ đo tự động một lần chứ không cần nhấn phím.
Mạch điện vào chỉ để mô phỏng, trên thực tế sẽ khác tùy theo ý tưởng của từng người.

Chúc thành công.