Tự động hóa LTSpice


15

Tôi có bộ chuyển đổi tăng tốc chạy bằng pin và tôi đang cố gắng đo điện áp đầu vào (pin) tối đa trong các điều kiện tải khác nhau của dòng điện cao (chu kỳ nhiệm vụ / chu kỳ khác nhau) ngoài nhiều loại pin (điện áp khác nhau / điện trở trong). Vì tôi đang mô phỏng một lượng thời gian hoạt động lớn (tương đối) như vậy nên các tệp mô phỏng đang trở nên khá đáng kể, chưa kể chúng mất một thời gian. Tôi muốn tự động hóa LTSpice để tôi có thể thay đổi các giá trị thành phần theo chương trình và chạy lại mô phỏng và thu thập dữ liệu (giá trị của những thứ như điện áp hoặc dòng điện). Tôi biết điều đó:

  • Tệp WAV có thể được sử dụng để nhập / xuất dữ liệu từ chương trình
  • Chương trình có thể được chạy từ dòng lệnh

Cho đến nay, tùy chọn tốt nhất của tôi dường như sử dụng kết hợp cả hai tùy chọn này cùng với mã / tập lệnh của riêng tôi theo cách hoàn thành mục tiêu của tôi, nhưng tôi chỉ tự hỏi liệu có cách nào tốt hơn ngoài kia không.

Có ai đã tự động LTSpice hoặc biết nếu đã có bất kỳ loại API tự động hóa nào được viết cho nó (bởi nhà sản xuất hoặc bên thứ 3)?

Lý tưởng nhất là tôi muốn có một bộ giải, như vậy tôi đã cho nó các tham số mong muốn và nó đã thử các giá trị thành phần khác nhau cho đến khi tìm thấy giải pháp "tối ưu" cho các ràng buộc của tôi.


Tuyến tính FAE của bạn đã nói gì? Tôi sẽ hỏi họ trước.
Brian Carlton

1
Bạn có biết về các lệnh .STEP và .PARAM không? Không chắc chắn nếu nó sẽ đạt được chính xác những gì bạn muốn, nhưng tôi sẽ đăng một câu trả lời với một vài ví dụ nếu bạn quan tâm.
Oli Glaser

1
Câu hỏi này dường như lạc đề vì nó không liên quan đến thiết kế điện tử.
Leon Heller

12
@LeonHeller trên hành tinh GÌ SPICE không phải là một phần của thiết kế?
giữ chỗ

1
Bạn sẽ thấy rằng các tùy chọn Monte Carlo hoàn toàn phù hợp với điều này. Bạn có thể Schmoo các thông số khác nhau và nó cũng có thể hiển thị các biến thể. LT-Spice CÓ THỂ đã vô hiệu hóa điều này bởi SPICE thực sự hỗ trợ điều này. Bắt đầu từ đó
giữ chỗ

Câu trả lời:


15

Chạy một mô phỏng nhiều lần và thay đổi nhiều giá trị thành phần có liên quan nhiều hơn một chút so với chỉ thay đổi một giá trị (điều này không quá tệ)

Đây là khái niệm để thay đổi một giá trị:

  • Thêm một câu lệnh .param bằng biểu tượng chỉ thị SPICE ở phía bên phải, ví dụ: đối với giá trị kháng .param X=R
  • Để sử dụng nó, bạn sẽ nhập {x} vào giá trị điện trở, sau đó bao gồm ví dụ: .step param X 100 500 50bước giá trị từ 100 đến 500 với bước tăng 50.

Thí dụ:

Bước ví dụ

Kết quả:

Đồ thị

Đối với nhiều giá trị, cách duy nhất tôi thấy để làm việc là sử dụng danh sách các giá trị cho X và sử dụng câu lệnh bảng. Điều này có lẽ được giải thích tốt nhất với một ví dụ (đọc trợ giúp cho các lệnh được sử dụng có thể sẽ hữu ích ở đây). Nhưng lưu ý rằng cú pháp lệnh bảng nằm trong bảng biểu mẫu (index, x1, y1, x2, y2, .... xn, yn), lấy chỉ mục làm đầu vào và trả về giá trị nội suy cho x = index dựa trên x được cung cấp , y cặp.

Trong một trong những mô phỏng của tôi, tôi cần thực hiện 12 mô phỏng trong khi thay đổi 3 giá trị thành phần khác nhau, đây là các lệnh:

.step param X list 1 2 3 4 5 6 7 8 9 10 11 12
.param Rin1 = table(X, 1, 1,1p, 2, 1p, 3, 1p, 4, 4478, 5, 4080, 6, 3400, 7, 2200, 8, 1p, 9, 1p, 10, 1p, 11, 1p, 12, 1p)
.param Rin2 = table(X, 1, 4997, 2, 4997, 3, 4997, 4, 499, 5, 897, 6, 1577, 7, 2777,  8, 4997, 9, 4997, 10, 4997, 11, 4997, 12, 4997)
.param Tval = table(X, 1, 56, 2, 56, 3, 27, 4, 1G, 5, 1G, 6, 1G, 7, 1G, 8, 1G, 9, 330, 10, 330, 11, 120, 12, 120)
.param Kval = table(X, 1, 316, 2, 147, 3, 147, 4, 6340, 5, 6340, 6, 6340, 7, 6340, 8, 6340, 9, 6340, 10, 825, 11, 825, 12, 316)

Kết quả:

Ví dụ đạt được

