這是我們電路測試的直流電機學習作品,軟件是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. 體會和建議:只有仔細思考代碼之后的邏輯才能更好地理解實驗、做好實驗。
|