Cơ bản về Monte Carlo trong SPICE: Lý thuyết và Thực hành

Zachariah Peterson
|  Created: Tháng Tư 14, 2022  |  Updated: Tháng Chín 2, 2024
Monte Carlo trong SPICE

Mỗi khi bạn đặt một linh kiện vào PCB của mình, đó gần như là bạn đang đánh cược. Tất cả các linh kiện đều có dung sai, và một số trong số đó rất chính xác (ví dụ như điện trở), nhưng các linh kiện khác có thể có dung sai rất lớn đối với giá trị danh nghĩa của chúng (ví dụ, cuộn cảm dây quấn hoặc ferrites). Trong trường hợp dung sai của các linh kiện này trở nên quá lớn, làm thế nào bạn có thể dự đoán dung sai này sẽ ảnh hưởng như thế nào đến mạch của bạn?

Trong khi bạn có thể tính toán các biến thể xung quanh giá trị điện tử danh nghĩa (điện áp, dòng điện, hoặc công suất) bằng tay, việc thực hiện các phép tính này bằng tay rất mất thời gian, đặc biệt là trong các mạch lớn. Tuy nhiên, các bộ mô phỏng SPICE đã mượn một loại mô phỏng rất hữu ích từ lý thuyết xác suất để giúp bạn trả lời những câu hỏi này. Loại mô phỏng này được biết đến là Monte Carlo, và bây giờ bạn có thể thực hiện mô phỏng này với gói SPICE trong Altium Designer.

Trong bài viết này, tôi sẽ cung cấp một cái nhìn tổng quan về lý thuyết liên quan đến việc hiểu và xây dựng các mô phỏng Monte Carlo, sau đó tôi sẽ trình bày một số kết quả ví dụ cho mạch điều chỉnh công suất và cách kết quả bị ảnh hưởng bởi dung sai. Các mô phỏng Monte Carlo tạo ra rất nhiều dữ liệu mà bạn có thể sử dụng để lấy thống kê cho hoạt động mạch của bạn, và điều này cho bạn một ý tưởng tốt về việc sản phẩm của bạn có khả năng cao thực hiện theo thông số kỹ thuật của bạn do dung sai trên giá trị linh kiện hay không.

Monte Carlo trong Mô phỏng SPICE

Các mô phỏng Monte Carlo hoạt động trên một quy trình đơn giản: tạo ngẫu nhiên một tập hợp các số, sau đó sử dụng những số ngẫu nhiên đó trong một mô hình toán học để tính toán điều gì đó hữu ích. Khi một mô phỏng Monte Carlo được sử dụng trong SPICE, mô phỏng tạo ra giá trị linh kiện trong mạch của bạn một cách ngẫu nhiên sử dụng các dung sai mà bạn định nghĩa. Sau đó, nó sử dụng các giá trị linh kiện được tạo ngẫu nhiên này để chạy một mô phỏng SPICE tiêu chuẩn. Quá trình này được lặp lại nhiều lần (đôi khi là 100 lần) để cung cấp cho bạn một tập hợp dữ liệu mô tả cách hành vi mạch của bạn thay đổi do dung sai linh kiện.

Các gói SPICE thực hiện mô phỏng Monte Carlo thông qua một quy trình đơn giản. Điều này bao gồm việc tạo số ngẫu nhiên và tính toán điện áp và dòng điện trong thuật toán SPICE tiêu chuẩn, tiếp theo là hiển thị kết quả trong một bảng hoặc đồ thị:

  1. Chọn các linh kiện bạn muốn trải qua biến thể ngẫu nhiên và xác định độ chính xác cho linh kiện.
  2. Chọn một phân phối cho độ chính xác của linh kiện (Gaussian được sử dụng phổ biến nhất) và số lần mô phỏng.
  3. Bộ mô phỏng SPICE tạo ra giá trị linh kiện ngẫu nhiên sử dụng giá trị danh nghĩa được xác định trong sơ đồ và độ chính xác/phân phối được xác định trong Bước 2.
  4. Bộ mô phỏng SPICE tính toán điện áp/dòng điện/công suất mục tiêu tại mỗi điểm trong mạch sử dụng giá trị linh kiện ngẫu nhiên trong Bước 3.
  5. Bước 3 và 4 được lặp lại cho đến khi đạt được số lần mô phỏng mong muốn.
  6. Kết quả từ Bước 5 được tổng hợp vào một biểu đồ hoặc bảng để kiểm tra hoặc phân tích thêm.

