Làm thế nào để bạn xác định điện trở hiệu quả của một lưới điện trở hữu hạn?


14

Tuyên bố miễn trừ trách nhiệm: Tôi là nhà địa vật lý với nền tảng kỹ thuật điện hạn chế. Tôi không chắc vấn đề này cực kỳ dễ, cực kỳ phức tạp hay hoàn toàn vô nghĩa.

Mục tiêu của tôi: Xác định điện trở suất lớn của mẫu đá bằng cách sử dụng mạng điện trở.

Mẫu đá phải được mô hình hóa bằng cách sử dụng mạng điện trở với một số điện trở nhất định có điện trở cao (đại diện cho đá rắn) và các điện trở khác có điện trở thấp (đại diện cho đường dẫn chất lỏng trong đá).

Giả sử tôi có một mạng điện trở trên một lưới đồng nhất như hình dưới đây. Trong ví dụ hiển thị, mỗi phân đoạn dòng có một điện trở liên quan được dán nhãn từ 1 đến 24 trên lưới 3 nhân 3. Các điện trở của từng đoạn được biết đến.

Tổng chiều dài của lưới là và "diện tích" là (trong trường hợp này là ví dụ 2 chiều, vì vậy diện tích cũng chỉ là chiều dài). Điện trở suất lớn của mẫu sau đó được đưa ra bởi:LMột

ρbbạntôik= =ReffMộtL

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

Câu hỏi của tôi: Làm cách nào để xác định mức kháng hiệu quả, của mạng?Reff

Tôi đã xem trực tuyến nhưng tất cả những gì tôi có thể tìm thấy là các cuộc thảo luận về mạng vô hạn , nguồn và dòng chìm, v.v. Tôi không quan tâm đến dòng điện hoặc điện áp.

Vấn đề này có thể được giải quyết khi nó đứng?


2
Tôi sẽ cắm nó vào một trình giả lập và để cho trình giả lập giải quyết nó. Bạn có thể xây dựng mô hình của bạn như một mạch gia vị. Sau đó, để tìm kháng cự, chỉ cần sử dụng định luật Ohm (V = I * R). Spice sẽ cho bạn biết hiện tại để bạn có thể tính R.
mkeith

1
Toàn bộ điều có khả năng có thể được tự động hóa bằng cách sử dụng gia vị dòng lệnh, nhưng để chứng minh khái niệm, bạn có thể nhập mạch của mình vào một loại gia vị miễn phí như LTSpice. Áp dụng một điện áp, và hiển thị hiện tại. LTspice cũng có thể hiển thị các chức năng đơn giản như điện áp chia cho dòng điện (điện trở).
mkeith

Darcy, có một số cách tiếp cận. Tôi muốn hỏi một vài câu hỏi trước khi tôi đưa ra bất kỳ suy nghĩ nào. (1) Có một phần mềm rất dễ bạn có thể viết. Bạn đang tìm kiếm cách tiếp cận này? (2) Bạn có thể giải quyết điều này bằng cách sử dụng Phân tích nút truyền thống. Bạn đang tìm kiếm cách tiếp cận này? (3) Vấn đề của bạn chia thành các đỉnhcạnh . (Với nền tảng địa vật lý của bạn, tôi sẽ mong bạn biết ý nghĩa của hai thuật ngữ đó.) Làm thế nào để bạn, một tiên nghiệm, tìm ra các giá trị bạn cắm vào cho các cạnh?
jonk

@jonk Tôi chủ yếu quan tâm đến tùy chọn (1) để tự viết một đoạn mã ngắn để làm điều này. Tôi xác định các điện trở cạnh dựa trên hình học lỗ rỗng tiên nghiệm và điện trở suất đã biết của khoáng chất hoặc chất lỏng đá.
Darcy

Darcy, cũng có những kỹ thuật rút ra từ các mạng không đều hình tam giác ngay lập tức nảy ra trong đầu tôi khi bạn viết, "con đường chất lỏng". Bạn đã đọc bất cứ điều gì về chủ đề đó? Tôi không biết mục tiêu của bạn cuối cùng là gì, nhưng bạn cũng có thể muốn tìm kiếm những mục tiêu này. Chúng sẽ rất tuyệt khi sử dụng cho độ dốc giúp bạn hiểu được "dòng điện" sẽ có xu hướng tập trung ở đâu. Nếu đó là một mối quan tâm.
jonk

Câu trả lời:


11

