91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在LTspice仿真中實(shí)現(xiàn)偽隨機(jī)數(shù)和真隨機(jī)數(shù)的生成

ADI智庫 ? 來源:ADI智庫 ? 2026-01-09 14:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文討論如何在LTspice仿真中利用flat()、gauss()和mc()函數(shù)來實(shí)現(xiàn)偽隨機(jī)數(shù)和真隨機(jī)數(shù)的生成,并介紹如何使用設(shè)置面板的Hacks部分中的Use the clock to reseed the MC generator(使用時(shí)鐘重新設(shè)置MC生成器的隨機(jī)種子)選項(xiàng)。文章探討了偽隨機(jī)數(shù)和真隨機(jī)數(shù)之間的利弊權(quán)衡,同時(shí)比較了蒙特卡羅統(tǒng)計(jì)仿真與更有針對性的最壞情況仿真之間的差異。

在LTspice原理圖中,有多種方法可模擬隨機(jī)性。LTspice中的flat()、gauss()和mc()函數(shù)支持在LTspice仿真中引入隨機(jī)性。本文以mc()函數(shù)為例,說明如何模擬無源元件值的容差。打開LTspice 后,選擇Help > LTspice Help(“幫助”>“LTspice幫助”,或按F1)可打開《幫助手冊》,了解有關(guān)flat()和gauss()的更多信息。

圖1中的示例使用mc()來設(shè)置R1和C1的標(biāo)稱值和容差。例如,R1的標(biāo)稱值為10 kΩ,容差為5%。mc(x,y)函數(shù)將生成在x*(1-y)和x*(1+y)之間均勻分布的偽隨機(jī)數(shù)。請繼續(xù)閱讀,深入了解偽隨機(jī)數(shù)和真隨機(jī)數(shù)之間的區(qū)別,以及如何強(qiáng)制LTspice生成真隨機(jī)數(shù)。.STEP指令用于指示LTspice運(yùn)行仿真的迭代次數(shù)。在下面的示例中,.STEP指令以1為增量將一個(gè)虛擬參數(shù)從1逐步增加到100,從而進(jìn)行100 次仿真運(yùn)行,其中R1和C1的值都是隨機(jī)生成。

f7628542-eab5-11f0-92de-92fbcf53809c.png

圖1. RC電路使用mc()來設(shè)置無源元件的值和容差

觀察mc()函數(shù)在每一步迭代中的行為:圖2顯示了一個(gè)僅使用電壓源的簡單示例。此示例使用mc()將標(biāo)稱電壓設(shè)置為10 V,并將容差設(shè)置為100%。因此,預(yù)計(jì)將得到一個(gè)在0 V和20 V之間均勻分布的電壓。從波形查看器和SPICE輸出日志中的結(jié)果可以看到,在10次迭代中,電壓變化范圍是2.7 V至19.92 V,分布并不完全均勻,但更多次迭代將有助于確保結(jié)果在統(tǒng)計(jì)上更加合理。

f7cb9dde-eab5-11f0-92de-92fbcf53809c.png

圖2. 電壓源使用mc()生成隨機(jī)電壓

我們不妨更仔細(xì)地觀察,并反復(fù)運(yùn)行這個(gè)仿真。在這些仿真過程中,數(shù)值是否發(fā)生了變化?在我的計(jì)算機(jī)上,每次運(yùn)行仿真時(shí),每一步迭代都得到相同的電壓值。這稱得上“隨機(jī)”嗎?

您所看到的是代碼和計(jì)算機(jī)在生成隨機(jī)數(shù)時(shí)的典型表現(xiàn)。編程語言中的隨機(jī)數(shù)生成器有一個(gè)與之關(guān)聯(lián)的可選seed()方法。想要獲得真隨機(jī)數(shù)(即每次運(yùn)行程序時(shí)得到不同的隨機(jī)數(shù)),需要調(diào)用seed()方法,并為其指定動(dòng)態(tài)變化的種子值。通常,程序員會(huì)將當(dāng)前系統(tǒng)時(shí)間傳遞給seed()方法來實(shí)現(xiàn)這種隨機(jī)性。