Hy vọng rằng bạn có được ý tưởng, bạn có thể tạo ra một tập lệnh sẽ tạo ra các lệnh SPICE cần thiết khi bạn điền vào các giá trị mong muốn của bạn. Hoặc chỉ cần tạo một mẫu (ví dụ: tôi chỉ sao chép và dán phần trên vào một vài mô phỏng khác nhau và thay đổi các giá trị)

Nếu những điều trên không làm những gì bạn muốn, thì có thể nhìn vào một cái gì đó như multisim của NI (tôi nghĩ rằng nó có một số tùy chọn mô phỏng hàng loạt, mặc dù tôi không chắc chúng hữu ích như thế nào) Cũng có thể hữu ích khi hỏi về LTSPice diễn đàn và xem nếu ai đó biết về một cách tốt hơn để làm việc.


3
Điều này không sạch như tôi mong muốn, nhưng đối với phần mềm miễn phí, tôi chỉ có thể biết ơn vì họ đã ném cho tôi một cục xương. Cảm ơn đã trình diễn kỹ thuật này. Điều này chắc chắn sẽ giúp tôi gần hơn với những gì tôi đang tìm kiếm.
Joel B

1
Cảm ơn bạn, điều này đã giúp tôi tìm ra mô phỏng của tôi. Bây giờ tôi phải tìm ra cách đưa một huyền thoại vào cốt truyện để tôi có thể biết đó là mô phỏng nào.

8

Tôi nghĩ rằng thực sự có thể chạy LTSpice từ dòng lệnh và để nó chạy một mô phỏng thoáng qua:

Trên gió:

cd <wherever LTSpice is installed on your computer>
scad3.exe -Run -b MyCircuit.asc

Trên Linux:

cd ~/.wine/drive_c/Program Files (x86)/LTC/LTspiceIV
wine ./scad3.exe -Run -b MyCircuit.asc

1
Đây là một phát hiện tuyệt vời! Bây giờ tôi đang suy nghĩ làm thế nào tôi có thể sử dụng điều này cho thiết kế tự động.
Joel B

1
@JoelB: vâng, đó cũng là những gì tôi sử dụng nó cho. Thật không may, có một vài thiếu sót: 1) Không giống như trong GUI, bộ giải chạy một luồng, vì vậy nó chậm hơn 2) Bạn không có bất kỳ "báo cáo tiến trình" nào như trong GUI
yellowiepassesby 6/1/2015

3

LTSpice có thể được chạy trong chế độ hàng loạt với công -btắc dòng lệnh.

Từ tệp Trợ giúp LTSpice:

-b: Chạy ở chế độ hàng loạt. Ví dụ: "scad3.exe -b Deck.cir" sẽ để lại dữ liệu trong tệp Deck.raw

Làm thế nào để đọc và giải thích đầu ra .raw được để lại như một bài tập cho người đọc.

Cũng lưu ý, trong số các công tắc dòng lệnh:

-ascii: Sử dụng tệp ASCII .raw. Nghiêm trọng làm giảm hiệu suất chương trình.


Làm thế nào chính xác để tôi chạy nó mặc dù? Trong chế độ dòng lệnh đó là. Tôi thường không phải là người dùng windows và không biết làm thế nào để làm điều này trên máy tính windows.
Tropical_Peach

1
Tôi chưa bao giờ chạy nó theo cách đó. Bạn sẽ phải tự mình thử nó. Bạn có thể mở một cửa sổ lệnh ('cmd.exe' trên menu Bắt đầu) hoặc chạy nó từ bất kỳ ngôn ngữ nào bạn đang sử dụng để sắp xếp các bài kiểm tra của mình.
Photon

Nếu bạn sử dụng matlab, họ có một tập lệnh để chuyển đổi các tệp .raw mathworks.com/matlabcentral/fileexchange/ từ
Spike Spike

3

Bạn đã kiểm tra tại " LTSpice Queue Manager " chưa? ( Liên kết chuyển hướng đến trang web của riêng tôi nơi bạn có thể tải xuống phần mềm nhưng tôi không phải là tác giả của nó, người ban đầu đã chia sẻ chương trình trên một diễn đàn đóng cửa ngày hôm nay. Chia sẻ thông qua trang web của tôi là một cách để khôi phục phần mềm ).

Công cụ này đã giúp tôi rất nhiều trong quá khứ. Bạn có thể chuẩn bị nhiều tệp mô phỏng và chạy chúng theo kiểu xếp hàng.

Quản lý hàng đợi LTSpice


Xếp hàng không phải là tự động hóa.
Harry Svensson

1
Nếu tự động hóa bạn cần là xếp hàng, chắc chắn là vậy! Điều này giải quyết vấn đề của OP trực tiếp.
Daniel

1
Nếu đây là phần mềm nguồn đóng mà bạn không viết, tôi hy vọng người dùng sẽ hiểu được việc chạy nó một cách dễ hiểu.
Dave Tweed

1

Nếu nó phải là LT Spice và bạn không thể vượt qua GUI, tôi sẽ giới thiệu chương trình kịch bản AutoIt. Tôi đã sử dụng nó để tự động hóa một số ứng dụng Windows quan trọng đang thiếu active-x-DDE-COM.dll-bất cứ điều gì. Bạn có thể thiết lập nó để chờ tập tin, nhấn nút windows, menuitem, gọi chương trình với đối số, v.v.

Có một cái nhìn tại:

http://www.autoitscript.com/site/

http://www.autoitscript.com/forum/

Tôi sẽ dùng Winbatch nếu bạn muốn trả tiền cho một chương trình kịch bản.

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.