Cách tốt nhất để hiệu chỉnh ADC cho MOSFET có ý nghĩa hiện tại


7

Tôi đang sử dụng BTS6143 như một công tắc hiện tại và thiết bị đo hiện tại kết hợp với bộ điều khiển STM32.

BTS6143 là một MOSFET tích hợp với bơm sạc bên trong và TôiSenSe đầu ra.

Giá trị ADC tỷ lệ thuận với dòng tải TôiL được tính bằng:

VmộttôibạneMộtDC= =680Ω*TôiL3,3V*kTôiLTôiS*4095

Vấn đề của tôi là kTôiLTôiS phụ thuộc rất nhiều vào dòng tải như trong bảng dữ liệu:

nhập mô tả hình ảnh ở đây

Đặc biệt đối với dòng điện rất nhỏ dưới 1A.

"Giải pháp" cho vấn đề của tôi là hiệu chỉnh thiết bị với 5A mà tôi đo khá chính xác bằng đồng hồ vạn năng. Với điều này, giờ đâyCó thể biết 5A là gì.

Với điểm hiệu chuẩn 1 và ADC bắt đầu từ 0, tôi nhận được 2 điểm

P1(0|0),P2(5|MộtDC(5Một))

và có thể tính độ dốc cho một đường thẳng:

f(x)= =MộtDC(5Một)5Một*x

Tôi đã đo một vài thiết bị sau khi sử dụng phương pháp này và điều này đã gây ra lỗi cho tôi khoảng 5% ở dòng điện từ 6 ... 10A, nhưng trên một số thiết bị tôi gặp lỗi 50% cho dòng điện khoảng 1A.

Vì vậy, tôi đã giới thiệu một điểm hiệu chuẩn khác ở 1A, khiến tôi giảm đến 3% lỗi tại 1A. Tôi chỉ sử dụng điểm này để nói với thiết bị 1A là gì. Không sửa đổi đường thẳng của tôi , mà tôi vẫn tính từ điểm 5A.

nhập mô tả hình ảnh ở đây

Với lỗi ở 1A trở xuống, tôi đã kiểm tra điểm quan trọng tiếp theo là 2A (10-15%), vì vậy tôi đã thử (ADC (1A) + ADC (3A)) / 2, gần bằng một nửa lỗi ở 2A.

Bây giờ mọi thứ đều dưới 10% lỗi từ giá trị lý tưởng cho hiện tại và tôi có thể sống với điều đó, nhưng có cách nào tốt hơn, hay những điều cần cải thiện? Tôi chỉ có thể lấy 2 điểm hiệu chuẩn, do một số hạn chế và tôi không thể tính được một dòng từ giá trị ADC ở 1A và 5A, vì điểm tại 1A làm hỏng đường cho dòng điện lớn hơn.


Hình 6B trong biểu dữ liệu cho thấy tỷ lệ cảm giác hiện tại và nó thực sự trông giống như một thiết bị sắp hết bão hòa và sau đó thành subvt với mối quan hệ IV theo cấp số nhân (chỉ cần nhìn vào hình dạng), do đó, sự phù hợp tuyến tính của bạn sẽ phải được sửa đổi với một số giá trị cuộn, và không phải là một mối quan hệ tuyến tính thuần túy.
b degnan 14/2/2016

@bdegnan Ý bạn là gì khi lăn giá trị? Những gì tôi làm lúc này là tính toán các giá trị ADC cho 1A, 2A, 3A .... 10A với
f(x)= =MộtDC(5Một)5Một*x
và viết chúng thành một mảng. Sau đó, tôi ghi đè lên giá trị cho 1A bằng giá trị tôi thực sự đo được ở 1A. Điều này làm giảm lỗi của tôi tại các dòng điện xung quanh 1A. Bước tiếp theo của tôi là lấy giá trị ADC của tôi cho 3A và 1A, lấy giá trị trung bình và ghi giá trị này vào mảng ở giá trị cho 2A. Điều đó về cơ bản giảm một nửa độ lệch ở 2A.
JavaForStarters