這與我們的LTspice仿真有何關(guān)系?如果希望每次運(yùn)行仿真時(shí)獲得不同的隨機(jī)值,則必須在設(shè)置面板的Hacks部分中啟用Use the clock to reseed the MC generator選項(xiàng)(參見圖3)。

f833d9a8-eab5-11f0-92de-92fbcf53809c.png

圖3. LTspice設(shè)置面板的Hacks選項(xiàng)卡,顯示了如何實(shí)現(xiàn)真隨機(jī)性

此Use the clock to reseed the MC generator選項(xiàng)也適用于flat()和gauss()函數(shù)。這些函數(shù)可以用在mc()所使用的地方。

不過,請慎重考慮否是需要刻意實(shí)現(xiàn)這種仿真行為。您希望仿真過程是真隨機(jī)的嗎?倘若如此,您的仿真將失去可預(yù)測性和可重復(fù)性。

為了說明這一點(diǎn),讓我們回顧圖2中的示例。如果目標(biāo)是模擬一個(gè)在0 V和20 V之間均勻分布的電壓呢?當(dāng)前的示例不太符合預(yù)期。然而,通過將迭代次數(shù)從10次增加到100次,我們可以使仿真結(jié)果更接近目標(biāo)(圖4)。這種調(diào)整使得仿真更接近實(shí)現(xiàn)預(yù)期的分布范圍。

f89af340-eab5-11f0-92de-92fbcf53809c.png

圖4. 使用mc()且迭代更多次數(shù)的電壓源

現(xiàn)在有兩點(diǎn)已經(jīng)很明確:(a)mc()迭代運(yùn)行100次,便能得到一個(gè)相當(dāng)好的數(shù)值分布;(b)如果不啟用reseed the MC generator(重新設(shè)置MC生成器的隨機(jī)種子)功能,則每次運(yùn)行仿真將得到可重復(fù)的結(jié)果。

如果電路中多處使用mc()呢?能否保證通過100次迭代能夠覆蓋所有容差?圖5展現(xiàn)了這一嘗試,其中顯示了兩個(gè)使用mc()的電壓源。將V(out1)作為y軸、V(out2)作為x軸進(jìn)行繪圖,可以清楚地看到,V1和V2的組合呈現(xiàn)出高度隨機(jī)的坐標(biāo)分布(右鍵單擊x軸標(biāo)題,將x軸從步進(jìn)虛擬參數(shù)更改為V(out2))。但從技術(shù)上講,這些電壓的最小值和最大值并非同時(shí)達(dá)到,導(dǎo)致極端(角落)情況的覆蓋有些不足。

f9a0bb62-eab5-11f0-92de-92fbcf53809c.png

圖5. 繪制一次仿真中兩個(gè)mc()電壓的結(jié)果

如果目標(biāo)是接近完全覆蓋,則需要更多次迭代(圖6)。

fa0b850a-eab5-11f0-92de-92fbcf53809c.png

圖6. 繪制更多次迭代的結(jié)果

對于這個(gè)簡單的例子,仿真運(yùn)行速度相當(dāng)快,即便運(yùn)行1000次也毫無問題。但如果仿真運(yùn)行時(shí)間很長,運(yùn)行多次迭代需要數(shù)小時(shí)或數(shù)天時(shí)間呢?應(yīng)考慮啟用Use the clock to reseed the MC generator選項(xiàng)是否有幫助。如果在一次仿真運(yùn)行中,mc()生成的值令人滿意,那么接下來的目標(biāo)是讓這些結(jié)果在每次運(yùn)行時(shí)可重復(fù),還是隨機(jī)變化呢?啟用此項(xiàng)功能之前,這是一個(gè)值得考慮的好問題。

為了大幅縮短仿真時(shí)間,我們來看一種相對不太隨機(jī)的方法。

圖7所示的例子確保了仿真能夠覆蓋無源元件容差的所有邊緣情況,同時(shí)保持總體仿真時(shí)間盡可能短。這個(gè)例子遍歷了R1的三個(gè)值和C1的三個(gè)值,進(jìn)行了九次仿真,并覆蓋了元件值同時(shí)達(dá)到最小值(或最大值)的情形。