Ví dụ: Mô phỏng Monte Carlo của một Bộ Điều Chỉnh Điện Áp

Trong ví dụ sắp tới, tôi đã sử dụng mạch chuyển đổi buck được hiển thị bên dưới. Mạch này sử dụng một cuộn cảm tương đối lớn trong phần chính (L1), tiếp theo là một bộ lọc L ở đầu ra để giảm thêm tiếng ồn chuyển mạch. Tụ điện đầu ra có một điện trở snubber để giúp giảm cường độ của phản ứng chuyển tiếp và làm mượt điện áp đầu ra.

Monte Carlo SPICE buck converter
Mạch chuyển đổi Buck tôi sẽ sử dụng trong mô phỏng ví dụ này.

Mạch này được thiết kế để giảm điện áp đầu vào từ 25 V xuống còn khoảng 6,75 V. Trong mô phỏng của tôi, tôi sẽ cho phép giá trị của cuộn cảm biến đổi lên đến 30%, và tôi sẽ thực hiện 15 lần chạy. Sự biến đổi lớn này có thể được tìm thấy trong một số loại cuộn cảm dây quấn và ferrit, và việc sử dụng một sự biến đổi lớn như vậy có thể giúp bạn thấy được giá trị cực đại của dao động và quá điện áp có thể là bao nhiêu.

Lý do khác mà cuộn cảm là thành phần biến đổi trong đó là nó là nhân tố quyết định chính của dao động đầu ra khi bộ chuyển đổi hoạt động trong chế độ dẫn liên tục. Chúng ta thậm chí có thể đi xa hơn nữa và xem xét dòng điện qua cuộn cảm để xem dòng điện cuộn cảm tiếp cận mức nào với dẫn liên tục nếu chúng ta thực sự cần xác minh hành vi điện tử tồi tệ nhất.

Kết quả

Một số kết quả ban đầu cho thấy phản ứng tạm thời khi có sự biến đổi 30% trong giá trị của các linh kiện được hiển thị dưới đây. Từ cửa sổ này, chúng ta thấy rằng bộ chuyển đổi đã có một số độ nhô cao, dao động từ 8.37 V đến 8.56 V, tùy thuộc vào giá trị của các cuộn cảm. Giá trị cho đường viền dưới (màu xanh lá, L1 = 91.9 uH, L2 = 6.16 uH) và đường viền trên (màu tím, L1 = 122uH, L2 = 7.64 uH) được đánh dấu trên biểu đồ dưới đây.

Monte Carlo SPICE simulation
Kết quả phân tích tạm thời cho bộ chuyển đổi Buck của chúng tôi được tạo ra bằng cách sử dụng Monte Carlo trong gia vị.

Mỗi đường cong tương ứng với một cặp giá trị cuộn cảm được tạo ngẫu nhiên. Từ kết quả, chúng ta có thể thấy rõ ràng ảnh hưởng của sự biến đổi trong cuộn cảm:

  1. Có một số biến đổi trong thời gian tăng, độ nhô cao, và phản ứng tạm thời khi bộ điều chỉnh bắt đầu hoạt động.
  2. Mỗi giá trị độ tự cảm khả dĩ tạo ra những thay đổi rất nhỏ trong dao động của điện áp đầu ra.

Thực tế là dao động đầu ra vẫn rất thấp là một điều đáng khích lệ; nó có nghĩa là chúng ta có thể tin tưởng vào thiết kế này để tạo ra dao động đồng nhất giả định rằng có những biến đổi nhỏ trong tất cả các tham số khác.

Tại sao Sự Thay Đổi trong Dao Động Lại Thấp Đến Vậy?