Vì vậy, bạn có những giá trị này; tuy nhiên, tôi không tin rằng chúng thực sự tuyến tính như bạn nghĩ, tuy nhiên, có lẽ bạn có thể ước chừng nó. Khi bạn đến gần 1A, bạn bắt đầu có một hành vi khác, đó là điều mà tôi mong đợi sẽ thấy là một thiết bị di chuyển lâu hơn ít hiện tại để bạn thấy các hiệu ứng khác, như sự lấn chiếm cạn kiệt ở rìa của "siêu khổng lồ" này "Mosfet. Tôi mong đợi sự tương quan, khi bạn đi đến dòng điện lớn đến nhỏ, tuyến tính, gần như bậc hai (x ^ 1.8) và sau đó theo cấp số nhân. Chỉ cần cố gắng đọc vào biểu đồ đó.
b deg Nam 14/2/2016

1
Thêm một lưu ý nữa, tôi sẽ mong đợi sự khác biệt tốt giữa các thiết bị trên cùng một lần chạy wafer, nhưng tôi thường thấy sự không khớp 2% giữa các lần chạy, vì vậy hãy chắc chắn rằng thói quen hiệu chuẩn của bạn không dựa vào các thiết bị để hoạt động giống hệt nhau. Các đơn vị 10k đầu tiên có thể hoạt động, nhưng đợt tiếp theo có thể có phần bù.
b deg Nam 14/2/2016

@bdegnan Chúng không phải là tuyến tính, nhưng đối với dòng điện lớn hơn, K_ILIS khá ổn định và tuyến tính. Vấn đề của tôi là đặc biệt với dòng điện thấp hơn. Vấn đề đó đã được giải quyết bằng cách lấy điểm tại 1A. Câu hỏi là liệu đó có phải là một cách tốt để giải quyết điều này hay không.
JavaForStarters

Câu trả lời:


2

Bạn có thể không đạt được những gì bạn đặt ra. Khi hiệu chỉnh xử lý hệ thống như một hộp đen, có đầu vào và đầu ra. Bạn đang cố gắng tìm hiểu những gì diễn ra bên trong chiếc hộp và mô hình hóa nó theo một cách nào đó. Mô hình có thể dễ hoặc có thể khó. Nếu bạn có thể đưa ra một mô hình đủ tốt, bạn có thể hiệu chỉnh hầu hết mọi thứ. Nếu tuyến tính của nó hoặc theo một mối quan hệ đa thức, nó thậm chí còn dễ dàng hơn để hiệu chỉnh.

Bạn thấy hệ thống là một hộp có dòng điện (dòng điện thực tế mà bạn muốn đo) và hộp đen là IC / Mosfet của bạn và điện áp ra khỏi IC được đo bởi ADC của bạn làm đầu ra. Mô hình của bạn là phương trình như mô tả ở trên.

Với hiệu chuẩn, bạn phải biết đầu vào và đầu ra ĐÂY LÀ HIỆU QUẢ!

Nếu K_ILIS không đổi, thói quen hiệu chuẩn của bạn có thể là
1) Đặt một dòng điện đã biết như 1Amp (đầu vào), đo điện áp trên ADC (Đầu ra)
2) Đặt một dòng điện đã biết như 2Amps (đầu vào), đo điện áp trên ADC (Đầu ra)

(Valmp 1Amp) = 680Ω (1Amp) / (3V kILIS 4095)
(2Amp ADC Val) = 680Ω (2Amp) / (3V kILIS 4095)

Và phần còn lại là cắm và chug. Bạn sẽ nhận được giá trị của bạn cho K_ILIS. Điều này sẽ cung cấp cho bạn một kết quả tốt cho phần đường cong không thay đổi (trên 3A hoặc hơn).
Nếu bạn muốn biết thêm chi tiết, bạn có thể thực hiện điều chỉnh tuyến tính theo thứ tự đầu tiên.

y = m * x + b trong đó y là số đo ADC (đầu ra) của bạn và x là I_L và 680 * 4095 / (K_ILIS * 3.3) là giá trị m của bạn. Vấn đề với việc làm này là bạn vẫn sẽ không có được một sự phù hợp tốt. Bạn chỉ có thể mô hình hóa một dòng, tương đương với việc lấy thước kẻ và vẽ một đường thẳng qua đường cong, bạn vẫn sẽ có một phần dư còn lại trong phạm vi từ 0 đến 3Amp.

