Chào các Pro e đang làm bài toán đo tần số nhưng đòi hỏi độ chính xác rất cao sử dụng dsPIC nhưng chưa tìm được phương pháp hợp lí mong các cao thủ chỉ hướng.
Thông báo
Collapse
No announcement yet.
Dùng dsPIC đo tần số với độ phân giải 0.004Hz.
Collapse
X
-
có 2 dạng đếm tần số : direct counter và reciprocal counter .
direct counter sẽ đếm số xung đưa vào trong 1s và kết quả thu được là Hz
reciprocal counter xác định chu kỳ của 1 xung và suy ra tần số f=1/T
nếu time base 1s ==> chính xác đến 1Hz
nếu time base 10s ==> 0,1Hz
.... riêng reciprocal do đo thời gian .... nên có thể nội suy
việc đếm với thời gian quá dài có thể bất lợi do nhiễu phát sinh , sai lệch !
Cả 2 phương pháp trên ===> kết luận :
Nếu là được độ chính xác vậy thì mấy hãng sản xuất máy đo tần số như agilent , leader , tektronix ... sẽ mua cám về để ăn dần
thời gian time base phụ thuộc rất nhiều vào cái thạch anh REF ( thời gian mẫu ) ... những thạch anh chuẩn xác này thì cực hiếm và đắt tiền ( thạch anh có độ chính xác rất cao , ít phụ thuộc nhiệt độ ... có bộ sinh nhiệt tự động để bù nhiệt ...)
ngoài ra độ chính xác còn phụ thuộc nguồn điện , phần mềm ( riêng khoản lập trình firmware flash ) là đã vứt rồi ! ( chí ít gọi là tạm được cũng phải chơi CPLD hoặc những dòng PLD , FPGA
KẾT LUẬN 2 : Không khả quan . Hết
( Độ phân giải khác hoàn toàn với độ chính xác ... nếu phân giải đến phần nghìn thì làm cái direct counter cũng ok ... còn độ chính xác đến phần nghìn , chục nghìn của Hz ... thì thua luôn !
qua hãng agilent , anritsu hỏi xem có máy đo đạt chính xác đó không !Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
Độ phân giải với độ chính xác là khác nhau, dù rằng nó thường đi với nhau và tỉ lệ thuận. Ví dụ cái DMM anh em mình dùng có phân giải 2000 count, chính xác 1% (ứng với 20 count).
f = n/t (n: số xung, t: thời gian)
Độ phân giải 0.004 Hz tương ứng với độ phân giải khó biết us (về mặt thời gian).
Tớ ví dụ:
- Nếu bạn muốn đo tần số 100Hz với độ phân giải 0.004Hz, tức là bạn phải phân biệt được 100Hz và 100.004Hz.
Giả sử mỗi phép đo được thực hiện trong thời gian khoảng 1s, tức là bạn sẽ đếm khoảng 100 xung. Trong trường hợp này t của bạn sẽ có giá trị:
t1 = n/f1 = 100/100Hz = 1s (đương nhiên, đúng với giả thiết)
t2 = n/f2 = 100/100.004Hz = 0.99996s
delta_t = |t1-t2| = 1s - 0.99996s = 0.00004s = 40us
>> 40us thì quá dễ giải quyết với vi điều khiển, dùng 98C2051 vẫn OK.
- Nhìn ở trên tớ thấy
delta_t = |t1-t2| = |n/f1 - n/f2| = n*|1/f1 - 1/f2|
delta_t = n*|1/f1-1/f2|
Nhìn vào công thức ta thấy luôn:
+ delta_t không thể quá nhỏ vì bộ xử lý của ta sẽ không phân biệt được
+ để tăng delta_t ta có thể tăng n (số xung đếm vào), cái này sẽ làm tăng chu kỳ lấy mẫu
+ với một giới hạn xử lý (delta_t nhỏ nhất có thể phân biệt) ta có thể suy ra tần số ta có thể đo được (liên quan với cả độ phân giải)
delta_t = n*|1/f1-1/f2| = n*|1/f1-1/(f1+delta_f) ≈ n*delta_f/f12 (thử lại với ví dụ trên thấy đúng)
>> với chip AT89S52 tớ có thể đếm thời gian chính xác cỡ 4Tcy (4 chu kỳ máy) tương ứng 4us với thạch anh 12MHz → bài toán của bạn: có thể đếm tần số tối đa
fmax2 = n*delta_f/delta_t = Tsample*f *delta_f/delta_t (Tsample: chu kỳ đo, f: tần số vào, ở đây f=fmax)
fmax2 = Tsample*fmax*delta_f/delta_t
fmax = Tsample*delta_f/delta_t = 1s*0.004Hz/4us = 1000Hz
fmax = 1000Hz
fmin = tự tính
(fmax = 1000Hz, phân giải 0.004Hz, bộ của bạn hơi bị chính xác cao đấy, cứ nhìn số 999.996 mà xem)
Comment
-
>> với chip AT89S52 tớ có thể đếm thời gian chính xác cỡ 4Tcy (4 chu kỳ máy) tương ứng 4us với thạch anh 12MHz → bài toán của bạn: có thể đếm tần số tối đa
còn độ phân giải (VD 4 số ) 1KHz 1.000 ... độ chính xác 1Hz VD 0.999 Khz , 1.000 Khz , 1.001 KhzModule RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
Cám ơn các bác đã cho ý kiến. Có lẽ e đưa ra dữ liệu bài toán chưa đủ. Bài toán của e cụ thể như sau.
đo tần số nằm trong khoảng 800 đến 4000Hz với độ phân giải là 0.004Hz tức là 100Hz và 100.004Hz sẽ phải phân biệt được.
E đã dùng input captures của dspic với Ftcy = 16M.
ví dụ ta đo tần số f = 851.004 Hz chẳng hạn.
đo tần số này thì 1 chu kì của f = (16.000.000/851.004) = 18801.3217 chu kì của Ftcy.
dùng capture của dsPIC thì đo 1 chu kì của f sẽ được 18801 chu kỳ của Ftcy trong thanh ghi của PIC
-> thời gian 1 chu kỳ của tần số f là: t = 18801/16 = 1175.0625 (us) -> f = 1/t = 851.01856 (Hz). tần số đo được này sai 0.01456 >0.04 Hz.
nếu muốn chính xác hơn thì phải đo từ 10 chu kỳ. lúc đó ta tính được t = 1175.08125 -> f = 851.00498 (Hz) so với 851.004 thì sai số là 0.00098 < 0.004Hz coi như thỏa mãn yêu cầu đề bài. Nhưng đây là tính toán lý thuyết trên thực tế nếu dùng bộ captures của dsPIC thì timer được sử dụng là 16bit thế nếu đo 10 chu kỳ sẽ xảy ra tràn timer ít nhất là 3-4 lần. mỗi lần tràn này đều sẽ làm trễ đi một khoảng thời gian nhất định phải ko ạ.
ai đã làm qua cách này có chỗ nào cao minh chỉ điểm giúp e với|
Comment
-
Cái 16M ở đây là tần số dao động e thiết lập trên dsPIC. Dùng tần số đó để lấy mẫu giả sử đo trong 1s thì 800 chu kì của f(fin) sẽ được 16.000.000 chu kì của chíp nên cái 16M/800 là tỉ lệ của 2 cái tần số này để tính toán theo lý thuyết thôi.|
Comment
-
Dùng vòng lặp kiểm tra, nếu TMRIF bật thì cộng thêm 65536.
Nếu mình không nhầm thì sử dụng chế độ Capture vẫn dùng được ngắt Timer (bạn xem lại trong datasheet), nếu thế thì có thể đếm 1 biến phụ trong ngắt.
@bác Dương: cái này chỉ nói là độ phân giải 0.004Hz chứ không nói phải chính xác đến 0.004Hz. Như bác nói, để đảm bảo độ chính xác của phép đo thì cần tần số mẫu chính xác (thạch anh đếm thời gian) - vấn đề của linh kiện. Nếu chúng ta có giải thuật xử lý đúng thì khi lắp thạch anh "chuẩn" vào sẽ chính xác, phải không bác.
Tiện thể, em viết nốt
Δt < Tsample * Δf / f
đây là yêu cầu độ phân giải (độ chính xác) đếm thời gian trong phương pháp đếm đồng thời thời gian và số xung.
với Tsample=n/f (n: số xung, f: tần số xung; Tsample không cố định)Last edited by KnowMore; 25-02-2012, 01:14.
Comment
-
Bạn phải tính thêm độ trễ của ngắt.Quá trình reset timer.Đo tần số cao thì phải lấy nhiều chu kì rồi.Mà bạn đâu nói đến độ chính xác đâu nhỉ.Do đó 2 kết quả có sai nhau thì đâu vấn đề gì.800.004 và 800.001 chỉ là giá trị hiển thị thôi.Kô ai nói 800.004 chính xác còn 800.001 kô chính xác., , ,
Comment
-
Nguyên văn bởi rptdnmqs Xem bài viếtBạn phải tính thêm độ trễ của ngắt.Quá trình reset timer.Đo tần số cao thì phải lấy nhiều chu kì rồi.Mà bạn đâu nói đến độ chính xác đâu nhỉ.Do đó 2 kết quả có sai nhau thì đâu vấn đề gì.800.004 và 800.001 chỉ là giá trị hiển thị thôi.Kô ai nói 800.004 chính xác còn 800.001 kô chính xác.
Con dspic cũng vậy ... không phải lúc nào nó cũng chạy như lúc nào ( sẽ có lúc nhanh lúc chậm ) ... mà sự thay đổi này rất nhỏ ( do yếu tố phát sinh nhiệt hoặc nhiệt môi trường ) ...
Tuy thay đổi nhỏ nhưng lại là lớn trong những bài toán chính xác .Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
Về tác giả
Collapse

Bài viết mới nhất
Collapse
-
bởi vi van phamCần chứng minh cánh quạt lớn không phải do ma sát làm giảm tốc độ....
-
Channel: Điện tử gia dụng
hôm nay, 15:29 -
-
bởi dinhthuong80Thì bác thấy đó, theo công thức của cháu Q = w.n.S.d, trong đó:
- w [vòng /phút]: tốc độ quay của mô tơ đo được khi gắn cánh quạt thì cánh vuông với trục hay lệch góc mấy độ cũng đâu còn ảnh hưởng gì nữa, nó thể hiện luôn ở giá trị w đo được rồi còn gì.
- n: số lượng lá cánh...-
Channel: Điện tử gia dụng
hôm nay, 13:24 -
-
bởi vi van phamKhác nhiều lắm cháu ơi.
Góc này người ta gọi là góc cắt không khí, nó ảnh hưởng đến tốc độ quạt, ảnh hưởng đến lưu lượng gió, cũng như lưu lương hút gió.-
Channel: Điện tử gia dụng
hôm nay, 12:15 -
-
bởi dinhthuong80Mặt phẳng cánh quạt lệch 1 góc so với trục nên nhìn theo phương vuông góc với trục ta sẽ "thấy nó có một độ dày d", đây chính là chiều cao của "hình trụ tròn rỗng ruột" theo trục của quạt có thể tích V = d * S_vành khăn....
-
Channel: Điện tử gia dụng
hôm nay, 11:46 -
-
bởi vi van phamCông thức tính lưu lượng gió cháu lấy ở đâu ra vậy? tôi thấy có gì đó không ổn.
Theo thí dụ trên, mặt phẳng cánh quạt vuông góc với trục sẽ có lưu lượng khác với mặt phẳng cánh quạt song song với trục, và khác với mặt...-
Channel: Điện tử gia dụng
hôm nay, 11:19 -
-
bởi appongthoNguyên nhân mã lỗi H-57, H-58, H-59 Máy giặt Panasonic
https://appongtho.com/loi-h-57-h-58-...iat-panasonic/
Mã lỗi H-57, H-58, H-59 trên máy giặt Panasonic thường liên quan đến sự cố trong hệ thống sấy, bao gồm lỗi mạch khử từ...-
Channel: Điện tử gia dụng
hôm nay, 09:56 -
-
bởi kiều phongchào mọi người
xin cho hỏi mạch nguồn máy hàn 110v chuyển sang 220v được không? thanks
...-
Channel: Nguồn!
hôm nay, 09:48 -
-
bởi dinhthuong80Dạ, theo thí nghiệm của chủ thớt thì hiệu ứng đó không ảnh hưởng gì, vì nó được tính theo công thức lí thuyết hợp lí: lưu lượng khí bằng thể tích khí do quạt vận chuyển được trong một phút (chỉ ảnh hưởng, hợp lí khi máy đo...
-
Channel: Điện tử gia dụng
hôm nay, 09:15 -
-
bởi tuyennhanChắc sai rồi quạt thông gió công nghiệp sử dụng mô tơ 3 pha 750 w mà lưu lượng gió chỉ 1500 m3 / h ....
-
Channel: Điện tử gia dụng
hôm nay, 07:55 -
-
bởi nguyendinhvan
Khi cái cánh chuyển động, một phần không khí xoáy , quay ngược lại phía sau cánh. Không phải tất cả đề đẩy ra phía trước....-
Channel: Điện tử gia dụng
Hôm qua, 19:01 -
Comment