Ý tưởng cơ bản khá đơn giản. Bạn sắp xếp một ma trận ( ) đại diện cho "các nút" hoặc các đỉnh trong hệ thống của bạn. Mỗi nút này có một "điện áp" có giá trị vô hướng được liên kết với nó có thể được thay đổi hoặc cập nhật khi tiến hành thuật toán. Cũng sẽ có hai nút mà điện áp không thể thay đổi. Chúng ta sẽ áp dụng một "loại pin" ở đây, vì vậy hai nút đó đại diện cho hai đầu của pin này.V

Một cách riêng biệt, hai ma trận khác ( R h ) đại diện cho các cạnh trong hệ thống, ngang và dọc. Đây là những giá trị kháng chiến của bạn, tôi đoán. Tôi không chắc bạn dự định điền những thứ này như thế nào. Nhưng đó là vấn đề của bạn. Kỹ thuật này giả định rằng bạn cũng có thể điền vào các ma trận này.RvRh

Tùy thuộc vào ngôn ngữ máy tính bạn sử dụng, bạn có thể hoặc không thể sử dụng các chỉ số tiêu cực. Không quan trọng. Đó chỉ là vấn đề ghi nhớ những gì bạn đang phải đối mặt.

Giả sử chiều dài được chia thành N L phần và rằng "chiều dài" Một được chia thành N Một phần. Sau đó, bạn sẽ cần phải xây dựng một ma trận với ( N L + 1 )( N A + 1 ) đỉnh cho các giá trị điện áp vô hướng. (hoặc lớn hơn). Bạn cũng sẽ cần những hai ma trận khác với N Một( N L + 1 ) các cạnh thẳng đứng và N L( N A + 1LNLMộtNMột(NL+1)(NMột+1)NMột(NL+1) các cạnh ngang giữa các đỉnh đó.NL(NMột+1)

Hiện nay. Khởi tạo tất cả các đỉnh bằng . Chọn một trong các đỉnh bên trái (tốt nhất là ở giữa) và lưu ý nó là 00VGiá trị V KHÔNG được phép thay đổi. Sử dụng bất cứ phương pháp nào bạn muốn cho việc này. Chọn một trong các đỉnh bên phải (tốt nhất là ở giữa) và thay đổi giá trị của nó thành 10V , trong khi một lần nữa lưu ý rằng giá trị của nó KHÔNG được phép thay đổi. Một kỹ thuật hoạt động ở đây là chỉ cần để nó thay đổi bình thường nhưng sau đó thay thế giá trị từng bước. Nhưng nó không quan trọng bằng cách bạn đạt được điều này, miễn là bạn đạt được nó.1V

(Có những kỹ thuật khác vì lý do hiệu quả. Nhưng có lẽ không đáng bận tâm với chúng ở đây.)

Bây giờ đối với thuật toán, đôi khi được gọi là bảng kiểm tra hoặc thuật toán đỏ-đen . Di chuyển qua ma trận điện áp nút của bạn, xử lý từng nút trong đó tổng của hai chỉ số, là chẵn, thực hiện phép gán đơn giản sau:Tôi+j

Vi,j=Rhi,j1Rhi,j(Vi1,jRvi,j+Vi+1,jRvi1,j)Rhi,j1Rhi,j(Rvi,j+Rvi1,j)+Rvi1,jRvi,j(Rhi,j+Rhi,j1)+Rvi1,jRvi,j(Vi,j1Rhi,j+Vi,j+1Rhi,j1)Rhi,j1Rhi,j(Rvi,j+Rvi1,j)+Rvi1,jRvi,j(Rhi,j+Rhi,j1)

Phương trình trên không gì khác hơn là tính toán điện áp của một nút trung tâm có bốn điện trở kết nối với nó, trong đó các điện áp ở hai đầu khác của bốn điện trở được biết đến. Điện áp nút trung tâm sau đó được tính từ phương trình trên. Vì ước số là giống nhau cho mỗi số hạng, bạn chỉ cần tính tổng của các tử số và sau đó chia một lần cho mẫu số.

Điều đó sẽ cập nhật tất cả các nút trong đó tổng là chẵn. Bây giờ bạn thực hiện cùng một quy trình cho tất cả các nút trong đó tổng i + j là số lẻ. Khi cả hai bước này đã được thực hiện, bạn đã hoàn thành một chu kỳ.i+ji+j

Nếu cần, đặt lại hai nút đặc biệt (cho và cho 10V như đã thảo luận trước đó.) Hoặc, nếu bạn bảo vệ hai nút đó, không cần thiết lập lại chúng.1V

Bạn đã sẵn sàng cho chu kỳ tiếp theo. Thực hiện các chu kỳ này nhiều lần bạn cảm thấy cần thiết để trạng thái tổng thể ổn định (và nó sẽ.)

Khi bạn dừng quá trình, bạn có thể dễ dàng tìm ra mức kháng cự bằng cách chọn xem xét các nút xung quanh nút được bảo vệ bên trái của bạn hoặc nhìn vào các nút xung quanh nút được bảo vệ bên phải của bạn. (Có thể là một ý tưởng tốt để làm cho ma trận của bạn đủ lớn hơn [1 theo mọi hướng] để bạn thực sự có bốn nút xung quanh một trong hai lựa chọn.) Sự khác biệt về điện áp giữa các nút xung quanh và nút đặc biệt, chia cho điện trở ở các cạnh giữa chúng cho bạn biết hiện tại rời / vào nút đặc biệt của bạn. Vì đây là nút "pin", dòng điện này phải là TẤT CẢ dòng điện. Vì điện áp là , theo định nghĩa, chia 1 cho tổng của bốn dòng điện bạn tìm thấy cho bạn biết tổng trở.1V

Tôi đang nhìn chằm chằm vào một số mã tôi đã viết tổng cộng, với rất nhiều bình luận, chỉ 67 dòng. Vì vậy, nó không khó để viết.

"Tóm tắt ngắn" về ý tưởng này là bạn áp dụng pin và sau đó xem khi các điện áp trải khắp hệ thống. Khi các điện áp ổn định (tiêu chí của bạn cho điều đó), tất cả những gì bạn phải làm là nhìn vào dòng điện đi vào hoặc ra khỏi một cực pin hoặc một cực khác. Cả hai nên có cùng giá trị hiện tại (trong một số giới hạn số) vì những lý do rõ ràng.1V


Tại sao bạn phải tách hệ thống thành i + j = chẵn và i + j = lẻ?

Giả sử bạn tính . Điều này tham chiếu các nút bao quanh V 5 , 5 . Tốt rồi. Giả sử bạn tiếp theo tính V 5 , 6 = f ( V 4 , 6 , V 6 , 6 , V 5 ,V5,5=f(V4,5,V6,5,V5,4,V5,6)V5,5 . Lưu ý rằng trong danh sách các tham số là giá trị bạn vừa tính choV 5 , 5 ? Điều này sẽ "làm nhòe" mọi thứ rất nhiều. Đó không phải là âm thanh. Thay vào đó, mỗi chu kỳ lẻ / chẵn sẽ "xuất hiện như thể" nó xảy ra cùng một lúc. Vì vậy, tính toán tiếp theo của bạn phải làV 5 , 7 =f ( V 4 , 7 , V 6 , 7 , V 5 , 6 , V 5 , 8 )V5,6=f(V4,6,V6,6,V5,5,V5,7)V5,5V5,7=f(V4,7,V6,7,V5,6,V5,8)bởi vì không có đầu vào nào của hàm là các nút được thay đổi trong bước này. Sau đó, bạn xoay quanh và tính toán các thay thế, tránh bị nhòe nhưng hiện đang cập nhật các thay thế. Bạn thực sự phải làm theo cách này.

Ngoài ra, công thức có giống nhau cho cả bước chẵn và lẻ không?

Vâng, nó giống nhau.

Tất cả có thể được giải quyết trong một bước bằng cách sử dụng một số loại hệ thống tuyến tính Ax = b trong đó A là toán tử tuyến tính và b cung cấp các điều kiện biên? Nhìn vào nó, có vẻ hơi giống với các phương pháp sai phân hữu hạn để giải các phương trình vi phân từng phần ..

Có một kết nối. Tôi nghĩ nó được gọi là triển khai 'không ma trận'.


Đây là một ví dụ. Tập hợp các giá trị điện trở sau đây được đặt vào LTSpice để mô phỏng:

enter image description here

1V30.225mA30.224552mA

Tôi đã chạy chương trình VB.NET sau đây:

Module GEOGRID

    Const NL As Integer = 2
    Const NA As Integer = 2
    Const INF As Double = 1.0E+32

    Sub Main()

        Static Rh As Double(,) = New Double(NL + 2, NA + 1) {
                    {INF, INF, INF, INF},
                    {INF, 5, 21, INF},
                    {INF, 76, 10, INF},
                    {INF, 32, 22, INF},
                    {INF, INF, INF, INF}}
        Static Rv As Double(,) = New Double(NA + 1, NL + 2) {
                    {INF, INF, INF, INF, INF},
                    {INF, 61, 50, 16, INF},
                    {INF, 56, 45, 18, INF},
                    {INF, INF, INF, INF, INF}}
        Dim V As Double(,) = New Double(NL + 2, NA + 2) {
                    {0, 0, 0, 0, 0},
                    {0, 0, 0, 0, 0},
                    {0, 0, 0, 1, 0},
                    {0, 0, 0, 0, 0},
                    {0, 0, 0, 0, 0}}
        Dim PDE As Func(Of Integer, Integer, Double) = Function(ByVal i As Integer, ByVal j As Integer) (
                    Rh(i, j - 1) * Rh(i, j) * (V(i - 1, j) * Rv(i, j) + V(i + 1, j) * Rv(i - 1, j)) +
                    Rv(i - 1, j) * Rv(i, j) * (V(i, j - 1) * Rh(i, j) + V(i, j + 1) * Rh(i, j - 1))
                  ) / (
                    Rh(i, j - 1) * Rh(i, j) * (Rv(i, j) + Rv(i - 1, j)) +
                    Rv(i - 1, j) * Rv(i, j) * (Rh(i, j) + Rh(i, j - 1))
                  )
        Dim IV As Func(Of Integer, Integer, Double) = Function(ByVal i As Integer, ByVal j As Integer) 0 +
                    (V(i, j) - V(i - 1, j)) / Rv(i - 1, j) + (V(i, j) - V(i + 1, j)) / Rv(i, j) +
                    (V(i, j) - V(i, j - 1)) / Rh(i, j - 1) + (V(i, j) - V(i, j + 1)) / Rh(i, j)
        Dim idx As Integer = NA \ 2 + 1
        Dim jdx1 As Integer = NL + 1
        Dim jdx2 As Integer = 1
        For x As Integer = 1 To 1000
            For k As Integer = 0 To (NA + 1) * (NL + 1) - 1 Step 2
                Dim i As Integer = k \ (NL + 1)
                Dim j As Integer = k - i * (NL + 1) + 1
                i += 1
                If Not (i = idx AndAlso (j = jdx1 OrElse j = jdx2)) Then V(i, j) = PDE(i, j)
            Next
            For k As Integer = 1 To (NA + 1) * (NL + 1) - 1 Step 2
                Dim i As Integer = k \ (NL + 1)
                Dim j As Integer = k - i * (NL + 1) + 1
                i += 1
                If Not (i = idx AndAlso (j = jdx1 OrElse j = jdx2)) Then V(i, j) = PDE(i, j)
            Next
        Next
        Console.WriteLine("R = " & (1.0 / IV(idx, jdx1)).ToString)
        Console.WriteLine("R = " & (-1.0 / IV(idx, jdx2)).ToString)
    End Sub

End Module

R=33.0856844038614Ω

Chương trình trên cho thấy cách thiết lập các điện trở, dọc và ngang, cũng như ma trận điện áp, để nó đơn giản hóa một số thử nghiệm cho các nút không tồn tại và / hoặc giá trị điện trở. Mã này sạch hơn một chút, theo cách này, mặc dù nó đòi hỏi một số phần tử mảng nhiều hơn. (Tôi chỉ đơn giản là làm cho các giá trị điện trở phụ trở nên vô hạn về giá trị.) Chỉ cần so sánh cách tôi thiết lập các mảng với cách đặt sơ đồ, và tôi nghĩ bạn sẽ có thể tìm ra chính xác chi tiết tại đây.

Tất nhiên, tôi cũng đã hack các điện trở và giá trị nút, mà không thực hiện điều này theo bất kỳ cách nào một chương trình mục đích chung để đọc bảng giá trị. Nhưng sự chung chung đó là khá dễ dàng để thêm. Và mã này sẽ làm cho mọi thứ tôi viết hoàn toàn không rõ ràng.

xx

0V1V

(Được rồi. Thêm một lưu ý cuối cùng. Điều này sẽ được nhắm mục tiêu tốt hơn nhiều tại F # hoặc bất kỳ trình biên dịch tử tế nào nhắm vào hệ thống máy tính song song ồ ạt. Mỗi phép tính trong "đỏ" hoặc "đen" có thể được thực hiện song song, hoàn toàn độc lập với nhau. F # làm cho điều này trở nên tầm thường. Vì vậy, được mã hóa trong F #, bạn có thể chạy nó trên tất cả các lõi có sẵn của mình mà không có gì đặc biệt để làm. Nó chỉ hoạt động. Chỉ cần lưu ý trong trường hợp bạn đang thu thập RẤT NHIỀU dữ liệu theo cách nào đó và có thể muốn lấy lợi thế đầy đủ của một hệ thống đa lõi.)


LƯU Ý KẾT THÚC:

Đạo hàm khá đơn giản từ KCL. Đặt bốn điện trở vào sắp xếp sau:

schematic

mô phỏng mạch này - Sơ đồ được tạo bằng CircuitLab

Áp dụng KCL:

VR1+VR2+VR3+VR4=V1R1+V2R2+V3R3+V4R4V=(V1R1+V2R2+V3R3+V4R4)(R1∣∣R2∣∣R3∣∣R4)

Một số chơi xung quanh với đại số nhận được kết quả tôi đã sử dụng trong mã.


Cảm ơn câu trả lời tuyệt vời. Tôi có một vài câu hỏi làm rõ. 1) Tại sao bạn phải tách hệ thống thànhTôi+j = chẵn và Tôi+j= lẻ? 2) Tất cả có thể được giải quyết trong một bước bằng cách sử dụng một số loại hệ thống tuyến tínhMộtx= =b Ở đâu Một là một toán tử tuyến tính và bcung cấp các điều kiện biên? Nhìn vào nó, có vẻ hơi giống với các phương pháp sai phân hữu hạn để giải phương trình vi phân từng phần ...
Darcy

Ngoài ra, công thức có giống nhau cho cả bước chẵn và lẻ không?
Darcy

2
@Darcy Tôi sẽ viết thêm một chút để giúp giải quyết những vấn đề này.
jonk

Cảm ơn một lần nữa cho các chi tiết. Một câu hỏi cuối cùng (và có lẽ đây có thể là một câu hỏi hoàn toàn riêng biệt nhưng tôi sẽ hỏi nó ở đây): nếu tất cả các điện trở trong mạng có cùng điện trở (giả sử 1 Ohm), thì nó cũng tuân theo rằng điện trở hiệu quả cũng phải 1 giờ? Trực giác của tôi nói rằng nó nên, nhưng tôi không chắc chắn.
Darcy

1
@Darcy Trực giác của bạn sai và kết quả MATLAB là chính xác.
jonk

1

Bạn chắc chắn có thể sử dụng cách tiếp cận của mạng điện trở 2D để mô hình hóa một vấn đề 2D nhưng điều đó có thể hơi khó khăn khi di chuyển đến 3 chiều. Bạn có thể muốn xem xét sử dụng cách tiếp cận truyền thống hơn (những ngày này) với các dây dẫn âm lượng được xác định trong các miền của bạn với độ dẫn thích hợp được gán cho mỗi. Mã phần mềm miễn phí FEMM ( http://www.femm.info/wiki/HomePage ) rất có khả năng và có thể được sử dụng cho 2D, đối xứng trục và 3D. Từ đó, bạn có thể xem xét chuyển sang các mã có khả năng hơn nhiều như SCIrun ( https://www.sci.utah.edu/) là một mã học thuật cho các vấn đề về khối dẫn có độ phức tạp đáng kể. Tôi sử dụng nó thường xuyên cho các mắt lưới của hơn một triệu tứ diện. Mặc dù nó chủ yếu được phát triển cho mô hình sinh học, nó sẽ hoạt động tốt cho những gì bạn đang làm. Các ví dụ về các vấn đề chuyển tiếp trong bộ công cụ chuyển tiếp / nghịch đảo sẽ giúp bạn đi. Bạn cũng có thể tìm thấy các vấn đề nghịch đảo có giá trị cho chụp cắt lớp trở kháng. Tôi thường sử dụng phiên bản 4 vì phiên bản 5 vẫn đang trong quá trình hoàn thiện. Phần mềm này cũng có giao diện với tetgen, đây là một mã xây dựng lưới tuyệt vời.

Cuối cùng, nếu bạn không phản đối việc tiêu tiền thì luôn có COMSOL, rất dễ sử dụng (và khá đắt).

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.