標題: 基于quartus的直流電機控制實驗 含源代碼、電路圖、仿真波形圖 [打印本頁]
作者: moshangxiaorong 時間: 2020-6-5 15:05
標題: 基于quartus的直流電機控制實驗 含源代碼、電路圖、仿真波形圖
這是我們電路測試的直流電機學習作品,軟件是quartus,用了我一個禮拜的時間,附件里是源程序、波形圖、電路圖,分享給大家,希望對大家學習有一些幫助。
直流電機實驗
一、實驗目的
1、學習直流電機的工作原理和控制方式,了解PWM控制原理
2、熟悉QuartusⅡ軟件的相關操作,掌握數字電路設計的基本流程;
3、掌握混合編輯法進行編輯的基本方法,熟悉軟件環境的參數配置,仿真,管腳分配,下載等基本操作。
二、實驗原理
1.直流電機:
①定義輸出或輸入為直流電能的旋轉電機,稱為直流電機,它是能實現直流電能和機械能互相轉換的電機。當它作電動機運行時是直流電動機,將電能轉換為機械能;作發電機運行時是直流發電機,將機械能轉換為電能。
②直流電機的兩根控制引腳A和B,電流流入的大小決定了電機的轉速。當用脈沖波輸入時,周期恒定時,占空比大的平均電流就大,平均電流越大,轉速越高,等效于占空比越大,轉速越高,所以可以用PWM(Pulse Width Modulation)方式來控制轉速;通過脈沖波輸入的引腳來控制方向。
③本實驗中采用RF-310T-11400型號直流電機,同時配有光耦測速模塊。通過檢測輸出脈沖來檢測電機轉速。
2.設計原理框圖:
3.混合編輯法步驟:
(1)建立新工程
a)指定新工程名稱;
b)選擇需要加入的文件和庫;
c)選擇目標器件;
d)選擇第三方EDA工具;
e)結束設置。
(2)建立文件 File→New→Device Design Files…,建立多個VHDL文本文件。
(3)輸入程序代碼
(4)創建圖元 File→Create/update→Create Symbol File for Current File→生成*.bsf格式的圖形文件。生成的圖元符號在頂成設計中作為模塊使用。
(5)建立原理圖文件并添加圖元符號
(6)連接各模塊并命名
(7)編譯工程
(8)仿真
a) 系統默認為時序仿真。
b) 功能仿真 Assignment→Setting→Simulator Setting…,單擊Processing→Generate Functional simulation Netlist→單擊波形仿真按鈕;
仿真結果正確后,繼續后續步驟。
(9)引腳分配 Assignment→Pins…
(10)下載驗證
a)對引腳分配后必須再重新編譯;
b)配置下載電纜--Tools→Programmer…;
c)JTAG模式下載--下載文件為 *.sof;d)Active Serial 模式下載--下載文件為 *.pof;
三、實驗設備
1、微機 1臺
2、直流電機 1臺
3、Windows 操作系統
4、QuartusII 8.0或9.0應用軟件
四、實驗步驟
1、按照實驗準備將相應的跳線連接好,調節撥碼開關選擇對應的模塊;
2、打開QuartusⅡ軟件,采用混合編輯法編輯直流電機的電路圖和程序:新建一個工程,找到本次實驗每個模塊的源程序,并將每個模塊編譯成圖元符號文件,該圖元符號可以在頂層原理圖文件中作為模塊使用;新建一個頂層原理圖文件,在其中將原理圖輸入,即添加各個模塊的圖元符號并連接各個模塊;編譯工程;仿真;將程序下載到實驗平臺上。
3、將en置高(SW4撥上),LED8亮表示可以調速,將start置高(SW1撥上)電機開始工作,調動direct(SW2)控制電機轉動方向,按F1鍵加快電機轉速,當達到最高速時,LED1指示燈亮,按F2鍵電機減速,當達到最小時,LED3指示燈亮;在調節轉速時,觀察數碼管上顯示的電機轉速,表示每秒多少轉,即rps。
注意:由于電機的驅動電流原因,在剛開始的增速過程中,要增加到一定程度時,輸出相應的電流才能驅動電機。即按鍵F1起初按下的幾次,電機會沒有反映,多按幾次就好了。
五、實驗內容
1. 用VHDL語言設計一個直流電機控制器,要求方向可控(可正轉、反轉),速度可控制加速和減速,并可測速,用數碼管顯示當前轉速
2. 用QuartusⅡ軟件進行編譯、下載到實驗平臺上進行驗證。
(1) 仿真電路:
(2) 操作步驟
① 建立VHDL文本文件,輸入各個模塊的代碼;
1) 分頻模塊(div):
2) 比較模塊(cmp):
3) 測速模塊(rate):
4) 方向控制模塊(mux1)
5) 調速模塊(cnt16
6) 標準階梯波產生器(cnt16_bz)
7) 按鍵檢測模塊(key_check
8) 顯示模塊(xianshi)
② 創建圖元文件:
1) 分頻模塊(div):
2) 比較模塊(cmp):
3) 測速模塊(rate):
4) 方向控制模塊(mux1):
5) 調速模塊(cnt16)
6) 標準階梯波產生器(cnt16_bz)
7) 按鍵檢測模塊(key_check)
8) 顯示模塊(xianshi)
③ 建立原理圖文件并添加圖元符號:
連接后的原理圖如圖所示:
④ 建立波形圖文件:
如圖,時鐘信號clk為50MHz,
oc_pulse信號為50MHz;
反相信號direct周期為480ns;
start信號置為高電平;
en置為高電平;
加速、減速信號speed_up、speed_down都為周期為30ns的時鐘信號,且不同時起效。
⑤ 仿真結果:
如圖,仿真方式為功能仿真
④結果分析
1) 從波形圖中可以看出,當方向控制信號direct改變時,電機信號立即從motorA變為motorB,即實現了正轉和反轉的切換,方向可控。
2) 從波形圖中可以看出,當減速信號speed_down置高,加速信號speed_up為時鐘信號時,電機加速,即電機的占空比逐漸增大;當加速信號speed_up置高,減速信號speed_down為時鐘信號時,電機減速,即電機的占空比逐漸減小,即實現了速度可控制。
3) 從data[2..0]的波形可以看出,可以實現測速,將實時速度顯示出來;
4) 從數碼管a-g的波形可以看出,顯示器可以將當前轉速通過數碼管顯示出來;
5) 當電機速度減至最小時,speed_min為低電平,速度增到最大時,speed_max為低電平,說明可以正常顯示速度為最大、最小時的情況
六、總結和問題討論
1. 調試方法:可以先將每個模塊分別運行,通過輸入模擬信號仿真使其保證實現正常功能后再連接成完整電路,可以提前得知需要修改和調試的模塊
2. 體會和建議:只有仔細思考代碼之后的邏輯才能更好地理解實驗、做好實驗。
-
16.png
(82.91 KB, 下載次數: 169)
下載附件
2020-6-5 15:01 上傳
-
15.png
(81.9 KB, 下載次數: 147)
下載附件
2020-6-5 15:01 上傳
-
14.png
(86.38 KB, 下載次數: 153)
下載附件
2020-6-5 15:00 上傳
-
13.png
(4.25 MB, 下載次數: 155)
下載附件
2020-6-5 15:00 上傳
-
7.png
(120.95 KB, 下載次數: 148)
下載附件
2020-6-5 14:59 上傳
-
4.png
(1.66 MB, 下載次數: 164)
下載附件
2020-6-5 14:58 上傳
-
3.png
(4.8 MB, 下載次數: 171)
下載附件
2020-6-5 14:58 上傳
-
2.png
(944.52 KB, 下載次數: 158)
下載附件
2020-6-5 14:57 上傳
-
1.png
(2.43 MB, 下載次數: 146)
下載附件
2020-6-5 14:57 上傳
-
-
wendukonzhi.zip
2020-6-5 15:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.72 MB, 下載次數: 62, 下載積分: 黑幣 -5
作者: 51hei團團 時間: 2020-6-6 01:45
好資料,51黑有你更精彩!!!
作者: 1163891123 時間: 2021-7-1 20:23
好資料,51黑有你更精彩!!!







作者: 鐫熱 時間: 2021-12-11 19:12
樓主用的什么開發版呀
作者: jiangyan111 時間: 2024-1-29 14:13
這個看是寫的不錯o,就是很老的版本了,現在都用到18,可想而知當年寫代碼的這個人功底多深, 那個時代就玩電機了,現在應該是個大佬了吧
作者: 13987 時間: 2025-9-8 17:51
謝謝分享
| 歡迎光臨 (http://www.denmoz.com/bbs/) |
Powered by Discuz! X3.1 |