一、實(shí)驗(yàn)?zāi)康暮鸵?/strong>
掌握脈寬調(diào)制調(diào)速的原理與方法,學(xué)習(xí)頻率/周期測量的方法,了解閉環(huán)控制的原理。
二、實(shí)驗(yàn)設(shè)備
單片機(jī)測控實(shí)驗(yàn)系統(tǒng)
直流電機(jī)調(diào)速實(shí)驗(yàn)?zāi)K
Keil開發(fā)環(huán)境
STC-ISP程序下載工具
三、實(shí)驗(yàn)內(nèi)容
1. 編寫程序,能夠在數(shù)碼管上顯示一個(gè)數(shù)值。
2. 固定向P1.1輸出0,然后測量每秒鐘電機(jī)轉(zhuǎn)動的轉(zhuǎn)數(shù),將其顯示在數(shù)碼管,每秒刷新一次即可。
3. 使用脈寬調(diào)制的方法,動態(tài)調(diào)整向P1.1輸出的內(nèi)容,使得電機(jī)轉(zhuǎn)速能夠穩(wěn)定在一個(gè)預(yù)定值附近,同時(shí)實(shí)時(shí)顯示當(dāng)前轉(zhuǎn)速。
4. 根據(jù)輸入修改電機(jī)轉(zhuǎn)速目標(biāo)值,設(shè)置兩個(gè)轉(zhuǎn)速目標(biāo)值:低轉(zhuǎn)速和高轉(zhuǎn)速。
5. 每隔一秒鐘讀取兩個(gè)開關(guān)的狀態(tài),如果S1按下,動態(tài)調(diào)整輸出,使得電機(jī)轉(zhuǎn)速能夠穩(wěn)定到低轉(zhuǎn)速目標(biāo)值附近,如果S2按下,動態(tài)調(diào)整輸出,使得電機(jī)轉(zhuǎn)速能夠穩(wěn)定到高轉(zhuǎn)速目標(biāo)值附近。交替顯示目標(biāo)值和當(dāng)前轉(zhuǎn)速值。
四、實(shí)驗(yàn)步驟
1. 建立工程,實(shí)現(xiàn)實(shí)驗(yàn)內(nèi)容1
參考輔助材料,學(xué)習(xí)8031匯編語言使用和直流電機(jī)原理。
2. 編寫中斷程序,測量電機(jī)轉(zhuǎn)速
本程序需要使用定時(shí)器定時(shí),并使用中斷來同步。中斷程序的典型例子如下:
ORG 0000H
LJMP START
ORG 000BH
LJMP T0IN ;中斷向量表
ORG 0040H
START: 。。.;初始化
。。.
T0IN: 。。.;中斷程序
。。.
RETI ;中斷返回
END
3. 完成控制轉(zhuǎn)速程序
按照脈寬調(diào)制的原理,再添加一個(gè)快速的定時(shí)中斷(0.1ms左右),在這個(gè)中斷里面動態(tài)改變P1.1的輸出,宏觀上輸出有效(0)的比例就是預(yù)定的控制變量。這個(gè)控制變量增大,電機(jī)轉(zhuǎn)速就應(yīng)該提高,但由于各種內(nèi)部和外部因素,它們之間不存在簡單的函數(shù)關(guān)系,因此必須根據(jù)測量出來的實(shí)際轉(zhuǎn)速進(jìn)行動態(tài)調(diào)整。
首先將電機(jī)轉(zhuǎn)速控制在一個(gè)預(yù)定數(shù)值附近,在每一個(gè)1秒鐘中斷測量出當(dāng)前轉(zhuǎn)速之后,將其與目標(biāo)值相對比,如果不夠則增加控制變量,否則減少之,這樣就能逐步達(dá)到穩(wěn)定轉(zhuǎn)速的目的。同時(shí)將速度顯示出來。
4. 完成整體實(shí)驗(yàn)內(nèi)容
在上面程序的基礎(chǔ)上,再加上根據(jù)開關(guān)狀態(tài)改變預(yù)定轉(zhuǎn)速的代碼。同時(shí),在主程序中交替顯示目標(biāo)值和當(dāng)前轉(zhuǎn)速值,顯示一個(gè)內(nèi)容之后等待一段時(shí)間(可以由延時(shí)代碼實(shí)現(xiàn)),然后再顯示另一個(gè)并延時(shí)。要顯示的內(nèi)容都是在中斷中被修改的。
五、實(shí)驗(yàn)原理
本實(shí)驗(yàn)示意電路原理圖(圖中的P1.3應(yīng)改為P1.1):
對于直流電機(jī)來說,其轉(zhuǎn)速由輸入電壓決定,因此具有平滑調(diào)速的效果;相比而言,交流電機(jī)的轉(zhuǎn)速由交流電頻率和電機(jī)結(jié)構(gòu)決定,難以改變速度。當(dāng)然,交流電機(jī)構(gòu)造簡單,沒有換向器,所以容易制造高轉(zhuǎn)速、高電壓、大電流、大容量的電機(jī);而直流電機(jī)一般用在負(fù)荷小,但要求轉(zhuǎn)速連續(xù)可調(diào)的場合,如伺服電機(jī)。
脈寬調(diào)制(Pulse Width Modulation,PWM)是一種能夠通過開關(guān)量輸出達(dá)到模擬量輸出效果的方法。使用PWM可以實(shí)現(xiàn)頻率調(diào)制、電壓調(diào)制等效果,并且需要的外圍器件較少,特別適合于單片機(jī)控制領(lǐng)域。這里只關(guān)心通過PWM實(shí)現(xiàn)電壓調(diào)制,從而控制直流電機(jī)轉(zhuǎn)速的效果。也稱作脈寬調(diào)制調(diào)速。
PWM的基本原理是通過輸出一個(gè)很高頻率的0/1信號,其中1的比例為δ(也叫做占空比),在外圍積分元件的作用下,使得總的效果相當(dāng)于輸出δ×A(A為高電平電壓)的電壓。通過改變占空比就可以調(diào)整輸出電壓,從而達(dá)到模擬輸出并控制電機(jī)轉(zhuǎn)速的效果。
使用單片機(jī)實(shí)現(xiàn)PWM,就是根據(jù)預(yù)定的占空比δ來輸出0和1,這里δ就是控制變量。最簡單的辦法就是以某個(gè)時(shí)間單位(如0.1ms,相當(dāng)于10kHz)為基準(zhǔn),在前N段輸出1,后M-N段輸出0,總體的占空比就是N/M。這種方法由于0和1分布不均勻,所以要求基準(zhǔn)頻率要足夠高,否則會出現(xiàn)顛簸現(xiàn)象。
要達(dá)到更穩(wěn)定的效果,可以采用累加進(jìn)位法如果將總的周期內(nèi)的0和1均勻分散開。設(shè)置一個(gè)累加變量x,每次加N,若結(jié)果大于M,則輸出1,并減去M;否則輸出0。這樣整體的占空比也是N/M。在實(shí)驗(yàn)中取M=256可以使程序更加簡單。
另外,由于本實(shí)驗(yàn)板的設(shè)計(jì),輸出0使電機(jī)工作。因此對于本實(shí)驗(yàn),上面所說的0和1要翻轉(zhuǎn)過來用。
在本實(shí)驗(yàn)板中,電機(jī)每轉(zhuǎn)動一次,與之相連的偏心輪將遮擋光電對管一次,因此會產(chǎn)生一個(gè)脈沖,送到INT0。要測量轉(zhuǎn)速,既可以測量相鄰兩次中斷之間的時(shí)間;也可以測量一秒種之內(nèi)發(fā)生的中斷次數(shù)。顯然,后一種方法更加簡單。
進(jìn)行轉(zhuǎn)速控制時(shí),涉及到三個(gè)變量:預(yù)期轉(zhuǎn)速,實(shí)際轉(zhuǎn)速和控制變量。這里控制變量就是占空比。我們并不能夠預(yù)先精確知道某個(gè)控制變量的值會導(dǎo)致多少的實(shí)際轉(zhuǎn)速,因?yàn)檫@里有很多內(nèi)部和外部因素起作用(如摩擦力,慣性等),但可以確定就是隨著控制變量的增加,實(shí)際轉(zhuǎn)速會增加。
反饋控制的基本原理就是根據(jù)實(shí)際結(jié)果與預(yù)期結(jié)果之間的差值,來調(diào)節(jié)控制變量的值。當(dāng)實(shí)際轉(zhuǎn)速高于預(yù)期轉(zhuǎn)速時(shí),我們需要減少控制變量,以降低速度;反之則需要調(diào)高控制變量。
本實(shí)驗(yàn)的轉(zhuǎn)速控制可以使用簡單的比例控制算法,也就是當(dāng)轉(zhuǎn)速S大于預(yù)定值時(shí),將輸出0的個(gè)數(shù)減少;當(dāng)轉(zhuǎn)速小于預(yù)定值時(shí),將輸出0的個(gè)數(shù)增加。改變值正比于測量出的差值。也可自行使用其他更加復(fù)雜的算法。
實(shí)驗(yàn)中采用的電機(jī)最大轉(zhuǎn)速在200轉(zhuǎn)/s左右,轉(zhuǎn)速小于40轉(zhuǎn)/s左右將不穩(wěn)定,可能會停轉(zhuǎn)。
六、一點(diǎn)想法
在本次實(shí)驗(yàn)中,PWM脈寬調(diào)制是通過改變低電平(0,存在61H中)和高電平(1,存在60H中)的輸入比例實(shí)現(xiàn)的。初始時(shí),高低電平均為100次(可以隨便設(shè)置,高低電平次數(shù)也可以不同),比例為1:1。當(dāng)當(dāng)前轉(zhuǎn)速低于目標(biāo)轉(zhuǎn)速時(shí),增加低電平輸入次數(shù),減少高電平輸入次數(shù)(兩者總和不變,還是200次),增加了低電平的占空比,轉(zhuǎn)速提高。當(dāng)當(dāng)前轉(zhuǎn)速高于目標(biāo)轉(zhuǎn)速時(shí),減少低電平輸入次數(shù),增加高電平輸入次數(shù)(兩者總和不變,還是200次),降低了低電平的占空比,轉(zhuǎn)速降低。
60H+61H的和(高低電平輸入總和)影響轉(zhuǎn)速調(diào)整精度和速度,值越大,精度越高(擺動越小),轉(zhuǎn)速調(diào)整越慢;相反,值越小,轉(zhuǎn)速調(diào)整越快,但精度越低(擺動越大)。
轉(zhuǎn)速調(diào)整的速度和精度還可以通過每次轉(zhuǎn)速調(diào)整時(shí),60H(高電平輸入次數(shù))和61H(低電平輸入次數(shù))調(diào)整的幅度來調(diào)控。幅度越大,轉(zhuǎn)速調(diào)整越快,但精度越低,幅度越小,精度越高,轉(zhuǎn)速調(diào)整越慢。
60H和61H中的數(shù)可以隨便(為正即可)取,但在整個(gè)過程中,61H+60H的值一定為一個(gè)定值,這樣才能確定改變的是占空比。
-
單片機(jī)
+關(guān)注
關(guān)注
6061文章
44861瀏覽量
645927 -
直流電機(jī)
+關(guān)注
關(guān)注
36文章
1722瀏覽量
71313 -
PWM
+關(guān)注
關(guān)注
116文章
5339瀏覽量
217770 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3283瀏覽量
117012
發(fā)布評論請先 登錄
基于51單片機(jī)的溫濕度檢測與調(diào)節(jié)系統(tǒng)電路圖
基于STM32單片機(jī)的智能燈電路圖設(shè)計(jì)
使用單片機(jī)實(shí)現(xiàn)直流電機(jī)的PWM調(diào)速控制原理圖
單片機(jī)電路圖用什么軟件畫
基于51單片機(jī)無線溫度傳輸控制設(shè)計(jì)
基于STM32單片機(jī)的智能冰箱控制系統(tǒng)設(shè)計(jì)

評論