Không nhìn vào phương trình cho dao động đầu ra dưới dạng một hàm của độ tự cảm đầu ra, tự nhiên chúng ta sẽ cho rằng một sự thay đổi trong độ tự cảm khoảng +/- 30% sẽ tạo ra những biến đổi lớn tương tự trong độ tự cảm đầu ra. Tuy nhiên, nếu chúng ta xem xét phương trình cho dao động hình sóng điện áp trên dòng điện đầu ra cho một bộ chuyển đổi buck hoạt động trong chế độ dẫn liên tục, chúng ta có thể thấy tại sao điều này không phải là trường hợp:

Monte Carlo SPICE
Phản hồi dòng điện đầu ra cho bộ chuyển đổi Buck.

Vì giá trị độ tự cảm nằm ở mẫu số, tác động của những biến đổi này được giảm bớt. Bạn có thể thấy điều này bằng cách lấy một sự biến đổi nhỏ xung quanh các giá trị cuộn cảm danh nghĩa và xem xét cách mà độ nhạy dao động tỷ lệ với bất kỳ biến đổi nào trong các độ tự cảm:

Monte Carlo SPICE
Sự thay đổi dòng điện phản hồi đầu ra cho công suất 30% của chúng ta trên các dây điện. Chúng ta có thể thấy rằng tác động của những biến thể này nhỏ hơn khi các inductor lớn hơn.

Tác động của những biến đổi này được giảm bớt bởi giá trị của cuộn cảm. Nói cách khác, một dung sai 30% cho một cuộn cảm lớn sẽ tạo ra một sự thay đổi nhỏ hơn nhiều trong dao động đầu ra so với cùng một dung sai 30% trên một cuộn cảm nhỏ hơn. Hành vi này là điển hình khi mối quan hệ giữa một giá trị điện (dòng điện trong trường hợp này) liên quan không tuyến tính đến giá trị của thành phần đang được xem xét.

Ngoài ra, tần số cắt 3 dB trong bộ lọc đầu ra (L2 + C2) đã thấp hơn tần số PWM điều chế Q1. Tần số cắt 3 dB trong phần bộ lọc này là 41.1 kHz, trong khi tần số dao động phù hợp với tần số PWM là 100 kHz. Dao động sẽ được lọc đáng kể, vì vậy những biến đổi trong tần số cắt không ảnh hưởng nhiều đến dao động đầu ra.

Phân Tích Thống Kê

Nếu bạn định thực hiện phân tích Monte Carlo, bạn có thể cần phải làm một số phân tích thống kê để thực sự hiểu giới hạn của hành vi mạch do biến đổi ngẫu nhiên trong giá trị linh kiện. Trong đồ thị dưới đây, tôi đã lấy kết quả phân tích chuyển tiếp ở trên và trích xuất điện áp tối đa xảy ra trong giai đoạn bật do quá điện áp. Tôi đã tính toán trung bình và độ lệch chuẩn để định lượng ảnh hưởng của sự biến đổi trong giá trị cảm ứng.

Để xuất kết quả chuyển tiếp của bạn trong định dạng CSV hoặc định dạng dữ liệu khác, sử dụng lệnh File → Export → Plot từ menu chính trong Altium Designer. Bạn có thể sau đó nhập dữ liệu của mình vào Excel, MATLAB, Mathematica, hoặc chương trình phân tích dữ liệu khác.

Monte Carlo SPICE statistics
Độ lệch chuẩn và trung bình trong điện áp over-suit được xác định từ các phản ứng tạm thời.

Nếu chúng ta xây dựng một khoảng tin cậy sử dụng dữ liệu đã thu thập và các giá trị thống kê trên, 95% số mạch này sẽ thể hiện một sự vượt quá dao động từ 8.375 V đến 8.605 V. Nếu chúng ta muốn thực hiện phân tích sâu hơn, như phân tích trường hợp xấu nhất, chúng ta có thể sử dụng một trong hai giá trị cực đoan này để hiểu hành vi của mạch.

Đánh Giá Độ Tin Cậy Với Bộ Dữ Liệu Lớn Hơn

