最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

結(jié)合python與LTspice,讓電路模擬起飛

2023-03-31 11:59 作者:怯默吾聲  | 我要投稿

LTspice是一個(gè)由ADI開(kāi)發(fā)的電路模擬軟件,精致小巧,免費(fèi)使用,模擬方便,簡(jiǎn)直是我最?lèi)?ài)的軟件之一。但是做批量,計(jì)算等一些操作時(shí),就會(huì)顯得有點(diǎn)力不從心,畢竟他只是一款電路模擬軟件啊。

如果LTspice可以和編程語(yǔ)言結(jié)合,可以批量測(cè)試不同原件參數(shù)下,電路的表現(xiàn),或者方便的提取模擬結(jié)果,進(jìn)行進(jìn)一步處理,那簡(jiǎn)直是如虎添翼,直接起飛啦。

PyLTSpice就是這樣一款幫助我們?cè)趐ython中操作LTspice的python庫(kù)!

用一個(gè)小實(shí)驗(yàn)來(lái)試試吧,咱們用它來(lái)測(cè)量一下二極管的伏安特性曲線(xiàn)。

下載安裝LTspice就不在這里說(shuō)啦,首先打開(kāi)LTspice繪制一個(gè)測(cè)量二極管伏安特性曲線(xiàn)的電路:

測(cè)量伏安特性曲線(xiàn)的電路

這里,我暫時(shí)沒(méi)有設(shè)置任何參數(shù),當(dāng)然,如果在你自己的電路中,確定某些參數(shù)是固定的,直接在電路圖中設(shè)定也是可以的。

為了測(cè)量二極管在不同電壓下的表現(xiàn),這里的電源V1的電壓,我希望可以從0V掃描到3.7V.

LTspice直接就可以完成這樣的電壓掃描

選擇Edit Simulation Cmd
在DC sweep中直接完成設(shè)置

文件中出現(xiàn).dc V1 0 3.7 0.01 表示設(shè)置完成

以上都是可以直接在LTspice中實(shí)現(xiàn)的功能。

而電路中的電阻R1我希望可以在程序中再設(shè)置具體值,那也沒(méi)關(guān)系我直接把電阻值設(shè)置為一個(gè)變量就可以了。方法就是給阻值起個(gè)名字,然后放在{ }中。

在LTspice中設(shè)置變量

保存后,給文件起個(gè)名字test.asc,LTspice部分打完收工。

接下來(lái)編寫(xiě)一個(gè)程序來(lái)操作電路和讀取運(yùn)行結(jié)果。

為了使用python實(shí)現(xiàn)這一點(diǎn),首先需要安裝PyLTSpice,

pip install pyltspice

直接安裝完成,開(kāi)始寫(xiě)程序

from matplotlib import pyplot as plt
from PyLTSpice import SimCommander
from PyLTSpice import RawRead ? #導(dǎo)入需要的庫(kù)

Rsh=10

#設(shè)置需要模擬的文件,和ltspice模擬器的路徑
LTC = SimCommander(".\\test.asc",simulator="D:\LTspice\LTspice.exe")

#設(shè)置文件中確定的參數(shù)
LTC.set_parameters(Rsh_value = Rsh)

LTC.run() ?#運(yùn)行
LTC.wait_completion() #等待模擬結(jié)束
LTC.reset_netlist() ?#重置電路。尤其是需要多次模擬運(yùn)行時(shí),必須有這句來(lái)方便后續(xù)模擬

######################電路模擬運(yùn)行后結(jié)果都保存在raw文件中,下面來(lái)讀取運(yùn)行結(jié)果
# 讀取raw文件
raw_file = ".\\test_1.raw"
LTR = RawRead(raw_file)
#讀取raw文件中的數(shù)據(jù)
Vin = LTR.get_trace('V(n001)')
IR1 = LTR.get_trace("I(R1)")
voltage = Vin.get_wave(0)
current=IR1.get_wave(0) ?#獲得運(yùn)行軌跡,如電源的電壓變化,R1的電流變化
#可以讀取的項(xiàng)目在軟件的pick visible Traces中可以看到

#######################使用簡(jiǎn)單歐姆定律計(jì)算二極管上的分壓
Vr = current*Rsh
Vd = voltage-Vr

################使用matplotlib打印二極管伏安特性
plt.plot(Vd,current)
plt.ylabel('Currrent (A)')
plt.xlabel('Voltage (V)')
#plt.yscale('log')
plt.grid() #顯示坐標(biāo)網(wǎng)格
plt.show()

語(yǔ)句的含義都在注釋中,整體來(lái)說(shuō),就是調(diào)用函數(shù)把電路運(yùn)行一遍,運(yùn)行之前也可以調(diào)用函數(shù)給電路中的變量賦值。運(yùn)行的結(jié)果會(huì)被自動(dòng)保存在raw文件中。然后讀取raw獲得自己需要的數(shù)據(jù),最后處理數(shù)據(jù)并繪圖。

這里是運(yùn)行結(jié)果。

二極管伏安特性曲線(xiàn)

怎么樣,是不是很nice。不妨也試試?yán)L制三極管的伏安特性曲線(xiàn)?

現(xiàn)在你甚至可以利用程序自動(dòng)進(jìn)行電路參數(shù)調(diào)優(yōu)。發(fā)揮你的想象力,現(xiàn)在又多出了無(wú)限可能。

結(jié)合python與LTspice,讓電路模擬起飛的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
龙泉市| 南充市| 桂林市| 江孜县| 永德县| 苍溪县| 孝感市| 巨野县| 班玛县| 惠东县| 唐海县| 甘肃省| 闸北区| 石家庄市| 永仁县| 普兰县| 池州市| 阿图什市| 信宜市| 桐乡市| 永胜县| 房产| 锡林郭勒盟| 贵南县| 琼海市| 额尔古纳市| 正安县| 观塘区| 游戏| 天峨县| 望城县| 紫阳县| 四川省| 开阳县| 沅陵县| 城固县| 浠水县| 莱州市| 曲松县| 托克逊县| 都匀市|