freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于simulink的仿真(編輯修改稿)

2025-06-12 18:50 本頁面
 

【文章內(nèi)容簡介】 Suzuki信道模型的理論基礎(chǔ)。 第 4章 主要是實現(xiàn) 衰落 信道的計算機模型的仿真。本章是本文的重點,在本章中介紹了目前比較流行的有色高斯噪聲的計算機模擬方法,即用有限個正弦信號的 Rice和來近似有色高斯噪聲過程,本章對該方法中如何選擇有限個正弦信號的頻率、幅度和相位的三種方法,即等面積取樣法、最小均方誤差法、實際多普勒擴散法進行了比較,隨后 實現(xiàn)了 Suzuki信道的計算機模型仿真。 第 5章 總結(jié)論文研究的成果、不足以及下一階段的努力方向。 2. SIMULINK 工作原理 在本章中將詳細介紹 Simulink 工作原理,主要包 括 Simulink 的求解器、過零檢測、代數(shù)環(huán)和回調(diào)函數(shù)等。只有深入的理解 Simulink 的工作原理,才能更好地建立系統(tǒng)模型、設(shè)置 Simulink 系統(tǒng)模型的仿真參數(shù)等,從而能夠快速、準確地實現(xiàn)系統(tǒng)設(shè)計、仿真和分析。 求解器 Simulink 求解器是 Simulink 進行動態(tài)系統(tǒng)仿真的核心, Simulink 仿真都需要調(diào)用求解器,它是 Simulink 仿真的“大腦”。 Simulink 對系統(tǒng)仿真的控制是通過系統(tǒng)模型和求解器之間建立對話的方式進行的: Simulink 將系統(tǒng) 模型、模塊參數(shù)和系統(tǒng)方程傳遞給 Simulink 的求解器,而求解器將計算得到的系統(tǒng)狀態(tài)和仿真時間通過 Simulink 環(huán)境傳遞給系統(tǒng)模型本身,通過這樣的交互作用方式來完成動態(tài)系統(tǒng)仿真。 Simulink 求解器分為兩種:連續(xù)求解器和離散求解器。 連續(xù)求解器 連續(xù)求解器 具有連續(xù)的輸入與輸出,并且系統(tǒng)中一般都存在連續(xù)的狀態(tài)變量。連續(xù)系統(tǒng)中存在的狀態(tài)變量往往是系統(tǒng)中嗎某些信號的微分或積分,因此連 11 續(xù)系統(tǒng)一般由微分方程來描述。但是由于 Simulink 是用數(shù)字來逼近連續(xù),進而達到仿真的目的,因而得到仿真結(jié)果并不是 精確的結(jié)果, 只能是近似。 建立連續(xù)系統(tǒng)的模型相當(dāng)于建立系統(tǒng)的微分方程,而進行系統(tǒng)仿真的過程就是通過連續(xù)求解器對該微分方程求解的過程。 對微分方程求解的近似方法分為定步長和變步長兩種,定步長和變步長又有ode4 ode2 ode11 ode5 和 ode3 等。連續(xù)求解器類型的選擇會影響到連續(xù)系統(tǒng)的仿真結(jié)果和仿真速度,但是一般情況下不會產(chǎn)生太大的影響,如果要想得比較滿意的結(jié)果(精度)和仿真速度,需要了解這些求解器。 離散求解器 與連續(xù)求解器不同,離散系統(tǒng)一般是由差分方程描述的。離散系統(tǒng)的輸入和輸出 都是離散的,系統(tǒng)狀態(tài)每隔一段時間才更新一次。實際離散系統(tǒng)的仿真就是離散求解器對離散系統(tǒng)模型的差分方程的求解過程。 Simulink 可以做到對離散系統(tǒng)仿真的絕對精確。 在純粹的離散系統(tǒng)進行仿真時,需要選擇離散求解器對其進行求解。用戶只需選擇 Simulink 仿真參數(shù)設(shè)置對話框中的求解器選項卡中的 discrete( no contimuous state)選項,即沒有連續(xù)狀態(tài)的離散求解器,也可以對離散系統(tǒng)進行精確的仿真。 關(guān)于求解器的其他內(nèi)容 求解器有兩個非常重要的參數(shù):誤差容限和仿真步長,它們分別對應(yīng)求 解器對話框上面的“ Relative tolerance”項和“ Step size”項。對于固定步長連續(xù)求解器,并不存在誤差容限的問題,只有采用變步長連續(xù)求解器,才會根據(jù)積分誤差修改步長,以滿足誤差容限的要求。 由于不能精確計算連續(xù)系統(tǒng)狀態(tài)變量,因而積分誤差是一個近似值。通常連續(xù)求解器采用兩個不同階次的近似方法進行積分,然后計算它們之間的積分差值作為積分誤差。 實際的系統(tǒng),通常是混合系統(tǒng),很少有純粹的離散系統(tǒng)和純粹的連續(xù)系統(tǒng)。連續(xù)變步長求解器不僅考慮了連續(xù)狀態(tài)的求解,而且也考慮了系統(tǒng)中離散狀態(tài)的 12 求解。連續(xù)變步 長求解器首先嘗試使用最大步長進行求解,如果在這個仿真區(qū)間內(nèi)沒有離散狀態(tài)的更新,步長 便減小到與離散狀態(tài)的更新相吻合。 過 零檢測和時間通知 Simulink 對系統(tǒng)仿真的控制是通過系統(tǒng)模型和求解器之間建立對話框的方式進行的,對話框公式的核心是時間通知。所謂時間通知,是指系統(tǒng)模型通過Simulink 仿真環(huán)境告知求解器在前一仿真步內(nèi)系統(tǒng)中所發(fā)生的事件,以用于當(dāng)前仿真時刻求解器的計算。事件的發(fā)生與否是通過檢測系統(tǒng)的過零檢測實現(xiàn)的。過零檢測和事件通知實現(xiàn)了系統(tǒng)模型與 Simulink 求解器的交互。 過零檢 測 Simulink 用過零檢測來檢測連續(xù)信號的不連續(xù)的地方。過零檢測在兩個方面扮演著重要的角色。 一、狀態(tài)事件的獲取 一個系統(tǒng)發(fā)生一個狀態(tài)事件,是指系統(tǒng)的某個狀態(tài)值發(fā)生了能使系統(tǒng)產(chǎn)生顯著變化的變化。 Simulink 使用過零檢測使仿真 步精確地發(fā)生在狀態(tài)事件發(fā)生的時刻,于是因為仿真的時間步準確地取在接觸時刻,所以仿真就不會產(chǎn)生穿透現(xiàn)象。 二、不連續(xù)信號的積分 數(shù)字積分方法建立在所積分的信號時連續(xù)的,并且具有連續(xù)微分的假設(shè)下。如果在一個積分過程中遇到了不連續(xù)點, Simulink 使用過零檢測來尋找不連續(xù)點發(fā)生的時 間,而積分的上限只取到不連續(xù)點的左邊沿。最后 Simulink 略過不連續(xù)點,并對信號的下一段分段連續(xù)進行積分。 Simulink 模塊中使用過零檢測的一個例子是 Saturation 模塊。過零點檢測Saturation 模塊中的這些事件: ? 輸入信號到達上限 ? 輸入信號離開上限 ? 輸入信號到達下限 ? 輸入信號離開下限 13 定義了自己的狀態(tài)事件的 Simulink 模塊被認為具有固有的過零點。如果用戶需要一個過零點事件的顯示通知,可以使用 Hit Crossing 模塊。 狀態(tài)事件的檢測依賴于一個內(nèi)部過零點信號,即 zcSignal=UpperLimitu,其中 u是輸入信號。 過零點信號有方向?qū)傩?,它的取值有三種。 1. rising 當(dāng)一個信號上升到零或者穿過零,或者離開并且變化成正數(shù)時發(fā)生的過零點。 2. falling 當(dāng)一個信號下降到零或者穿過零,或者離開零并且變化成正數(shù)時發(fā)生的過零點。 3. either rising 或 falling,有其一發(fā)生時就發(fā)生。 對于 Saturation 模塊的上限而言,過零點的方向是 either。這樣使得信號進 入飽和或者離開飽和的事件可以通過相同的過零點信號來檢測到。 誤差容限的大小對過零點的檢測有很大的影響。如果誤 差容限太大,Simulink 就有可能檢測不到過零點。在數(shù)學(xué)里面有這樣的一條定律:對于連續(xù)信號,如果有兩點的符號相異,那么在這兩點之間必定存在一個過零點。這個定律是 Simulink 檢測過零點的數(shù)學(xué)基礎(chǔ),它通過檢查一個仿真時間步的首尾兩點的符號,來判定在該時間步里是否存在過零點。如果誤差容限太大,就將導(dǎo)致仿真的時間步不是足夠小,有些過零點就不能檢測出來了。 為了防止這種情況的發(fā)生, Simulink 允許用戶修改誤差容限,通過縮小誤差容限,可以使 Simulink 采用更小的仿真步長。 在使用過零檢測時,需要注意以下幾 點: ( 1)關(guān)閉系統(tǒng)仿真參數(shù)設(shè)置中的過零事件檢測,可以使動態(tài)系統(tǒng)的仿真速度得到很大的提高,但可能引起系統(tǒng)的仿真結(jié)果不精確,甚至出現(xiàn)錯誤的結(jié)果。 ( 2)關(guān)閉系統(tǒng)過零檢測對 Hit Crossing 零交叉模塊并無影響。 14 ( 3)對于離散模塊及其產(chǎn)生的離散信號不需要進行過零檢測。這是因為用于離散系統(tǒng)仿真器與連續(xù)變步長求解器都可以很好地匹配離散信號的更新時刻。 此外,對于某些比較特殊的動態(tài)系統(tǒng)而言,對其進行仿真時,有可能在一個非常小的區(qū)間內(nèi)多次通過零點。這將導(dǎo)致在同一時間內(nèi)多次探測到信號的過零,從而使得 Simulink 仿真終止。在這種情況下,應(yīng)該在仿真參數(shù)設(shè)置中關(guān)閉過零檢測功能。當(dāng)然,這些系統(tǒng)通常是某些物理現(xiàn)象的理想模型。但是對于某些系統(tǒng)而言,這些模塊的過零非常重要,此時可以采用在系統(tǒng)模型中串入零交叉 Hit Crossing 模塊,并關(guān)閉仿真過零檢測功能來實現(xiàn)過零的使用。 時間通知 在動態(tài)系統(tǒng)仿真中,采用變步長求解器可以使 Simulink 正確地檢測到系統(tǒng)模塊與信號中過零事件的發(fā)生。當(dāng)一個模塊通過 Simulink 仿真環(huán)境通知求解器,在系統(tǒng)前一仿真步長時間內(nèi)發(fā)生了過零事件,變步長求解器就會縮小仿真步長,即使求解誤差 滿足絕對誤差和相對誤差的上限要求。縮小仿真步長的目的是判斷事件發(fā)生的準確事件(也就是過零事件的發(fā)生時刻)。 當(dāng)然,這樣做會使系統(tǒng)仿真的速度變慢,但正如前所述,這對于系統(tǒng)的某些模塊是至關(guān)重要的。因為這些模塊的輸出可能表示了一個物理值,它的零值有著重要的意義:或者是標志系統(tǒng)運行狀態(tài)的改變,或者用來控制另外一個模塊。事實上,只有少量的模塊能夠發(fā)出事件通知。每個模塊發(fā)出專屬于自己的事件通知,而且可能與不止一個類型的事件發(fā)生關(guān)聯(lián)。 事件通知是 Simulink 進行動態(tài)系統(tǒng)仿真的核心。 Simulink 動態(tài)系統(tǒng)仿真時基于事 件驅(qū)動的,這符合當(dāng)前交互式設(shè)計與面向?qū)ο笤O(shè)計的思想。在系統(tǒng)仿真中,系統(tǒng)模型與求解器均可以視為某種對象,事件通知相當(dāng)于對象之間的消息傳遞 :對象通過消息的傳遞來完成系統(tǒng)仿真的目的。 15 代數(shù)環(huán) 直接饋入電路( direct feedthrough) 在 Simulink 中,直接饋入指具有直接饋入的模塊在不知道輸入端口值的前提下無法計算輸出端口值。也就是當(dāng)前時刻輸出值的計算依賴于當(dāng)前時刻的輸入值,從模塊的內(nèi)部結(jié)構(gòu)上說,模塊內(nèi)不存在延遲的單元。 在 Simulink 中,直接饋入的模塊有: ? Elementary Math 模塊 ? Gain block 模塊 ? Integrator 模塊 ? Product 模塊 ? 有非零的 D 矩陣的 StateSpace 模塊 ? Sum模塊 ? 分子和分母多項式具有相同階數(shù)的 Transfer F 模塊 ? 零點數(shù)和極點數(shù)相同的 ZeroPole 模塊 直接饋入中的直接是指仿真時間意義上的,而不是指是否經(jīng)過處理,即和直接連線不是等同的。 當(dāng)具有直接饋入的端口由該模塊的輸出驅(qū)動時,或者是經(jīng)過別的直接饋入的模塊的反饋環(huán)路驅(qū)動時,就發(fā)生了代數(shù)環(huán)。 如果系統(tǒng)中出現(xiàn)了代數(shù)環(huán),由于代數(shù)環(huán)的輸入和輸出之間是相互依 賴的,組成代數(shù)環(huán)的所有模塊都要求在同一時刻計算輸出。這與系統(tǒng)仿真的順序概念相反,因此,最好使用其他的方法對系統(tǒng)方程進行求解。通常,代數(shù)環(huán)進行代數(shù)約束或切斷環(huán)來解決代數(shù)環(huán)的求解問題。 改善仿真的性能和精確度 仿真的性能和精確度受到很多事情的影響,包括模型的設(shè)計和仿真參數(shù)的選擇。對于大多數(shù)問題,使用默認的仿真參數(shù)值,求解器可以精確而有效地解決。對于這些模型而言,適當(dāng)?shù)卣{(diào)整求解器和仿真參數(shù)可以得到更好的仿真結(jié)果。如果用戶知道模型行為的信息,并把它輸入求解器也會提升性能。 16 加速仿真 一個模型的仿真 速度過慢是由許多因素造成的,下面列舉了一些因素及部分解決方法。 ( 1)模型包括一個 MATLAB F 模塊。當(dāng)執(zhí)行一個包含 MATLAB F 模塊的模型, Simulink 在每一個仿真時間步都要調(diào)用 MATLAB 解調(diào)器。所以應(yīng)該盡可能地使用 Simulink 的內(nèi)置 F 模塊或者是做基本的 math 模塊。 ( 2)模型包含用 M 文件的 S 函數(shù), M 文件的 S 函數(shù)同樣會使 Simulink 在每一個仿真時間步調(diào)用 MATLAB 解釋器。替代的方法是把 M 文件的 S 函數(shù)轉(zhuǎn)化為 cmex函數(shù)或者是建立一個等價的子系統(tǒng)。 ( 3)模型包含一個存儲模 塊。使用存儲模塊將使階數(shù)可變的求解器在每個仿真時間步被重置回 1 階。 ( 4)仿真的時間步長太小。解決的方法是把最大仿真步長參數(shù)設(shè)置回Simulink 的默認值 auto。 ( 5)仿真的精度要求過高。一般來說,相對誤差容限設(shè)為 %就已經(jīng)足夠了。當(dāng)模型存在取值趨向于零的狀態(tài),仿真時如果絕對誤差 限度太小,會使仿真在接近零的狀態(tài)附近耗費過多的仿真步。 ( 6)仿真的時間過長。解決的方法是酌情減小仿真的時間間隔。 ( 7)所解決的問題是 stiff 問題,卻選擇了一個非 stiff 的求解器。解決的方法是使用 ode15s。 ( 8)模型所設(shè)置的采樣時間的公約數(shù)過小,這樣使 Simulink 可以采用的基準采樣時間過小,因為 Simulink 會選擇足夠小的時間步以保證所設(shè)置的采樣點都能取到。 ( 9)模型包含一個代數(shù)環(huán)。代數(shù)環(huán)的求解方法就是在每一個時間步迭代地進行計算,這樣會嚴重地降低仿真的性能。 ( 10)模型把一個 random number 模塊作為 integrator 模塊的輸入。對于連續(xù)系統(tǒng),可以使用 source 子庫里的 BandLimited WhiteNoise 模塊。 17 改善仿真的精度 檢驗仿真精度的方法是修改仿真的相對誤差 和絕對誤差容限,在一個合適的時間跨度反復(fù)運行仿真,看看仿真的結(jié)果有沒有大的變化,如果變化不大,則表示是收斂的。 如果仿真在開始時錯過了嗎模型的關(guān)鍵行為,那么可以更改初始步長,使仿真不會忽略這些關(guān)鍵的行為。 如果仿真的結(jié)果不穩(wěn)定,可能是以下原因: ( 1)系統(tǒng)本身不穩(wěn)定 ( 2)如果正在使用 ode15s,用戶可以把最大階數(shù)定為 2 或者嘗試 ode23s。 ( 3)如果仿真的結(jié)果看起來不很精確,可能是由兩種原因引起
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1