Vì vậy, một mẹo khác trong túi là chuyển sang thứ tự cao hơn như mô hình này:
y = c3 * x ^ 3 + c2 * x ^ 2 + c1 * x + c0
Vấn đề với điều này là một dòng cần ít nhất hai điểm để xác định nó Lắp một đường cong sẽ cần nhiều dữ liệu hơn. Có các hàm phù hợp khác, một sigmoid có thể hoạt động
y = c2 / (c1 + exp (c0 * t)) + b
nhưng chúng cần các thói quen tối ưu hóa để tìm tất cả các hằng số và một lần nữa, bạn muốn lấy càng nhiều mẫu càng tốt .

Một trong những vấn đề tôi thấy là K_ILIS cũng phụ thuộc vào nhiệt độ và nhiệt độ đường giao nhau, điều đó có nghĩa là nếu bạn đo nó, nó sẽ phải xảy ra tại IC. Bạn sẽ phải hiệu chỉnh nhiệt độ và biết nhiệt độ. Có vẻ như đường cong nhiệt độ của K_ILIS cũng thay đổi tùy theo thiết bị.

Cụm từ này gợi ý rằng K_ILIS không đổi trên mọi thiết bị nhưng điều này mâu thuẫn với thông tin trong phần đặc điểm chẩn đoán, tôi nghĩ rằng đó là một hỗn hợp của cả hai:

Phạm vi này cho tỷ lệ cảm giác hiện tại đề cập đến tất cả các thiết bị. Độ chính xác của kILIS có thể được nâng lên bằng phương pháp hiệu chuẩn giá trị của kILIS cho mọi thiết bị.

Vì vậy, nếu bạn định hiệu chỉnh nhiệt độ, bạn sẽ phải biết nhiệt độ. Khi bạn đã biết nhiệt độ bạn có thể tra cứu giá trị của K_ILIS, nhưng bạn vẫn sẽ phải tìm ra cách nó thay đổi theo nhiệt độ. Không có vẻ như bạn có thể đưa ra một công thức hoặc chức năng emperical dễ dàng (chẳng hạn như hàm mũ hoặc sigmod). Nếu tôi phải làm điều này và tôi không có cách nào khác để thay đổi thiết kế, tôi sẽ sử dụng bảng được cung cấp cho mình HOẶC tôi sẽ chạy thử nghiệm sau khi thử nghiệm để mô tả K_ILIS theo nhiệt độ trong cài đặt trong phòng thí nghiệm. Sau đó, tôi sẽ sử dụng dữ liệu này trong một bảng tra cứu trên micro nhưng tôi vẫn sẽ phải biết nhiệt độ. Bạn có thể đặt một nhiệt điện trở trên IC? Chắc là không. Phạm vi hiện tại bạn đang cố gắng đo là rất lớn. Theo kinh nghiệm của tôi, thực sự rất khó để có được 5% đầu tiên của phạm vi đo hiện tại. Một phần của vấn đề là có dòng điện rò và độ lệch trở nên lớn bằng phép đo điện áp từ bất cứ thứ gì đang đo dòng điện cho dù đó là tín hiệu vi sai từ điện trở cảm giác hoặc thông qua các phương tiện khác.

Tôi nghĩ rằng đã đến lúc bạn xem lại yêu cầu của bạn. Có vẻ như bạn có hai hoặc ba yêu cầu.

  1. Hiệu chuẩn đơn giản
  2. 1% Độ chính xác đo hiện tại từ 0A đến 40A (bạn có thể chèn bất kỳ số nào bạn muốn cho 1% và 40A)
  3. Giá thấp

Nếu bạn phải có 2) và 3) bạn không thể có 1). Nếu bạn không cần 3) Tôi sẽ xem xét thêm một phương pháp khác cho phép đo hiện tại "mức tăng cao" sẽ cho phép bạn không tham gia vào phạm vi 0 đến 1A.

Tôi cũng nghĩ rằng một phần của vấn đề của bạn không phải là yêu cầu bằng văn bản ngay từ đầu. Đây là một cách tốt để thiết kế mọi thứ, sau đó bạn có một cuộc thảo luận về các lựa chọn của mình trước khi chúng được sử dụng trên PCB.


0

Tôi không có đủ danh tiếng cho ý kiến, nhưng đây là gợi ý. Bạn có thể thử thủ công hoặc trong Matlab tạo hàm k = f (I) liên quan đến hình 6b (MATLAB có một số hàm nội suy, trên cơ sở các điểm mà bạn nhập). Hơn bạn có thể sử dụng chức năng đó thay vì sử dụng k.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.