高保真動態(tài)嵌入式系統(tǒng)仿真探析
AC轉(zhuǎn)換為電壓,再通過電壓增益為1的功率放大器驅(qū)動直流馬達。為了盡可能使用便宜的處理器,在每個刷新周期期間,控制器模型要用4ms完成運算。 在為動態(tài)系統(tǒng)建模時,必須確定表述每個部件的詳細程度。所需細節(jié)的數(shù)量取決于仿真中的具體用途。在本例中,仿真的主要目的是使數(shù)字控制器的設(shè)計和實現(xiàn)能應(yīng)用于轉(zhuǎn)盤系統(tǒng)。因此,要嘗試以良好的精確度對馬達和轉(zhuǎn)盤動態(tài)系統(tǒng)進行建模,并忽略功率放大器的動態(tài)特性,必須盡可能精確地模擬數(shù)字控制算法的特性。 我們將馬達動態(tài)特性建模為二階傳遞函數(shù),該傳遞函數(shù)的輸入為馬達驅(qū)動電壓,輸出為馬達速度。馬達速度的積分可確定馬達的位置。位置編碼器向數(shù)字控制器輸出馬達位置的數(shù)字量化值。數(shù)字控制器的輸入是受控轉(zhuǎn)盤的位置及由編碼器測得的當(dāng)前位置。控制器的輸出驅(qū)動功率放大器的模擬電壓,功率放大器輸出驅(qū)動馬達。 圖4示出了數(shù)字控制器控制算法的實現(xiàn)方法。因為該算法執(zhí)行的時間間隔為5ms,Simulink模型要求添加標(biāo)有“0階保持1”、“1階保持2”和“單位延遲”的方框,這些方框都具備一個設(shè)定為5ms刷新的參數(shù)。算法的其余部分由比例微分控制器組成,該控制器使用標(biāo)有“導(dǎo)數(shù)估計”的離散時間傳遞函數(shù)來獲得轉(zhuǎn)盤角速率的估計值??刂扑惴ǖ妮敵龇答伒较薹土炕盘柕?位DAC?!?ms傳輸延遲”方框?qū)⑺惴ǖ妮敵鲅舆t4ms,從而仿真出計算延時。 除了實現(xiàn)仿真模型外,還必須確定所用的積分算法及積分時間步長(如果使用的是固定步長型算法)。經(jīng)試驗測定使用1ms的時間步長和Simulink的4階Runge-Kutta積分算法可得到滿意的結(jié)果。通過執(zhí)行一個步長時間為0.1ms的操作進行驗證,結(jié)果沒有顯著變化。 系統(tǒng)的初始狀態(tài)為轉(zhuǎn)盤停在位置0。0時刻之后,指令將轉(zhuǎn)盤移動到弧度1位置。大約5s之后,可看到轉(zhuǎn)臺到達指定位置。 再看一下圖5所示的數(shù)字控制器輸出,可得到位置編碼器信號量化的結(jié)果。此外,不僅能看到輸出信號在仿真初期約1.7s后飽和為******值,還能看到DAC輸出信號電壓的量化值。 轉(zhuǎn)盤和控制器的仿真向我們提供了大量關(guān)于整個系統(tǒng)動態(tài)特性的信息。非線性系統(tǒng)特性的細節(jié)對于開發(fā)實際應(yīng)用的設(shè)計至關(guān)重要。仿真的應(yīng)用使人們能夠通過改變模型參數(shù)及給部件模型增加額外的變化因素和復(fù)雜性因素來確定系統(tǒng)在各種條件下的特性。還能方便地改變研究以確定系統(tǒng)在設(shè)計修改時表現(xiàn)出的特性。這些修改包括不同的控制器刷新速率、不同的DAC位或不同的編碼器分辨率等。 本文總結(jié) 仿真是復(fù)雜嵌入式系統(tǒng)開發(fā)和測試中重要且常用的技術(shù)。從最初產(chǎn)品概念的定義到工程開發(fā),再到維護軟件發(fā)布和硬件升級測試的全過程都要應(yīng)用仿真。在開發(fā)項目中采用適宜的仿真不但能降低工程所需的總體時間和費用,而且可開發(fā)出經(jīng)過完全測試的高質(zhì)量產(chǎn)品。 |