Để đánh giá độ tin cậy một cách thống kê, bạn có thể chạy một số lượng lớn hơn các mô phỏng, vì vậy bạn sẽ có rất nhiều điểm dữ liệu để xem xét. Với nhiều dữ liệu hơn, bạn có thể xây dựng một biểu đồ tần suất từ các phép đo đã trích xuất và sử dụng điều này để có được một phân phối xác suất định nghĩa hành vi của mạch; bạn có thể sau đó sử dụng các giá trị này để xác định xác suất mà mạch hoạt động trong một chế độ hoàn toàn không chấp nhận được (vượt qua các giá trị cực đoan trong khoảng tin cậy của chúng ta).

Chỉ để vui, tôi đã tăng số lượng mô phỏng thực hiện trong phân tích này lên 100 lần. Kết quả biến thiên với 100 lần lặp được hiển thị bên dưới. Từ những đường cong này, chúng ta có thể lại trích xuất điện áp vượt quá tối đa trong giai đoạn bật.

Monte Carlo SPICE statistics
Phản ứng nhất thời trong 100 chu kỳ đầu tiên của giai đoạn chuyển tiếp. Từ tập hợp 100 đường cong này, chúng ta có thể trích xuất điện áp over-suit cho mỗi đường cong và xác định một sự phân bố xác suất mô tả điện áp tối đa.

Nếu bạn xuất kết quả ra Excel, bạn sẽ có đủ dữ liệu để tạo một biểu đồ tần suất như cái được hiển thị dưới đây. Đường cong màu cam chồng lên cho thấy hàm tích lũy được xác định từ dữ liệu đã được phân loại; nó cho thấy phần trăm dữ liệu nằm ở hoặc dưới bin hiện tại và có thể được sử dụng như một biện pháp của phạm vi hoạt động dự kiến của mạch này.

Monte Carlo SPICE statistics
Thống kê điện áp quá tải được xác định từ 100 mô phỏng.

Điều cần rút ra ở đây là chúng ta có một cách nhanh chóng và dễ dàng để kiểm tra hiệu suất mạch sẽ thay đổi như thế nào dựa trên sự chênh lệch của các thành phần. Nếu kết quả không nằm trong phạm vi quy định hoặc biên độ an toàn của chúng ta, thì mạch sẽ cần được chỉnh sửa trước khi tạo bố cục PCB và lắp ráp một nguyên mẫu.

Nếu bạn quan tâm đến việc chạy phép mô phỏng Monte Carlo cho mạch của mình trong Altium Designer®, bạn không cần một gói mô phỏng bên ngoài hay phần mềm phân tích chuyên biệt. Mọi thứ bạn cần để đánh giá mạch của mình và thực hiện các phép mô phỏng độ tin cậy có thể được tìm thấy ngay trong trình chỉnh sửa sơ đồ trong Altium Designer. Khi bạn đã hoàn thành PCB và bạn sẵn lòng chia sẻ thiết kế của mình với các cộng tác viên hoặc nhà sản xuất của bạn, bạn có thể chia sẻ thiết kế đã hoàn thành thông qua nền tảng Altium 365™. Mọi thứ bạn cần để thiết kế và sản xuất điện tử tiên tiến có thể được tìm thấy trong một gói phần mềm duy nhất.

Chúng ta mới chỉ khám phá bề nổi của những gì có thể thực hiện với Altium Designer trên Altium 365. Bắt đầu dùng thử miễn phí Altium Designer + Altium 365 ngay hôm nay.

About Author

About Author

Zachariah Peterson has an extensive technical background in academia and industry. He currently provides research, design, and marketing services to companies in the electronics industry. Prior to working in the PCB industry, he taught at Portland State University and conducted research on random laser theory, materials, and stability. His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental sensors, and stochastics. His work has been published in over a dozen peer-reviewed journals and conference proceedings, and he has written 2500+ technical articles on PCB design for a number of companies. He is a member of IEEE Photonics Society, IEEE Electronics Packaging Society, American Physical Society, and the Printed Circuit Engineering Association (PCEA). He previously served as a voting member on the INCITS Quantum Computing Technical Advisory Committee working on technical standards for quantum electronics, and he currently serves on the IEEE P3186 Working Group focused on Port Interface Representing Photonic Signals Using SPICE-class Circuit Simulators.

Related Resources

Tài liệu kỹ thuật liên quan

Back to Home
Thank you, you are now subscribed to updates.