fa856398-eab5-11f0-92de-92fbcf53809c.png

圖7. 設(shè)置元件的特定值以模擬容差導(dǎo)致的行為

如果目標(biāo)是探索電路在極端工況下的行為,則相對不太隨機(jī)的方法可能更為合適。相反,如果目標(biāo)是對仿真在一系列變化下的行為進(jìn)行統(tǒng)計(jì)分析,則使用大量仿真并通過隨機(jī)函數(shù)引入隨機(jī)性可能是更好的方法。但無論哪種情況,您現(xiàn)在應(yīng)該已經(jīng)對如何在LTspice仿真中引入(或不引入)隨機(jī)性有了更好的理解。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真
    +關(guān)注

    關(guān)注

    54

    文章

    4480

    瀏覽量

    138209
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67494
  • 隨機(jī)數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    12282
  • LTspice
    +關(guān)注

    關(guān)注

    2

    文章

    130

    瀏覽量

    14576

原文標(biāo)題:LTspice中的隨機(jī)數(shù)是真隨機(jī)數(shù)嗎?

文章出處:【微信號:ADI智庫,微信公眾號:ADI智庫】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問LTspice中能否支持隨機(jī)數(shù)函數(shù)如何實(shí)現(xiàn)

    想在LTspice仿真中,把一個(gè)參數(shù)(比如電容值)設(shè)計(jì)為一個(gè)變量,這個(gè)變量在一定的范圍內(nèi)是一個(gè)隨機(jī)數(shù)。如電容C的值為[20n,30n]之間的一個(gè)隨機(jī)數(shù)。產(chǎn)生100個(gè)點(diǎn),且這100個(gè)點(diǎn)服
    發(fā)表于 09-25 17:00

    關(guān)于STM32隨機(jī)數(shù)算法的問題

    rand是隨機(jī)數(shù)隨機(jī)數(shù)配合定時(shí)器time()計(jì)算產(chǎn)生隨機(jī)數(shù),但是如果我想上電初始化的時(shí)候要產(chǎn)生一個(gè)
    發(fā)表于 11-13 10:12

    什么是隨機(jī)數(shù)

    做開發(fā)的工程師們應(yīng)該或多或少都接觸過隨機(jī)數(shù),可能認(rèn)為它就是一個(gè)隨機(jī)生成的數(shù)字嘛,使用時(shí)也很簡單,只要調(diào)用開發(fā)語言提供的函數(shù)即可。但實(shí)際上隨機(jī)數(shù)后面還是有著比較復(fù)雜但也有趣的知識點(diǎn)的。根
    發(fā)表于 07-22 09:42

    C語言中隨機(jī)數(shù)的產(chǎn)生及性能檢驗(yàn)

    系統(tǒng)仿真或加密算法中常需要產(chǎn)生滿足一定分布函數(shù)的 隨機(jī)數(shù) ,高級程序設(shè)計(jì)語言中的庫函數(shù)采用線性同余法產(chǎn)生一個(gè)在[0,32767] 服從均勻分布的
    發(fā)表于 07-07 16:35 ?70次下載

    神經(jīng)網(wǎng)絡(luò)的隨機(jī)數(shù)生成方法

    的輸入輸出,改善了混沌退化對隨機(jī)數(shù)的性能影響,同時(shí),通過與Logistic映射所生成隨機(jī)序列和可變參數(shù)進(jìn)行異或處理,有效避免了生成序列的重復(fù)出現(xiàn),擴(kuò)大了密鑰空間和輸出序列的周期。以新
    發(fā)表于 02-02 15:49 ?0次下載

    隨機(jī)數(shù)生成算法

    在計(jì)算機(jī)上用數(shù)學(xué)的方法產(chǎn)生隨機(jī)數(shù)列是目前通用的方法,它的特點(diǎn)是占用的內(nèi)存少,速度快.用數(shù)學(xué)方法產(chǎn)生的隨機(jī)數(shù)列是根據(jù)確定的算法推算出來的,嚴(yán)格說來并不是隨機(jī)的,因此一般稱用數(shù)學(xué)方法產(chǎn)生的隨機(jī)數(shù)
    發(fā)表于 04-03 10:25 ?6次下載

    何在C語言中使用隨機(jī)數(shù)

    通常情況下,使用最多的方法的就是使用rand函數(shù)隨機(jī)生成隨機(jī)數(shù)來完成隨機(jī)數(shù)生成工作。注意這里
    的頭像 發(fā)表于 11-09 16:46 ?5802次閱讀

    如何使用隨機(jī)數(shù)生成器來生成私鑰

    ,尤其重要。 說到隨機(jī),有兩個(gè)必須要搞清楚的概念:“隨機(jī)數(shù)生成器”(TRNG)和
    發(fā)表于 03-18 10:40 ?5705次閱讀
    如何使用<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>生成</b>器來<b class='flag-5'>生成</b>私鑰

    DApp的隨機(jī)數(shù)為什么會(huì)被黑客破解

    隨機(jī)數(shù)可以分為隨機(jī)數(shù)隨機(jī)數(shù)。隨機(jī)數(shù)需要同時(shí)滿
    發(fā)表于 10-18 10:59 ?3068次閱讀

    如何利用SystemVerilog仿真生成隨機(jī)數(shù)

    采用SystemVerilog進(jìn)行仿真則更容易生成隨機(jī)數(shù),而且對隨機(jī)數(shù)具有更強(qiáng)的可控性。對于隨機(jī)變量,在SystemVerilog中可通過r
    的頭像 發(fā)表于 10-30 10:33 ?1.3w次閱讀
    如何利用SystemVerilog<b class='flag-5'>仿真</b><b class='flag-5'>生成</b><b class='flag-5'>隨機(jī)數(shù)</b>

    何在200 smart中生成隨機(jī)數(shù)

    上文寫了博途中生成隨機(jī)數(shù)的幾種辦法,現(xiàn)在試著使用其中簡單的線性同余法實(shí)現(xiàn)在200 smart中完成類似功能。
    的頭像 發(fā)表于 03-23 13:51 ?9135次閱讀
    如<b class='flag-5'>何在</b>200 smart中<b class='flag-5'>生成</b><b class='flag-5'>偽</b><b class='flag-5'>隨機(jī)數(shù)</b>

    FPGA的隨機(jī)數(shù)發(fā)生器學(xué)習(xí)介紹

    隨機(jī)試驗(yàn)的結(jié)果,產(chǎn)生隨機(jī)數(shù)有多種不同的方法。這些方法被稱為隨機(jī)數(shù)生成器。隨機(jī)數(shù)最重要的特性是它在產(chǎn)生時(shí)后面的那個(gè)數(shù)與前面的那個(gè)數(shù)毫無關(guān)系。
    的頭像 發(fā)表于 09-12 09:13 ?3011次閱讀

    如何使用雪花算法生成真正的隨機(jī)數(shù)

    以前用rand和srand生成隨機(jī)數(shù),隨機(jī)數(shù)的序列是固定的,今天學(xué)習(xí)生成真正的
    的頭像 發(fā)表于 10-09 10:05 ?2375次閱讀

    何在FPGA中實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

    分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7中實(shí)現(xiàn)4位隨機(jī)數(shù)發(fā)生器(PRNGs)。
    的頭像 發(fā)表于 08-06 11:20 ?1832次閱讀
    如<b class='flag-5'>何在</b>FPGA中<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>隨機(jī)數(shù)</b>發(fā)生器

    隨機(jī)數(shù)隨機(jī)數(shù)的區(qū)別

    隨機(jī)數(shù)在當(dāng)前程序運(yùn)行環(huán)境中是一種常用參數(shù),目前主要分為兩種,隨機(jī)數(shù)隨機(jī)數(shù),本期我們就來講一下二者的區(qū)別。
    的頭像 發(fā)表于 08-27 17:46 ?2626次閱讀