連續(xù)三天都說同一件事情:信號的轉(zhuǎn)換
三天前一個同學(xué)在微信公眾號提了關(guān)于在 模擬課程中的問題[1] ,即要求設(shè)計一個系統(tǒng),輸入一個正弦波,可以輸出一個二倍頻的三角波。三角波的幅值、占空比(上升沿、下降沿的時間)可以被改變。
在前天給出了一個 信號轉(zhuǎn)換的解題思路[2] ,并在昨天 對前面的思路進(jìn)行了物理仿真 驗證,結(jié)果可以看到這個簡單的思路還存在著不少的問題。
這些問題歸納起來主要有以下幾條:
- 控制量之間的耦合,特別是頻率,占空比對輸出信號幅值的影響;
- 頻率對于占空比的影響雖然經(jīng)過改進(jìn)之后有所解耦,還是會有部分的影響;
- 輸出三角波存在失真。這主要是最后一級從方波到三角波轉(zhuǎn)換的過程中,對于信號的直流分量的變化與波形失真之間的關(guān)系;
- 最后一點,也是最重要的一點,就是電路非常復(fù)雜。
估計這兩天看過推文的同學(xué)開始嘀咕,這個問題,如果使用數(shù)字電路,特別是使用一個單片機(jī)就可以輕輕松松的搞定。的確這也反映出使用數(shù)字電路和模擬電路在對待同樣的問題上的迥然差別。
在模擬電子中,信號都是看做是在時間和幅值的連續(xù)變化的模擬量,對于信號處理的手段大多是進(jìn)行倍乘、積分、微分、比較整形等方法。另外,系統(tǒng)必須滿足因果關(guān)系。在此過程中,信號的幅值、頻譜寬度等會受到電子線路中器件的限制。
當(dāng)然,還有非常重要的一個方面就是方案會受到器件的非線性、溫度漂移、以及無處不在的干擾的影響。這就使得方案在精度、穩(wěn)定性參數(shù)變化范圍等方面受到影響。
那么改成數(shù)字電路,特別是使用MCU,DSP,F(xiàn)PGA等可編程器件,就會在改進(jìn)很多。
比如使用一款STC的單片機(jī)STC8G1K08,價格僅僅只有1.3塊人民幣,包括有眾多的電路外設(shè)。其中的模擬比較器可以將輸入正弦波變成方波,并進(jìn)一步測對應(yīng)的信號的周期。雖然它沒有DA輸出,但高速的PWM輸出功能通過濾波也可以形成所需要的信號。
使用數(shù)字器件完成同樣的信號轉(zhuǎn)換問題,是將信號分解成等時間間隔的脈沖信號(也就是對信號進(jìn)行采樣),為了能夠使用有限位數(shù)的數(shù)字表示這些采樣,還需要對信號的幅值進(jìn)行量化(離散化)。只要保證時間和幅值的離散化足夠小,就可以逼近模擬信號。
將輸入的參考正弦波送入到單片機(jī)的比較器管腳,內(nèi)部完成過零比較中斷,測量得到對應(yīng)正弦信號的半周期。然后在根據(jù)設(shè)定的三角波的占空比以及幅值,生成對應(yīng)三角波輸出DA轉(zhuǎn)換的數(shù)據(jù)。
通過定時器,按照一定速率(5kHz)將三角波的波形數(shù)據(jù)送到PWM定時器,外部在配合一個簡單的RC低通濾波器,便可以獲得對應(yīng)的二倍頻三角波形了。
在本文前面的的動圖就是這個單片機(jī)將輸入正弦波信號進(jìn)行轉(zhuǎn)換后的波形。 該方案中,三角波信號的頻率、占空比、幅值之間的調(diào)節(jié)就不在有任何耦合,可以獨立的進(jìn)行調(diào)節(jié)。
由于受到單片機(jī)本身RAM容量、CPU頻率、PWM分辨率的影響,這個方案對于信號轉(zhuǎn)換有一定的限制:
- 三角波的占空比從0~100%,分成100個等級進(jìn)行調(diào)節(jié);
- 三角波的幅值從0~255,分成256個等級進(jìn)行調(diào)節(jié);
- 三角波的頻率從5.6Hz~250Hz。
過低的頻率則需要內(nèi)部有更大的RAM來存儲輸出波形的數(shù)據(jù);更高的頻率則要求內(nèi)部PWM,CPU的頻率要更高才行。
比如,下圖顯示了三角波的頻率達(dá)到500Hz時,輸出波形中就包含了明顯變形失真。這是因為在一個周期內(nèi)之后十幾個采樣點輸出。
在現(xiàn)代的一些電子線路中,除了微弱信號、強(qiáng)功率信號、超高頻信號以及與人的感知交互的等場合,還需要模擬電路設(shè)計。越來越多的領(lǐng)域則逐步轉(zhuǎn)向數(shù)字可編程電子線路來完成對信號的處理。
當(dāng)然了,設(shè)計一個可以沿著黑線行進(jìn)的智能車,如果只允許使用模擬電路的方案,不允許使用MCU,你覺得可能嗎?
如果你想不到答案的話,也許下面這個黑板上的電路你可以仔細(xì)看一下了。這是只使用模擬器件就可以完成巡線機(jī)器人的電路。最后就只剩下一個問題,這種使用模擬電路搭建的自主巡線車模還能被稱為智能車嗎?
本文中所涉及到的STC單片機(jī)進(jìn)行信號轉(zhuǎn)換的硬軟件文件可以從以下鏈接下載:
- 實驗AD設(shè)計文件和C51程序 [3]
參考資料
[1]模擬課程中的問題: https://zhuoqing.blog.csdn.net/article/details/106240267
[2]信號轉(zhuǎn)換的解題思路: https://zhuoqing.blog.csdn.net/article/details/106293296
[3]實驗AD設(shè)計文件和C51程序: https://download.csdn.net/download/zhuoqingjoking97298/12453886
三聲嘆息
今天來嘆三聲氣。今年真是不尋常啊,卓老師。
去年從沒想過來年三月才能等出規(guī)則,三月的時候從沒想過春季回不到實驗室了。唉 ......
看著討論群里每天討論的人逐漸變少,看著眼前的軟硬件bug解決不了,看著手里還是沒跑起來的H車,唉 ........
想起比賽事項懸而未定,想起未來渺渺。唉 .......
真想感嘆一句時運(yùn)多艱?。〉?/span>是嘆氣以后,就又是新的一天吧,還是要好好干!卓老師忙了這么久也要多多注意休息哈!
▲ 2015年,智能車競賽秘書處成員去韓國漢陽大學(xué)Sunwoo教授參觀訪問,了解韓國全國大學(xué)生智能汽車競賽活動經(jīng)驗讓AI完敗傳統(tǒng)算法
報告卓大大,經(jīng)過我一段時間的調(diào)車實驗,從速度上來說,電磁AI組用神經(jīng)網(wǎng)絡(luò)確實有非常大的優(yōu)勢,我覺得如果模型表現(xiàn)得好,速度一定可以2m/s+的。但傳統(tǒng)的跑法在那么短的電感上速度0.5m/s拐彎就很抖了。
但神經(jīng)網(wǎng)絡(luò)的方法有一個大問題,我想其他車友應(yīng)該都能感受到,就是怎么采集數(shù)據(jù)、采集車有多偏離賽道的數(shù)據(jù)、以及各個姿態(tài)下數(shù)據(jù)的占比可能對模型訓(xùn)練好后最后的損失值幾乎沒有區(qū)別,但跑車的效果卻會差很多,如何把握這個卻相當(dāng)?shù)男W(xué),我只希望比賽的賽道不會太長(二十米已經(jīng)夠累死累活的推車了)。
另外賽制也要照顧到前面所說的情況,讓AI完敗傳統(tǒng)算法。
▲ 飛思卡爾杯亞洲大學(xué)生智能車大賽討論會自己的孩子
卓大大,今年的比賽真的能在8月份進(jìn)行嘛?
我剛剛問了我們學(xué)校的老師,我們學(xué)校現(xiàn)在還不允許我們返校,也不允許老師帶我們出去比賽,真的有點難呀!
現(xiàn)在有點迷茫,附上我一個多月前進(jìn)度的視頻,感覺有種自己養(yǎng)了多年的孩子,不能帶出去比賽的無奈。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!