




已閱讀5頁(yè),還剩103頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
如何設(shè)置仿真狀態(tài)目標(biāo):如果你想在實(shí)時(shí)仿真期間設(shè)置模擬狀態(tài),通過(guò)SimState variable實(shí)現(xiàn)此目的。可行性方法:模擬狀態(tài)可設(shè)置如下:l 通過(guò) ControlDesk 3.x 或ControlDesk Next Generation手動(dòng)設(shè)置。參考方法1.l 通過(guò)SImstate SET block自動(dòng)設(shè)置,參閱方法2.方法1:通過(guò) ControlDesk 3.x 或ControlDesk Next Generation設(shè)置仿真狀態(tài)1把來(lái)自變量描述文件的主體部分中的 simState變量,連接到布局中合適的儀器。方法2:通過(guò)Simulink 中的模塊設(shè)置模擬狀態(tài)1.把來(lái)自RTIExtras 庫(kù)中的simState設(shè)置塊添加到您的模型。該塊的一些內(nèi)容如下:2. 打開模塊參數(shù)對(duì)話框,然后在Set simState下拉列表中選擇所需的動(dòng)作(RUN, PAUSE, STOP).您也可以選擇觸發(fā)器類型和該塊是否應(yīng)該有一個(gè)啟用端口。3. 把塊的端口(s)同可以改變的模擬狀態(tài)信號(hào)(s)相聯(lián)通。l 當(dāng)仿真是暫停或停止時(shí),如果你想改變模擬狀態(tài),你應(yīng)該把涉及的模塊放在該模塊的后臺(tái)任務(wù)中。l 在simState設(shè)置塊只是把新值寫入simState變量中。真正的仿真狀態(tài)在后臺(tái)任務(wù)中轉(zhuǎn)換。因此,總是在仿真暫停或停止前,當(dāng)前計(jì)算步驟是通常已經(jīng)完成。如果后臺(tái)任務(wù)計(jì)算起來(lái)復(fù)雜或者為后臺(tái)任務(wù)提供很少的時(shí)間,在轉(zhuǎn)換發(fā)生之前,需要進(jìn)行一些進(jìn)一步的計(jì)算步驟。l 用RTI-MP,simState塊設(shè)置只能用于Master CPU。l 仿真狀態(tài)設(shè)置為STOP沒(méi)有停止實(shí)時(shí)處理器,但設(shè)置應(yīng)用到一個(gè)不同狀態(tài):最終值被寫入到I/O,在那之后,只有該應(yīng)用程序的后臺(tái)任務(wù)保持激活狀態(tài)。相反,當(dāng)你用 ControlDesk 3.xs or ControlDesk Next Generation 的命令終止一個(gè)應(yīng)用程序,實(shí)時(shí)處理器被立刻停止:最終值沒(méi)有被寫進(jìn)I/O中,并且后臺(tái)任務(wù)沒(méi)有保持激活狀態(tài)。如何識(shí)別仿真狀態(tài)目標(biāo):為了理解Simulink模塊中當(dāng)前的仿真狀態(tài),你必須遵照simState Read 模塊。方法:為了讀懂仿真狀態(tài)需要:1.把來(lái)自RTIExtras 庫(kù)中的simState設(shè)置塊添加到您的模型。該塊的一些內(nèi)容如下:2. 連接塊的輸出接口。數(shù)據(jù)類型是int32.輸出值的含義如下:當(dāng)仿真是暫?;蛲V箷r(shí),如果你想改變模擬狀態(tài),你應(yīng)該把涉及的模塊放在該模塊的后臺(tái)任務(wù)中。(前臺(tái)任務(wù)simState READ塊中會(huì)不斷讀取模擬狀態(tài)RUN)Time-Stamping和數(shù)據(jù)采集Time-Stamping支撐 :dsPACE板支持time-stamping,時(shí)間戳被分配到每個(gè)任務(wù)的每個(gè)執(zhí)行步驟上。結(jié)果,是ControlDesk 3.x 和 ControlDesk。下一代可以使用實(shí)際時(shí)間值繪制由中斷模塊驅(qū)動(dòng)的任務(wù)信號(hào)。一個(gè)好處是你可以看到當(dāng)什么時(shí)候與其他相聯(lián)系的非周期中斷發(fā)生。產(chǎn)生時(shí)間戳對(duì)每一個(gè)任務(wù)類型,時(shí)間戳有不同的產(chǎn)生方式:Timer tasks 對(duì)于timer tasks,該 dSPACE Real-Time Kernel從任務(wù)的采樣時(shí)間中計(jì)算時(shí)間戳, 同Simulink 編碼器(formerly Real-Time Workshop) 計(jì)時(shí)引擎計(jì)算計(jì)時(shí)器任務(wù)(currentTime Tt)的時(shí)間的方式一樣。Tt=當(dāng)前時(shí)間值或?qū)τ趖imer task 的RTK時(shí)間戳K=執(zhí)行計(jì)數(shù)器這確保了在實(shí)時(shí)應(yīng)用的時(shí)間和ControlDesk 3.X和 ControlDesk Next Generation.中的圖中顯示的時(shí)間的連貫性。由硬件中斷模塊驅(qū)動(dòng)的任務(wù):對(duì)于由硬件中斷模塊驅(qū)動(dòng)的任務(wù),該dSPACE Real-Time Kernel驅(qū)動(dòng)來(lái)自一個(gè)硬件時(shí)鐘的時(shí)間戳(Thw)。這確保了確切的時(shí)間戳是獨(dú)立于實(shí)時(shí)應(yīng)用的固定步長(zhǎng):如果該實(shí)時(shí)應(yīng)用頁(yè)包含一個(gè)計(jì)時(shí)器任務(wù)(這是所有多重處理器應(yīng)用的情況),這項(xiàng)任務(wù)作為該異步任務(wù)的一個(gè)參考任務(wù)。該 dSPACE Real-Time Kernel 驅(qū)動(dòng)的異步任務(wù)的時(shí)間戳與參考任務(wù)的時(shí)間戳相聯(lián)系確保時(shí)間的連貫性,特別是如果仿真運(yùn)行了一段長(zhǎng)的時(shí)間:Thw=由硬件中斷模塊驅(qū)動(dòng)的任務(wù)時(shí)間Tt=對(duì)計(jì)時(shí)器任務(wù)的當(dāng)前時(shí)間值或RTK 時(shí)間戳 Thw= 由于上次Tt增量引起流逝的時(shí)間。由軟件中斷模塊驅(qū)動(dòng)的任務(wù):對(duì)于由軟件中斷模塊驅(qū)動(dòng)的任務(wù), 該dSPACE Real-Time Kernel使用從引出軟件中斷任務(wù)的時(shí)間戳。l 實(shí)時(shí)仿真的當(dāng)前變量是通過(guò)用浮動(dòng)數(shù)字的仿真編碼器計(jì)算的,然而時(shí)間戳是通過(guò)用整數(shù)的dSPACE Real-Time Kernel 來(lái)計(jì)算的。由于浮點(diǎn)數(shù)的精度降低后,數(shù)字變得越來(lái)越大,當(dāng)前變量和相關(guān)的時(shí)間戳可能有少許不同 。限制:關(guān)于時(shí)間戳特性限制的信息參閱307頁(yè)限制項(xiàng)時(shí)間戳和多處理器實(shí)時(shí)接口的分布式跟蹤:通過(guò)分布式追蹤特性, ControlDesk 3.x 和 ControlDesk Next Generation可以單獨(dú)的追蹤來(lái)自多處理器系統(tǒng)中的CUPs 的數(shù)據(jù)并且在有共同的時(shí)間基準(zhǔn)單個(gè)繪圖窗口中,把它全部顯示出來(lái)。l 分布式跟蹤僅可用于支持時(shí)間戳和多處理器的主板,即DS1005和DS1006.關(guān)于分布式追蹤特性的更多信息參閱捕捉數(shù)據(jù)(ControlDesk Experiment Guide)和在多處理器系統(tǒng)中分布式追蹤(ControlDesk Experiment Guide)。如何修改數(shù)據(jù)的采集行為觀察變量的變化假設(shè)你要觀察變量的變化,它們發(fā)生在一個(gè)由中斷塊驅(qū)動(dòng)的任務(wù)中。如果對(duì)于數(shù)據(jù)實(shí)時(shí)采集的主機(jī)服務(wù)代碼被放置在一個(gè)計(jì)時(shí)器任務(wù)中,一些變量的變化可能丟失,如下圖所示:相反,如果主機(jī)服務(wù)代碼放置進(jìn)由中斷塊驅(qū)動(dòng)的任務(wù)中,可以捕獲來(lái)自這項(xiàng)任務(wù)的所有變量的變化,如下所示:這尤其適用于任務(wù)信息變量的影響:一些變量表現(xiàn)出不同的行為取決于主機(jī)服務(wù)在哪執(zhí)行。考慮overrunQueueCount和特定任務(wù)的狀態(tài)變量,例如:l 如果在后臺(tái)任務(wù)中讀取時(shí),overrunQueueCount經(jīng)常是0.這是因?yàn)楹笈_(tái)任務(wù)具有最低優(yōu)先級(jí),因此在沒(méi)有其他任務(wù)排隊(duì)時(shí)才被執(zhí)行。如果overrunQueueCount從來(lái)自自己內(nèi)部的任務(wù)中讀取的,它的值通常是1或是高,因?yàn)楫?dāng)任務(wù)調(diào)用時(shí)它增加并且當(dāng)任務(wù)結(jié)束時(shí)減少。l 如果在后臺(tái)任務(wù)中讀取時(shí),狀態(tài)通常是idle(0)。如果從來(lái)自自己內(nèi)部的任務(wù)中讀取,狀態(tài)通常是running(2),如果從任何其他任務(wù)中讀取,狀態(tài)可能是running(2) ready (1)或idle(0)。如果您使用ControlDesk 3 x的虛擬儀器之一訪問(wèn)一個(gè)變量,ControlDesk 3. x自動(dòng)地使用在后臺(tái)執(zhí)行任務(wù)主機(jī)服務(wù)器。如果你通過(guò)ControlDesk 3. x的數(shù)據(jù)采集儀器追蹤一個(gè)變量,您可以通過(guò)捕獲設(shè)置指定所需的主機(jī)服務(wù)。l 用于數(shù)據(jù)采集的默認(rèn)主機(jī)服務(wù)代碼以最快的計(jì)時(shí)任務(wù)被執(zhí)行。如果在模型中放置至少一個(gè)數(shù)據(jù)捕捉模塊,該代碼就被自動(dòng)刪除。方法:為修改數(shù)據(jù)采集的行為:1.把來(lái)自RTI的附加元件庫(kù)的多達(dá)27個(gè)數(shù)據(jù)捕獲塊放進(jìn)你的模型中,并打開模塊參數(shù)對(duì)話框。l 為了實(shí)現(xiàn)由中斷塊驅(qū)動(dòng)任務(wù)中執(zhí)行主機(jī)服務(wù),把數(shù)據(jù)捕獲塊放進(jìn)一個(gè)函數(shù)調(diào)用子系統(tǒng)。指定-1作為采樣時(shí)間。l 通過(guò)控制變量實(shí)現(xiàn)主機(jī)的打開或關(guān)閉,把數(shù)據(jù)捕獲塊放進(jìn)已啟用的子系統(tǒng),它沒(méi)有放進(jìn)觸發(fā)或函數(shù)子系統(tǒng)。在模塊參數(shù)對(duì)話框中設(shè)定期望的采樣時(shí)間。l 同默認(rèn)主機(jī)服務(wù)代碼相比,為實(shí)現(xiàn)一個(gè)縮減采樣,把數(shù)據(jù)捕獲模塊放進(jìn)你的模塊中,以至于它沒(méi)有在一個(gè)有條件的執(zhí)行子系統(tǒng)中。設(shè)定期望的采樣時(shí)間。不用修改你的模型,通過(guò)ControlDesk 3.x/ControlDesk Next Generation,你也可以實(shí)現(xiàn)一個(gè)縮減采樣。l 在特定信號(hào)的條件下,為實(shí)現(xiàn)執(zhí)行主機(jī)服務(wù),把數(shù)據(jù)捕獲模塊放進(jìn)一個(gè)已經(jīng)觸發(fā)的子系統(tǒng)中(觸發(fā)的類型:“rising”, “falling” or “either”)。指定-1為采樣時(shí)間。v 不要把數(shù)據(jù)捕獲模塊放在后臺(tái)任務(wù)中或者放進(jìn)由來(lái)自后臺(tái)任務(wù)的軟件中斷模塊驅(qū)動(dòng)的函數(shù)調(diào)用子系統(tǒng)。這導(dǎo)致不可預(yù)測(cè)的結(jié)果因?yàn)閷?duì)后臺(tái)任務(wù)來(lái)說(shuō)沒(méi)有有用的的時(shí)間戳。2. 在模塊參數(shù)對(duì)話框中,指定唯一的一個(gè)服務(wù)數(shù)字與服務(wù)名稱。3. 在ControlDesk 3.x中為每一個(gè)數(shù)字采集儀選擇所需的服務(wù)。4. 如果你想使用時(shí)間戳功能,您必須在ControlDesk 3.X內(nèi)激活它。結(jié)果:你修改了數(shù)據(jù)采集的行為。對(duì)Run-Time Errors的反應(yīng)運(yùn)行期的錯(cuò)誤:當(dāng)你運(yùn)行實(shí)時(shí)仿真時(shí),可能出現(xiàn)運(yùn)行階段錯(cuò)誤,意味著不再執(zhí)行實(shí)時(shí)應(yīng)用的情況。這樣運(yùn)行階段的錯(cuò)誤可能由于對(duì)某些信息模塊功能或ssSetErrorStatus功能的錯(cuò)誤編碼,任務(wù)超支或者用戶特定的函數(shù)調(diào)用。運(yùn)行階段的錯(cuò)誤類型:RTI通過(guò)停止仿真以回應(yīng)運(yùn)行性階段的錯(cuò)誤。終止執(zhí)行代碼和終止值被寫入I/O。l 如果運(yùn)行時(shí)錯(cuò)誤是由一個(gè)非致命錯(cuò)誤,如超支的情況引起的,該應(yīng)用程序仍然在模擬狀態(tài)停止并且可以重新啟動(dòng)。相關(guān)指導(dǎo)參閱231頁(yè)如何設(shè)置仿真狀態(tài)l 所有其他運(yùn)行時(shí)錯(cuò)誤大部分很可能是致命的錯(cuò)誤。因此,通過(guò)exit()函數(shù),RTI也終止實(shí)時(shí)應(yīng)用程序。結(jié)果是,通過(guò)仿真狀態(tài)不能重啟應(yīng)用程序,但是你可以重載該應(yīng)用。來(lái)自不同仿真模塊的不同結(jié)果:仿真模塊:用RTI和RTI-MP,你可以在不同模塊中仿真你的模型??梢杂孟旅娴姆抡婺P停簂 Simulink 仿真l 實(shí)時(shí)仿真仿真模型的詳細(xì)信息參閱15頁(yè)控制設(shè)計(jì),Simulink 仿真和發(fā)展程序中dsPACE原型模式的RCP.不同仿真結(jié)果的原因:Simulink 仿真的結(jié)果為實(shí)時(shí)仿真結(jié)果提供了一個(gè)參考。然而,來(lái)自不同仿真模型的結(jié)果存在差異。接下來(lái)當(dāng)你在不同模塊中運(yùn)行仿真模型時(shí)可能被通知出現(xiàn)的問(wèn)題。由于該問(wèn)題的復(fù)雜性,提供關(guān)于阻止或者減少該差異的精確指導(dǎo)是不可能的。當(dāng)你比較Simulink 和實(shí)時(shí)仿真時(shí),你應(yīng)該認(rèn)識(shí)到下面給出的事實(shí):l 由中斷驅(qū)動(dòng)任務(wù)引起的不同的行為l 建模的不同規(guī)則l 在多個(gè)計(jì)時(shí)任務(wù)模式的不同任務(wù)調(diào)度l I/O塊的不同的輸出值l 來(lái)自信號(hào)發(fā)生器的不協(xié)調(diào)信號(hào)中斷驅(qū)動(dòng)任務(wù)的不同行為:在Simulink 仿真模型中,同實(shí)時(shí)仿真相比以不同的方式執(zhí)行已經(jīng)建模的中斷驅(qū)動(dòng)任務(wù)。Simulink仿真以周期性任務(wù)的固定步長(zhǎng),執(zhí)行這些任務(wù)。那意味著當(dāng)連接到一個(gè)子系統(tǒng)的功能調(diào)用端口的RTI中斷塊通過(guò)Simulink被執(zhí)行時(shí),他們就被執(zhí)行。在Simulink 仿真中也沒(méi)有任務(wù)中斷。建模的不同規(guī)則:在Simulink仿真模式中模擬時(shí),假設(shè)您使用仿真發(fā)生器模塊的函數(shù)調(diào)用,而不是你模型中RTI中斷塊。你不能使用RTI 任務(wù)轉(zhuǎn)移模塊因?yàn)镾imulink 不能識(shí)別中斷驅(qū)動(dòng)任務(wù)。然而,當(dāng)你隨后用用于實(shí)時(shí)仿真的RTI中斷模塊代替Simulink函數(shù)啟用發(fā)生器模塊,Simulink識(shí)別中斷驅(qū)動(dòng)任務(wù)并且使用RTI任務(wù)過(guò)渡塊強(qiáng)制您執(zhí)行有效的任務(wù)過(guò)渡。你不得不改變你的模型,所以你的仿真行為也是不同的。多計(jì)時(shí)器任務(wù)模型:在Simulink仿真中,任務(wù)被一個(gè)接一個(gè)的執(zhí)行。再實(shí)時(shí)仿真中,任務(wù)可以被高優(yōu)先級(jí)任務(wù)搶占。這樣,在實(shí)時(shí)仿真模塊中,一個(gè)任務(wù)可以中斷另一個(gè)用于交換信號(hào)的任務(wù)。在這種情況下,信號(hào)可能不同于Simulink仿真中的信號(hào)。I/O模塊輸出:你需要用RTI i/o輸入模塊去把實(shí)時(shí)仿真連接到外界。在實(shí)時(shí)仿真中,這些模塊提供了有效的輸出值。如果你執(zhí)行一個(gè)Simulink仿真,然而,RTIi/o塊不讀取物理值。這樣,他們的輸出值經(jīng)常是0.信號(hào)發(fā)生器的不一致信號(hào):在Simulink仿真模式和實(shí)時(shí)仿真模型中信號(hào)發(fā)生器的信號(hào)可能不完全一致。例如:在實(shí)時(shí)仿真模型中,一個(gè)方波邊緣可能出現(xiàn)一個(gè)比在Simulink 仿真模型中更早或更晚的計(jì)算步驟。在兩個(gè)仿真模型中的計(jì)算算法不是百分百相同。這樣,不同的舍入錯(cuò)誤會(huì)發(fā)生。這基本上影響到每個(gè)仿真模塊。然而,對(duì)于方波發(fā)生器由一個(gè)采樣步驟引起邊緣的轉(zhuǎn)移,不同舍入誤差的影響相對(duì)于其他模塊更可見。2、 先進(jìn)的技術(shù)目標(biāo):為了獲得較優(yōu)的仿真,熟悉下面的先進(jìn)的技術(shù)是更有用的。接下來(lái):通過(guò)Atomic子系統(tǒng)優(yōu)化構(gòu)建過(guò)程和仿真 244來(lái)自TRC文件的排外的子系統(tǒng) 248把子系統(tǒng)的權(quán)限應(yīng)用到TRC File 254把工作空間參數(shù)應(yīng)用到TRC File 256修改模塊執(zhí)行命令 258線性傳遞函數(shù)的零極點(diǎn)與狀態(tài)空間塊的調(diào)優(yōu)參數(shù) 261n-D查詢表模塊的調(diào)優(yōu)參數(shù) 267利用Simulink模型驗(yàn)證塊 2692.1通過(guò)Atomic子系統(tǒng)優(yōu)化構(gòu)建過(guò)程和仿真 目標(biāo):Atomic子系統(tǒng)是一個(gè)Simulinkde 功能,它可以幫助你實(shí)現(xiàn)構(gòu)建過(guò)程和仿真的優(yōu)化。下一步:相對(duì)于Atomic系統(tǒng)的虛擬化 244如何整合執(zhí)行模塊 245通過(guò)Atomic如何減少Function sizes 246通過(guò)Atomic如何減少Files Sizes 2472.1.1相對(duì)于Atomic系統(tǒng)的虛擬化 子系統(tǒng)的類型:Simulink和Simulink編碼(之前的實(shí)時(shí)Workshop)區(qū)分虛擬子系統(tǒng)與Atomic子系統(tǒng)。虛擬子系統(tǒng):虛擬子系統(tǒng)主要用于構(gòu)建一個(gè)模型。相對(duì)與atomic 子系統(tǒng),它不會(huì)影響到模型的功能,是否一個(gè)模塊被安置在一個(gè)虛擬子系統(tǒng)或者在parenting subsystem。虛擬系統(tǒng)生成的代碼被嵌入進(jìn)parenting subsystem的代碼。這也是真正的嵌套虛擬子系統(tǒng)。虛擬子系統(tǒng)中的塊生成的代碼與外部塊生成的代碼相交錯(cuò)。Atomic subsystems:相對(duì)于虛擬子系統(tǒng),這些通??梢杂绊憠K執(zhí)行命令:atomic 系統(tǒng)生成的代碼沒(méi)有與那些系統(tǒng)外部塊生成的代碼相交錯(cuò)。一個(gè)純粹的atomic子系統(tǒng)總是作為一個(gè)代碼塊來(lái)執(zhí)行。在仿真模塊中,atomic子系統(tǒng)用一個(gè)錯(cuò)題塊框標(biāo)記。已引發(fā)和啟用的子系統(tǒng) Simulink 自動(dòng)地指定已引發(fā)and/or啟用子系統(tǒng)作為atomic并且禁用該Treat作為他們的atomic單元復(fù)選框,所以技術(shù)規(guī)范不能被改變。由RTI中斷模塊驅(qū)動(dòng)的子系統(tǒng) 由RTI中斷模塊引發(fā)的子系統(tǒng) 通常是atomic.他們通常生成單獨(dú)的功能。2.1.2如何整合執(zhí)行模塊 目標(biāo):你可能想整合某塊的執(zhí)行以至于他們作為代碼塊被計(jì)算,該代碼塊沒(méi)有與其他子系統(tǒng)的代碼相交錯(cuò)。該代碼塊的執(zhí)行仍然可以通過(guò)高優(yōu)先級(jí)任務(wù)進(jìn)行中斷。方法:為了整合塊的執(zhí)行:1. 把塊整合進(jìn)一個(gè)系統(tǒng)同時(shí)打開該系統(tǒng)的塊的參數(shù)對(duì)話框。2. 選擇該Treat as atomic unit 復(fù)選框去實(shí)現(xiàn)子系統(tǒng)atomic.結(jié)果:atomic 子系統(tǒng)用粗體塊框架標(biāo)記。2.1.3通過(guò)Atomic子系統(tǒng)如何減少Function sizes 目標(biāo) :就功能的代碼大小而言,編譯器通常被限制。因此,你應(yīng)該把大的功能分成較小的部分。方法:通過(guò)Atomic如何減少Function sizes 1. 選擇你想優(yōu)化的標(biāo)準(zhǔn)子系統(tǒng)同時(shí)打開塊的參數(shù)對(duì)話框。2. 選擇 Treat as atomic unit復(fù)選框 功能Packaging 下拉列表在編碼生成頁(yè)上啟用。l 引發(fā)和啟用子系統(tǒng)通常是atomic 同時(shí) Treat as atomic unit 復(fù)選框被禁用。3. 選擇功能作為 Function packaging。結(jié)果:Simulink代碼(之前的Real-Time Workshop)沒(méi)有把該子系統(tǒng)的代碼內(nèi)聯(lián)進(jìn)Parenting子系統(tǒng)或模型的 MdlOutputs()功能,但是創(chuàng)建了一個(gè)單獨(dú)的功能。這減少該功能的大小。然而,該model.c文件的文件大小幾乎保持不變。啟用函數(shù)名稱和文件名選項(xiàng)。l 更改由RTI中斷塊驅(qū)動(dòng)的子系統(tǒng)功能的生成是不可能的:相關(guān)的功能包選項(xiàng)的設(shè)置被忽略了。2.1.4通過(guò)Atomic子系統(tǒng)如何減少Files Sizes 目標(biāo):關(guān)于源代碼文件的代碼大?。ň€的編號(hào)),編譯器通常被限制。一個(gè)大的源代碼文件也可能比一些小的文件需要更長(zhǎng)的編譯時(shí)間。因此,你應(yīng)該把大量源代碼文件的內(nèi)容分配到一些較小的文件內(nèi)。方法:通過(guò)Atomic子系統(tǒng)如何減少Files Sizes 1. 選擇你想優(yōu)化的標(biāo)準(zhǔn)子系統(tǒng)同時(shí)打開塊的參數(shù)對(duì)話框2.選擇 Treat as atomic unit復(fù)選框 功能Packaging 下拉列表在編碼生成頁(yè)上啟用。l 引發(fā)和啟用子系統(tǒng)通常是atomic 同時(shí) Treat as atomic unit 復(fù)選框被禁用。3. 選擇函數(shù)或可重用函數(shù)作為函數(shù)packaging。啟用函數(shù)名稱和文件名選項(xiàng)。結(jié)果;結(jié)果,Simulink代碼(之前的實(shí)時(shí) Workshop)為該子系統(tǒng)生成一個(gè)功能,變成一個(gè)單獨(dú)的源代碼文件,這樣減少了 .c文件的大小。該單獨(dú)源代碼文件的名稱可以由文件名選項(xiàng)設(shè)置控制。2.2來(lái)自TRC文件的Excluding子系統(tǒng) 目標(biāo):來(lái)自TRC文件的Excluding子系統(tǒng)是由RTI提供的最優(yōu)化技術(shù)。例如你想減小TRC文件的大小,它是很有用的。下一步:減小TRC文件的優(yōu)勢(shì) 248如何從TRC文件中排除一個(gè)系統(tǒng) 2522.2.1減小TRC文件的優(yōu)勢(shì) 排除子系統(tǒng)的原因你想排除一個(gè)來(lái)自TRC文件生成的子系統(tǒng)的原因有兩個(gè):l 減小TRC文件的大小l 為隱藏來(lái)自其他用戶的一個(gè)模型的部分。減小文件的大小:通常,生成的TRC文件包含所有模型中定義的信號(hào),以防大的模型產(chǎn)生一個(gè)大的TRC文件。隨后,生成這些文件需要更多的時(shí)間這反過(guò)來(lái)導(dǎo)致在 ControlDesk 3.x and ControlDesk Next Generation中加載時(shí)間的增加。通過(guò)把一個(gè)TRC排除模塊添加到在選定位置或者使用該子系統(tǒng)刪除(DsVdOmit)上的模塊,你可以排除所有來(lái)自在已選定子系統(tǒng)和所有下層子系統(tǒng)中塊的信號(hào)。這意味著當(dāng)當(dāng)它產(chǎn)生時(shí),該信號(hào)不包含在TRC文件中,這樣就減少了文件的大小。使用TRC排除模塊隱藏模型部分:您也可以使用TRC排除塊隱藏來(lái)自其他用戶模型的部件。當(dāng)TRC排除塊處于激活狀態(tài),由于子系統(tǒng)和所有下層子系統(tǒng)的塊信號(hào)從TRC文件中被排除,對(duì)于在 ControlDesk 3.x or ControlDesk Next Generation的 Variable Browser 中的選擇,他們是不可用的。上圖顯示了帶有一個(gè)TRC排除塊設(shè)置為失效狀態(tài)的子系統(tǒng),這和該模塊根本沒(méi)有存在一樣。正如你看到的,該Variable Browser顯示了該系統(tǒng)所有的塊組?,F(xiàn)在當(dāng)你把塊設(shè)置為激活狀態(tài)看一下會(huì)發(fā)生什么。現(xiàn)在TRC排除塊設(shè)置為激活狀態(tài)。可變?yōu)g覽器不在顯示子系統(tǒng)的塊組。唯一可用的是子系統(tǒng)自己。所有下層子系統(tǒng)頁(yè)是不可見的。你可以把多與一個(gè)TRC 排除塊添加到一個(gè)模型中,這使您可以完全控制將被隱藏的模型各部分。一個(gè)極端的情況是將TRC排斥塊添加到該模型的根部。在TRC文件中這將導(dǎo)致一個(gè)空的Model Root group.l 通過(guò)塊對(duì)話框設(shè)置TRC排除塊的模型。您可以直接輸入值或通過(guò)工作區(qū)變量輸入。通過(guò)使用工作區(qū)變量,你可以定義不同的generation類型或者查看場(chǎng)景同時(shí)根據(jù)你的需要在他們之間進(jìn)行轉(zhuǎn)變。使用子系統(tǒng)Omission tag隱藏模塊部分:使用子系統(tǒng)Omission tag(DsVdOmit)你可以排除來(lái)自TRC文件的一個(gè)子系統(tǒng)。你必須在子系統(tǒng)的塊屬性對(duì)話框的標(biāo)記編輯區(qū)域中輸入 DsVdOmit=1。通過(guò)模型層次結(jié)構(gòu)遞歸地應(yīng)用于排除。為再次包含子系統(tǒng),你可以輸入DsVdOmit=0 。通過(guò)這樣,您可以包括一個(gè)特定子系統(tǒng)層次結(jié)構(gòu)的變量。使用工作去變量你可以設(shè)置DsVdOmit tag 。例如,如果WSVar1是一個(gè)工作區(qū)變量,在構(gòu)建過(guò)程中,你可以用set_param(subsystemHandle,Tag,DsVdOmit=$(WSVar1)去計(jì)算DsVdOmit tag值。設(shè)置描述DsVdOmit tag被設(shè)置為1包含該子系統(tǒng)下面所有塊的子系統(tǒng)的內(nèi)容沒(méi)有出現(xiàn)在生成的變量描述文件中。使用set_param(gcb,Tag, DsVdOmit=1).如果你設(shè)置 DsVdOmit=-1,在被包括的子系統(tǒng)中該DsVdOmit設(shè)置被忽略。DsVdOmit tag被設(shè)置為0包含該子系統(tǒng)下面所有塊的子系統(tǒng)的內(nèi)容沒(méi)有出現(xiàn)在生成的變量描述文件中,即使該子系統(tǒng)上面的子系統(tǒng)已經(jīng)把DsVdOmit tag設(shè)置為1.使用set_param(gcb,Tag, DsVdOmit=0).DsVdOmit tag被設(shè)置為-1包含該子系統(tǒng)下面所有塊的子系統(tǒng)的內(nèi)容沒(méi)有出現(xiàn)在生成的變量描述文件中。包括在該子系統(tǒng)中的子系統(tǒng)的DsVdOmit設(shè)置將被忽略。使用set_param(gcb,Tag, DsVdOmit=-1).下面的例子顯示了 DsVdOmit tags如何控制子系統(tǒng)變量的排外。灰色子系統(tǒng)的變量的變量沒(méi)有在描述文件中生成。如果你在Code Generation / Real-Time Workshop 對(duì)話框的 RTI variable description file options 頁(yè)設(shè)置 Apply subsystem omission tags 選項(xiàng),計(jì)算特定的DsVdOmit tags。然后該排除子系統(tǒng)的變量沒(méi)有生成為變量描述文件。如果選項(xiàng)被清除,對(duì)于在模型中的所有子系統(tǒng) , DsVdOmit tags被忽略了。所有子系統(tǒng)及其內(nèi)容將顯示在生成的變量描述文件。在同樣的模型中,可以一起使用TRC排除塊和DsVdOmit tags。2.2.2、如何從TRC文件中排除一個(gè)系統(tǒng) 目標(biāo):通過(guò)排除一個(gè)子系統(tǒng),在配置子系統(tǒng)的所有塊中和-如果配置起來(lái)不困難-所有下層子系統(tǒng)沒(méi)有生成TRC文件??尚行苑椒憧梢园裈RC排除塊添加到一個(gè)子系統(tǒng)中,參閱方法1.你可以在一個(gè)系統(tǒng)的屬性對(duì)話框中設(shè)定DsVdOmit tag ,參閱方法2。方法1使用TRC排除塊你可以從TRC文件中排除一個(gè)子系統(tǒng)。1. 打開TRC排除塊放置處的子系統(tǒng);2. 把來(lái)自Extra庫(kù)的TRC排除塊添加到該子系統(tǒng)。在TRC排除塊對(duì)話框的塊模型默認(rèn)設(shè)置為1(激活態(tài))。通過(guò)打開對(duì)話框并且把塊模型設(shè)置為0,您可以切換塊為非激活狀態(tài)從而在TRC文件中再次添加該子系統(tǒng)。方法2:通過(guò)用DsVdOmit tag從而排除來(lái)自TRC文件的一個(gè)子系統(tǒng)。1. 從你想排除處打開該子系統(tǒng)。2. 打開子系統(tǒng)的塊屬性對(duì)話框,在tag編輯區(qū)輸入DsVdOmit=1。3.打開模型瀏覽器中的模型配置設(shè)置的 Code Generation / Real-Time Workshop 對(duì)話框,并且選擇 RTI variable description file options 頁(yè)。4.選擇Apply subsystem omission tags 選項(xiàng)。結(jié)果:從TRC文件中排除一個(gè)子系統(tǒng)。2.3、應(yīng)用子系統(tǒng)TRC文件的權(quán)限目標(biāo):由子系統(tǒng)權(quán)限您可以控制是否該包含的塊參數(shù)在實(shí)驗(yàn)軟件中是可寫的,只讀的或者甚至是被隱藏的。2.3.1如何把子系統(tǒng)權(quán)限應(yīng)用到TRC文件。目標(biāo):RTI提供了一個(gè)選項(xiàng),讓你可以把子系統(tǒng)的 Simulinks ReadOnly and NoReadNoWrite權(quán)限應(yīng)用到可變的描述文件中。這樣,你可以在實(shí)驗(yàn)軟件中設(shè)定塊參數(shù)是否為可寫的,只讀的或甚至是被掩藏的。應(yīng)用子系統(tǒng)權(quán)限:通過(guò)把子系統(tǒng)權(quán)限應(yīng)用到TRC文件中,子系統(tǒng)的 Simulinks ReadOnly and NoReadOrWrite權(quán)限不僅影響到Simulink模塊自身也影響到實(shí)驗(yàn)軟件。結(jié)果,所有只讀子系統(tǒng)的模塊參數(shù)在實(shí)驗(yàn)軟件中是只讀的,同時(shí)在實(shí)驗(yàn)軟件中, NoReadOrWrite子系統(tǒng)的內(nèi)容被隱藏。基礎(chǔ)在RTI and RTI-MP中,通過(guò) Apply subsystem read/write permissions 選項(xiàng),你可以在實(shí)驗(yàn)軟件中,設(shè)定是否該子系統(tǒng)的權(quán)限被反映。限制:l 如果ControlDesk 3.x配置為允許瀏覽變成屏蔽的和NoReadOrWrite子系統(tǒng),它并沒(méi)有隱藏NoReadOrWrite 子系統(tǒng)。然而,該子系統(tǒng)的參數(shù)保持只讀狀態(tài)。l 盡管 Apply subsystem read/write permissions選項(xiàng)出自 RTI and RTI-MP對(duì)話框,它頁(yè)影響用于Simulink仿真的TRC文件??尚行苑椒ǎ簂 如果模型為RTI模型,見255頁(yè)方法1l 如果模型為 RTI-MP模型,見255 頁(yè)方法2.方法1:把子系統(tǒng)權(quán)限應(yīng)用到RTI模型的TRC文件中1. 打開 Multiprocessor Setup對(duì)話框的CPU一頁(yè),點(diǎn)擊Variable Description File Options按鈕。在Variable Description File Options那頁(yè),打開CPU 選項(xiàng)對(duì)話框。2. 選擇Apply subsystem read/write permissions 選項(xiàng)。方法2:把把子系統(tǒng)權(quán)限應(yīng)用到RTI-MP模型的TRC文件中1. 打開多處理器設(shè)置對(duì)話框的CPU頁(yè),點(diǎn)擊Variable Description File Options 按鈕。在變量描述文件頁(yè)上打開CPU選項(xiàng)對(duì)話框。2.選擇Apply subsystem read/write permissions 選項(xiàng)結(jié)果:現(xiàn)在用子系統(tǒng)的讀/寫權(quán)限生成TRC文件。下一步:如果需要,您現(xiàn)在可以配置ControlDesk 3去顯示NoReadNoWrite子系統(tǒng)。參閱使用工作空間和遮掩參數(shù) ( ControlDesk Experiment Guide).2.4、把工作區(qū)參數(shù)應(yīng)用到TRC文件中。目標(biāo):RTIs Include mask and workspace parameters 選項(xiàng)被停用。使用MATLAB/Simulink的 Inline parameters 最優(yōu)化取代它。256頁(yè)2.4.1使用內(nèi)聯(lián)參數(shù)代替Mask and Workspace 參數(shù)。目標(biāo):用ControlDesk 3.7.2,高級(jí)的參數(shù)處理的支持已經(jīng)被停用。(背景信息參閱/faq?403)。為了遷移你的模型,你應(yīng)該設(shè)定MATLAB/Simulink的Inline parameters optimization而不是已停用的 RTI-specific Include mask and workspace parameters 選項(xiàng)。內(nèi)聯(lián)的參數(shù):您可以將工作區(qū)參數(shù)聲明為非內(nèi)聯(lián)。在實(shí)時(shí)仿真期間,這些參數(shù)可調(diào)。在實(shí)時(shí)應(yīng)用中,所有的塊使用相同的全局變量計(jì)算其塊輸出。所有這些塊的參數(shù)與相同可調(diào)參數(shù)相聯(lián)系。例如:用一個(gè)單一仿真步的最大延遲,更改參數(shù)值會(huì)影響所有相關(guān)塊的參數(shù)。在可變描述文件的可調(diào)參數(shù)組中的所有可調(diào)參數(shù)是可用的。對(duì)于所有dsPACE工具,非內(nèi)聯(lián)參數(shù)的訪問(wèn)是透明的(例如,ControlDesk, AutomationD esk and test automation scripts)并且在仿真運(yùn)行時(shí)期間,不需要MATLAB安裝,應(yīng)為在實(shí)時(shí)應(yīng)用中它可以直接計(jì)算。對(duì)于當(dāng)前 dSPACE Releases 和之前dSPACE Releases a的該解決方案仍然提供Include mask and workspace parameters選項(xiàng)。這樣,用之前和當(dāng)前的版本,你可以使用相同的程序。為了轉(zhuǎn)移 Model Root Parameters 組的變量,應(yīng)遵照以下步驟:1打開Simulink 模塊并且選擇. Inline parameters 選項(xiàng)(在Configuration Parameters對(duì)話框的 Optimization面板上)。257頁(yè)2.聲明為在實(shí)時(shí)模擬期間,訪問(wèn)非內(nèi)聯(lián)的工作參數(shù),。關(guān)于如何做到這一點(diǎn),請(qǐng)參閱Simulink用戶指南和變量描述文件選項(xiàng)頁(yè)(CPU選項(xiàng)對(duì)話框)(RTI和rti-mp執(zhí)行的參考)。在構(gòu)建過(guò)程后,這些參數(shù)位于調(diào)整參數(shù)根節(jié)點(diǎn)之下。3、 把這些參數(shù)重新連接到合適的控制臺(tái)儀器上。 為了合并mask參數(shù),按照以下步驟:1、 打開Simulink模型,選擇內(nèi)聯(lián)參數(shù)選項(xiàng)。(在配置參數(shù)對(duì)話框的優(yōu)化板)。2、 為遮掩子系統(tǒng)的每個(gè)參數(shù)創(chuàng)建一個(gè)MATLAB的工作空間參數(shù)。子啊實(shí)時(shí)仿真期間需要訪問(wèn)該子系統(tǒng)。打開子系統(tǒng)的掩模,并將相應(yīng)工作區(qū)變量的名稱作為參數(shù)值。3、 聲明新的工作空間參數(shù)為非內(nèi)聯(lián)。關(guān)于如何做到這一點(diǎn),請(qǐng)參閱Simulink用戶指南和變量描述文件選項(xiàng)頁(yè)(CPU選項(xiàng)對(duì)話框)(RTI和rti-mp實(shí)現(xiàn)的參考)。在構(gòu)建過(guò)程后,這些參數(shù)位于調(diào)整參數(shù)根節(jié)點(diǎn)之下。4、 把這些參數(shù)重新連接到合適的控制臺(tái)儀器上。一、修改塊執(zhí)行命令任務(wù):通過(guò)設(shè)定塊的優(yōu)先權(quán),你可以在Simulink模型的全部執(zhí)行中修改塊的執(zhí)行命令。塊優(yōu)先的不合邏輯分布可能導(dǎo)致沖突。接下來(lái):決定執(zhí)行順序 258如何檢查不合邏輯塊的優(yōu)先級(jí) 2601.1決定執(zhí)行順序設(shè)定塊的優(yōu)先級(jí)和執(zhí)行順序Simulink塊的有限級(jí)和它們的執(zhí)行順序可以通過(guò)以下的方法設(shè)定:l 在水平2s函數(shù)中的SS_OPTION_PLACE_ASAP 選項(xiàng)。l 塊的優(yōu)先級(jí)SS_OPTION_PLACE_ASAP通過(guò)設(shè)置在mdlInitializeSizes 功能中的選項(xiàng),盡可能早的計(jì)算水平2S函數(shù)功能。塊的優(yōu)先級(jí)您可以在其塊參數(shù)對(duì)話框中指定一個(gè)塊的優(yōu)先級(jí)。只要沒(méi)有拓?fù)湟蕾?,這允許你改變塊的執(zhí)行順序。您可以指定任何整數(shù)值,甚至負(fù)數(shù)和零:該數(shù)字越低,該塊的優(yōu)先級(jí)越高。v 如果你運(yùn)行一個(gè)RTI MP模型,可能由于分配塊的優(yōu)先級(jí),引起優(yōu)先級(jí)沖突。在提取的子系統(tǒng)的特定用戶和RTI-MP特定塊之間,出現(xiàn)這樣的沖突。查看260頁(yè),如何檢查的不合邏輯的塊優(yōu)先級(jí),以了解如何避免它們。結(jié)果執(zhí)行順序:首先:Simulink試圖滿足2級(jí)的S函數(shù)要求,以盡快地放置該塊(即ss_option_place_asap選項(xiàng)具有最高的優(yōu)先級(jí))。如果模型包含有ss_option_place_asap選項(xiàng)的多個(gè)2級(jí)S函數(shù)塊,相關(guān)的塊的優(yōu)先級(jí)來(lái)確定哪些塊首先被執(zhí)行。隨后在該模型中,Simulink尋找用戶特定塊的優(yōu)先級(jí)。優(yōu)先級(jí)沖突由于拓?fù)湟蕾嚮騼?nèi)部沖突,MATLAB可能無(wú)法應(yīng)用用戶特定的塊的優(yōu)先級(jí)。在這種情況下,發(fā)出警告,并忽略了相互沖突的優(yōu)先級(jí)。RTI-MP優(yōu)先級(jí)的沖突當(dāng)提取的個(gè)人CPU的子模型,rti-mp自動(dòng)設(shè)置對(duì)于所有IPC輸入塊的優(yōu)先級(jí)為10和對(duì)于所有IPC輸出模塊為-10,以實(shí)現(xiàn)處理器通信間最小等待時(shí)間。為了滿足數(shù)據(jù)依賴,Simulink忽略對(duì)于直接饋通項(xiàng),塊的優(yōu)先級(jí)。因此,在IPC輸出塊之前計(jì)算IPC輸入塊,并且MATLAB發(fā)出警告。分配塊的特定用戶優(yōu)先級(jí)時(shí),應(yīng)該注意。因?yàn)閮?yōu)先級(jí)可能與提取子模型的IPC的輸入/輸出塊的優(yōu)先級(jí)放生沖突。v 用戶特定的塊的優(yōu)先級(jí)可能會(huì)影響處理器間的通信序列,即使不造成一個(gè)警告,這可能導(dǎo)致死鎖。當(dāng)使用S-functions的ss_option_place_asap選項(xiàng)或使用多處理器模型中的塊的優(yōu)先級(jí)時(shí),應(yīng)該小心。由于這樣的優(yōu)先權(quán)沖突只出現(xiàn)在提取子模型中,如果設(shè)定用戶特定的塊的優(yōu)先級(jí)時(shí),你應(yīng)該經(jīng)常檢查所有CPU優(yōu)先級(jí)沖突模式的子模型(請(qǐng)參閱260頁(yè)如何檢查非邏輯塊的優(yōu)先級(jí))。有關(guān)通過(guò)塊的優(yōu)先級(jí),rti-mp是如何優(yōu)化模型評(píng)價(jià)的信息:參閱138頁(yè)模型評(píng)價(jià)。1.2如何檢查不合邏輯塊的優(yōu)先級(jí) 任務(wù):無(wú)論何時(shí)在一個(gè)模型中,設(shè)定用戶特定塊優(yōu)先級(jí)時(shí),應(yīng)該檢查它可能出現(xiàn)的優(yōu)先級(jí)沖突。對(duì)于單處理器的系統(tǒng),必須檢查模式本身的優(yōu)先權(quán)沖突,而對(duì)于多處理器系統(tǒng)中,必須檢查個(gè)人CPU的子模型。方法:檢查模型和子模型可能出現(xiàn)的優(yōu)先級(jí)沖突。1、 如果運(yùn)行了一個(gè)處理器系統(tǒng),可以繼續(xù)執(zhí)行步驟2。否則,通過(guò)相應(yīng)的CPU的頁(yè)顯示子模式按鈕,提取所感興趣的模型。2、 啟用該模型的Simulink仿真或提取子模型用于檢查Simulink發(fā)出的任何警告,或干脆從菜單欄選擇編輯更新圖命令。二、Transfer Fcn, Zero-Pole and State-Space Blocks的調(diào)整參數(shù)。任務(wù)線性時(shí)不變系統(tǒng),大多數(shù)情況描述為傳遞函數(shù)或狀態(tài)空間表示法。MATLAB和Simulink都支持?jǐn)?shù)學(xué)形式。當(dāng)Simulink編碼器(原實(shí)時(shí)工作空間)產(chǎn)生的實(shí)時(shí)代碼,所有的傳遞函數(shù)自動(dòng)轉(zhuǎn)化為狀態(tài)空間表示法。因此,在Simulink中定義的傳遞函數(shù)參數(shù)(多項(xiàng)式的系數(shù)或參數(shù)的極點(diǎn)和零點(diǎn))在實(shí)時(shí)仿真中是不可用的。相反的實(shí)時(shí)代碼包含狀態(tài)空間矢量和矩陣的矩陣值(A,B,C,D)。嘗試實(shí)現(xiàn)參數(shù)集關(guān)聯(lián)是很不實(shí)際的,特別是因?yàn)橥ㄟ^(guò)Simulink編碼器實(shí)現(xiàn)的轉(zhuǎn)換,不在Mathworks文件中描述。接下來(lái):用于轉(zhuǎn)變函數(shù)的MATLAB的狀態(tài)空間標(biāo)示式 261通過(guò)手動(dòng)轉(zhuǎn)換如何調(diào)整轉(zhuǎn)換函數(shù)的參數(shù) 263如何通過(guò)內(nèi)聯(lián)參數(shù)調(diào)整轉(zhuǎn)換函數(shù)的參數(shù) 264如何保存狀態(tài)空間塊的0參數(shù) 2662.1用于轉(zhuǎn)變函數(shù)的MATLAB的狀態(tài)空間標(biāo)示式 tf2ss函數(shù)根據(jù)所選擇的狀態(tài)空間變量,每個(gè)傳遞函數(shù)可以有幾個(gè)甚至無(wú)限數(shù)量的相應(yīng)的狀態(tài)空間表示。為了實(shí)現(xiàn)一個(gè)明確的結(jié)果,使用狀態(tài)空間表示式的特定形式,例如,歸一化的形式。從傳遞函數(shù)到狀態(tài)空間表示式的轉(zhuǎn)換,可以通過(guò)tf2ss MATLAB函數(shù)進(jìn)行。此返回控制器的典型形式的狀態(tài)空間矩陣??紤]以下有系數(shù)編號(hào)的多項(xiàng)式中一般的傳遞函數(shù),遵照以下MATLAB的公式。如果用 tf2ss 函數(shù)把該傳遞函數(shù)轉(zhuǎn)變?yōu)闋顟B(tài)空間表達(dá)式,結(jié)果如下:v 如果分子多項(xiàng)式的次數(shù)等于分母多項(xiàng)式的次數(shù),d是不等于零。在所有其他情況下,d等于0.例如,如下面的模型:應(yīng)用以上的轉(zhuǎn)換將實(shí)現(xiàn)以下該系統(tǒng)的狀態(tài)空間表示式:B通常有以上給出的格式,在該情況下d等于0.Simulink的編碼器的代碼生成過(guò)程(之前的實(shí)時(shí)工作空間)介紹了這兩個(gè)向量A和C(見TRC文件),它可以通過(guò)ControlDesk 3.x or ControlDesk Next Generation進(jìn)行訪問(wèn)。在ControlDesk 3.x or ControlDesk Next Generation 中,以下參考這些參數(shù):用Simulink 編碼器,所有是0或1的單元已經(jīng)被優(yōu)化了。2.2通過(guò)手動(dòng)轉(zhuǎn)換如何調(diào)整轉(zhuǎn)換函數(shù)的參數(shù)任務(wù): 為了導(dǎo)出傳遞函數(shù)狀態(tài)空間矩陣的新的值,可以使用MATLAB的tf2ss功能,這可以直接計(jì)算所有矩陣的位置。在變量描述文件中,可以用狀態(tài)空間矩陣 并且通過(guò)ControlDesk 3.x or ControlDesk Next Generation實(shí)現(xiàn)矩陣的改變。方法:通過(guò)手動(dòng)轉(zhuǎn)換調(diào)整傳遞函數(shù)的參數(shù)1、在MATLAB命令窗口中,輸入以下命令:A,B,C,D = tf2ss(NUM,DEN) 用所需的分子與分母。v 輸入 help tf2ss 以獲得關(guān)于該命令和語(yǔ)法的更近一的信息。2、 把來(lái)自Simulink庫(kù)的狀態(tài)空間塊添加到模型中并且打開塊參數(shù)對(duì)話框。根據(jù)計(jì)算結(jié)果,通過(guò)tf2ss功能設(shè)置該參數(shù)。結(jié)果:狀態(tài)空間的塊的狀態(tài)空間矩陣(A,B,C,如果它存在D)在變量描述文件是可用的,因此可以通過(guò)ControlDesk 3.x or ControlDesk Next Generation.進(jìn)行改變。2.3如何通過(guò)內(nèi)聯(lián)參數(shù)調(diào)整轉(zhuǎn)換函數(shù)的參數(shù) 任務(wù):向任何其他參數(shù)一樣,用內(nèi)聯(lián)參數(shù)調(diào)整傳遞函數(shù)參數(shù)是可行的。通過(guò) ControlDesk 3.x or ControlDesk Next Generation,可以直接訪問(wèn)傳遞函數(shù)的參數(shù)。方法:通過(guò)內(nèi)聯(lián)參數(shù)調(diào)整傳遞函數(shù)的參數(shù):1、 把多項(xiàng)式的公因式的向量放在 MATLAB 工作空間中,例如,myNum = 1 2myDenum = 3 4 5 6 72、 在傳遞函數(shù)塊的塊參數(shù)對(duì)話框中,設(shè)定工作空間的參數(shù)(例如,mynum和mydenum)。 3、在參數(shù)配置對(duì)話框的優(yōu)化信號(hào)和參數(shù)模型的對(duì)話框中選擇內(nèi)置參數(shù)”復(fù)選框”,并通過(guò)配置按鈕設(shè)定的可調(diào)參數(shù)。v 用RTI-MP,可調(diào)參數(shù)不是具體的CPU。在所有模型中顯示的可調(diào)參數(shù),可用于所有子模型。4、 在源表列中選擇想要調(diào)整的參考工作空間變量,例如,“myNum” and “myDenum” 并把它們添加到Global (tunable) parameters表中。結(jié)果:在生成的代碼中所有的分子和分母系數(shù)作為變量被執(zhí)。該變量可以在實(shí)時(shí)仿真期間改變。v 1.將傳遞函數(shù)的分母的最大次序公因數(shù)變?yōu)榱?,?huì)導(dǎo)致模型結(jié)構(gòu)的改變,這就要求重建該實(shí)時(shí)代碼。 2.如果你改變了這個(gè)系數(shù)為零,可能導(dǎo)致運(yùn)行時(shí)錯(cuò)誤,如除數(shù)為零。零系數(shù)的變化對(duì)實(shí)時(shí)仿真沒(méi)有影響,因?yàn)樗鼈冊(cè)趯?shí)時(shí)代碼中沒(méi)有執(zhí)行。2.4如何保持狀態(tài)空間塊的零參數(shù)。任務(wù)Simulink的編碼器(原實(shí)時(shí)工作空間)試圖優(yōu)化了狀態(tài)空間塊不必要的參數(shù)。然而,對(duì)于參數(shù)整定,可能希望保留所有參數(shù)。這是保持一個(gè)狀態(tài)空間系統(tǒng)矩陣的參數(shù)的一個(gè)簡(jiǎn)單的解決方法。方法:保持狀態(tài)空間的0參數(shù)。1、 對(duì)狀態(tài)空間塊的所有參數(shù)輸入非零值。2、 把初始仿真狀態(tài)設(shè)置為“STOP”n 對(duì)于RTI,參考 代碼生成/實(shí)時(shí)工作空間對(duì)話框。(模型配置參數(shù)對(duì)話框)(RTI and RTI-MP執(zhí)行參考)n 對(duì)于RTI-MP,參閱主頁(yè)(多處理器設(shè)置對(duì)話框)(RTI and RTI-MP執(zhí)行參考)3、 構(gòu)建和下載該模型。4、 下載所需的參數(shù)并且用 ControlDesk 3.x or ControlDesk Next Generation把仿真狀態(tài)切換為運(yùn)行狀態(tài)。三、n-D查詢表模塊的調(diào)整參數(shù)任務(wù)使用prelookup塊的多維查找表(n-D),直接查表(n-D)和插值(n-D)的參數(shù),只能通過(guò)多個(gè)二維切片調(diào)節(jié)。3.1在ControlDesk 3.x / ControlDesk Next Generation中的n-D查詢表的參數(shù)表達(dá)式。實(shí)時(shí)工作空間的參數(shù)表達(dá)式:Simulink的編碼器(之前的實(shí)時(shí)工作空間)把多維查找表(n-D),直接查表(n-D)和插值(n-D)的表參數(shù)轉(zhuǎn)化為數(shù)組,該數(shù)組的維度通常不同于相應(yīng)塊參數(shù)的維度。如果把表配置為1維或2維的表,這也是可以應(yīng)用的。1維2維表在變量描述文件中,RTI生成一個(gè)或多個(gè)lookuptabledata目錄。對(duì)于1和2維的表,這相當(dāng)于標(biāo)準(zhǔn)的查找表和查找表(2維)塊的表參數(shù)。因此,像通常一樣可以用ControlDesk 3.x or ControlDesk Next Generation的表編輯器,把它同表的 LookUpTableData 目錄相連接。在變量描述文件中,可以忽略其他表數(shù)據(jù)的目錄。例子:假如,在模型中有3x4查詢表 (n-D) 塊。通過(guò) ControlDesk 3.x or ControlDesk Next Generation編輯該表數(shù)據(jù),把 LookUpTableData 目錄連接到表編輯器中:有更多維的表ControlDesk的表編輯儀器不能處理表有兩個(gè)以上的維度。讓訪問(wèn)這樣一個(gè)表的參數(shù),RTI將它分成若干個(gè)二維表片。如果用3rd Nth維度,不同2維表間進(jìn)行轉(zhuǎn)換,這是特別有用的。對(duì)于一個(gè)n1xn2x Xnm維參數(shù),在變量描述文件中,RTI生成該維度 n1xn2的 n3* *nm附加條目。例子:假如有 3x4x2查詢表(n-D)塊。在變量描述文件中,將產(chǎn)生兩個(gè)3x4維的 LookUpTableData 查詢條目??梢园衙恳粋€(gè)條目連接到單個(gè)的編輯器上。 三維或跟多維的可調(diào)參數(shù)如果在你的模型的配置的模型瀏覽器優(yōu)化對(duì)話框中,內(nèi)聯(lián)參數(shù)復(fù)選框被選中,在變量說(shuō)明文件的可調(diào)參數(shù)組中,RTI產(chǎn)生對(duì)于3或更多的尺寸可調(diào)參數(shù)的額外的條目。通過(guò)模型參數(shù)配置對(duì)話框,相關(guān)的參數(shù)被設(shè)置為可調(diào)的。例子,假如有被命名為tableParameter的 2x4x5維的 MATLAB 工作空間參數(shù)。在該變量描述文件中,將產(chǎn)生5個(gè)2x4維的tableParameter條目??梢园衙總€(gè)條目連接到單個(gè)表編輯器。使用Simuli
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 腫瘤護(hù)理體系構(gòu)建與臨床實(shí)踐
- 2025水利建設(shè)工程施工合同
- 胰腺導(dǎo)管護(hù)理規(guī)范與實(shí)施
- 2025華泰證券資產(chǎn)管理合同
- 護(hù)理創(chuàng)新大賽匯報(bào)
- 肝膽胰脾微創(chuàng)治療護(hù)理規(guī)范
- 黃疸中醫(yī)治療
- 氣管切開病人術(shù)后護(hù)理
- 外陰水腫護(hù)理規(guī)范
- 殼體鈑金工程師培訓(xùn)課件
- Photoshop圖像處理試題及答案
- 2025年農(nóng)村宅基地房屋買賣合同樣本
- 2025年高考數(shù)學(xué)二輪熱點(diǎn)題型歸納與演練(上海專用)專題02函數(shù)(九大題型)(原卷版+解析)
- 中原農(nóng)業(yè)保險(xiǎn)筆試
- 中華民族共同體概論知到課后答案智慧樹章節(jié)測(cè)試答案2025年春麗水學(xué)院
- 【MOOC】樹木學(xué)-北京林業(yè)大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年高考真題-物理(貴州卷) 含解析
- 2024年浙江省中考社會(huì)試卷真題(含標(biāo)準(zhǔn)答案及評(píng)分標(biāo)準(zhǔn))
- 2024年吉林省中考?xì)v史試卷真題(含答案)
- 100以內(nèi)進(jìn)退位加減法口算題每天60道
- 創(chuàng)傷失血性休克中國(guó)急診專家共識(shí)(2023)解讀
評(píng)論
0/150
提交評(píng)論