freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于mcu的通用控制器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文-資料下載頁

2025-02-26 10:01本頁面
  

【正文】 在設(shè)計(jì)過程中都有所涉及,在我看來,庫函數(shù)中幾乎涵蓋了 STM32 所有的應(yīng)用,是很適合初學(xué)者上手 STM32 的,你不需要對底層的運(yùn)作模式了解太多,因?yàn)楣俜浇o定的庫函數(shù)基本涵蓋了STM32 所有的功能,初學(xué)者需要做的僅僅只是學(xué)會(huì)如何調(diào)用和搭配。但寄存器操作則比較簡潔,但 易學(xué)難懂,要想直接使用寄存器編程就需要對 STM32 有相當(dāng)?shù)牧私猓駝t你就經(jīng)常會(huì)出一些莫名其妙的錯(cuò)誤。基于上述原因,我雖然是用庫函數(shù)編寫的程序,但在分析程序時(shí),我將直接從寄存器層面說明。 30 30 系 統(tǒng) 時(shí) 鐘定 時(shí) 器 , 串 口初 始 化T I M 4 計(jì) 數(shù) 模 式定 時(shí) 1 秒T I M 3 編 碼 器 模 式記 輸 入 脈 沖 數(shù)串 口 是 否輸 入 速 度Y字 符 轉(zhuǎn) 化 函 數(shù)得 到 輸 入 速 度溢 出 中 斷中 斷 服 務(wù) 函 數(shù)中 斷 服 務(wù) 函 數(shù)溢 出 中 斷清 除 中 斷 標(biāo)志 位清 除 中 斷 標(biāo)志 位N占 空 比 值 賦 給T I M C C R 2控 制 算 法T I M 2 P W M 模 式串 口 顯 示 轉(zhuǎn) 速 ,方 向 等 信 息W h i l e ( 1 )循 環(huán) 圖 37 主程序流程簡圖 生成子程序 定 時(shí) 器 T I M 2初 始 化對 T I M 2 C C R 2賦 值循環(huán)P A 1 輸 出P W M控 制 算 法 圖 38 PWM 程序流程圖 由于 STM32 的高級或是通用定時(shí)器均有 PWM 模式,能直接生成 PWM,我們只需要對相關(guān)的寄存器進(jìn)行操作即可得到想要的 PWM。還有一點(diǎn)需要注意, STM32 的功耗是很低的,之所以低功耗是因?yàn)樵谝话銧顟B(tài)下, STM32 的外設(shè)是關(guān)閉的,所以在編程時(shí),不管是 I/O 口還是其他部 31 31 分,都必須首先進(jìn)行時(shí)鐘使能。 定時(shí)器 TIM2 生成 PWM 的初始化函數(shù) PWM_Init(u16 arr,u16 psc),其中參數(shù) psc 的作用是使得計(jì)數(shù)器的時(shí)鐘頻率 hz72,),1/( ___ MfP S Cff P S CCKP S CCKC N TCK 本次設(shè)計(jì)中為為分頻器時(shí)鐘輸入?? 參數(shù) arr 的作用是獲得 PWM 的頻率 )1/(_ ?? arrff C NTCKpw m [17] 初始化后,決定 PWM 占空比的寄存器則是 16 位的捕獲 /比較寄存器 22 CCRTIM ?? , 可對其直接賦值,得到的占空比為 )1/(22 ???? a rrC C RT IM? 。 串口模塊 — 速度給定與速度顯示 串 口 初 始 化是 否 有 輸 入字 符 轉(zhuǎn) 化YN得 到 給 定 速 度P r i n t f 函 數(shù)顯 示 速 度 等信 息其 他 處 理循 環(huán) 圖 39 速度給定流程圖 本次設(shè)計(jì)采用的是串口通信,可以通過串口助手來輸入速度與顯示速度,在串口初始化后,在通過判斷寄存器 USART1SR 第 5 位是否為 1,可知數(shù)據(jù)是否就緒,若為 1,將通過串口輸入的字符會(huì)儲(chǔ)存在我們定義的向量 code1[] ,字符的長度則用 len 讀取,再調(diào)用函數(shù)code1_dutycycle(u16 dutycycle,u16 code1[],u8 len),將 code[t]中 ASCII 碼的數(shù)字字符轉(zhuǎn)化為十進(jìn)制數(shù)字,記為輸入轉(zhuǎn)速。 至于速度顯示則相對簡單,直接調(diào)用 Printf(),就可在串口顯示當(dāng) 前的速度,但要注意的是,Printf()在輸出時(shí)需要占用大量的時(shí)間,需要在后面加上 delay_ms()延時(shí)函數(shù),一個(gè) Printf()需要 100ms 才能保證顯示的準(zhǔn)確性,若用 LCD 則無此顧忌,這是一個(gè)需要進(jìn)一步改進(jìn)的地方。 32 32 速度測定與方向判斷子程序 定 時(shí) 器 T I M 3 ,T I M 4 初 始 化T I M 4 定 時(shí) 1 秒T I M 3 編 碼 器 模 式開 始 計(jì) 脈 沖 數(shù)中 斷 服 務(wù) 函 數(shù)計(jì) 算 正 反 轉(zhuǎn) 轉(zhuǎn) 速中 斷 服 務(wù) 函 數(shù)設(shè) 置 正 反 轉(zhuǎn) 標(biāo) 志 位正 反 轉(zhuǎn) 圈 數(shù) 增 減計(jì) 數(shù) 脈 沖 數(shù)正 反 轉(zhuǎn) 標(biāo) 志 位正 反 轉(zhuǎn) 圈 數(shù)溢 出 中 斷溢 出 中 斷清 除 中 斷標(biāo) 志 位清 除 中 斷標(biāo) 志 位 圖 310 速度測定與方向判斷子流程圖 首先是編碼器模式初始化函數(shù) SetTIM3EncoderMode,不作預(yù)分頻,即寄存器 TIM3PSC=0,將寄存器 TIM3ARR 設(shè)置為光電編碼器每圈 脈沖數(shù),由于是 AB 相同時(shí)輸入的 4X 模式,故每圈脈沖數(shù)為 64, TIM3ARR=641=63。這樣設(shè)定后,編碼器每轉(zhuǎn)一圈, TIM3 都將產(chǎn)生一次中斷,在中斷服務(wù)函數(shù)中,設(shè)置根據(jù)寄存器 TIM3CR1 方向位第 4 位 DIR,來設(shè)置電機(jī)正反向標(biāo)志位flag,分別對正反向圈數(shù)計(jì)數(shù)的變量增減。 定 時(shí) 器 TIM4 設(shè) 置 為 向 上 計(jì) 數(shù) 模 式 , 通 過 設(shè) 置 TIM4PSC=7199, 則 計(jì) 數(shù) 頻 率K h zM h zP S Cff P S CCKC N TCK 10)17199/(72)1/(__ ????? 再設(shè)置 TIM4ARR=10000,可知 TIM4 計(jì)數(shù)到 10000 則溢出,即每 1s 產(chǎn)生一次中斷,在 TIM4的中斷服務(wù)函數(shù)中,根據(jù)電機(jī)正反轉(zhuǎn)標(biāo)志位,由公式( )求得轉(zhuǎn)速。 PID 算法模塊 本次設(shè)計(jì)僅有轉(zhuǎn)速反饋,是單閉環(huán)控制,程序中加入了位置式式 PID 算法。 ? ? ? ?)2()1()2()()()1()2()1(2)()()1()()1()()1()(?????????????????????????keKkeKKkeKKKkukekekeKkeKkekeKkukukukuDDpDIpDIp 而對應(yīng)的 PIDcontrol 函數(shù)中的算法是 210 cebeaec lep a s td u ty c yd u ty c y c le ???? DIP KKKa ??? , DP KKb 2?? , DKc? 這次設(shè)計(jì)的 PID 算法,輸入是電機(jī)的轉(zhuǎn)速,輸出卻是占空比值,那么如能找到占空比與電機(jī)轉(zhuǎn)數(shù)的函數(shù)關(guān)系,將能極大地方便我們整定 PID 的參數(shù),所以我在 PID 算法中,預(yù)先根據(jù)實(shí)測值 33 33 擬合出來的占空比與轉(zhuǎn)速的函數(shù)關(guān)系,將轉(zhuǎn)速轉(zhuǎn)換為了占空比,然后進(jìn)行 PID 運(yùn)算從而直接得到占空比,但這種方法有很大的局限性。 我還整定了另一種,輸入為速度,輸出為 PWM 值,即 TIM2CCR2 的值。 計(jì) 算 e0計(jì) 算 pwmval更 新 e1,e2pastpwmval返 回 主 函 數(shù)調(diào) 用 PID 算 法 函 數(shù) 圖 311PID 算法流程圖 34 34 第四章 :實(shí)踐檢驗(yàn)篇 實(shí)物連接圖 圖 41 電機(jī)控制實(shí)物圖 用 MATLAB 曲線擬合方法確定占空比與空載電機(jī)轉(zhuǎn)速的關(guān)系 編寫一個(gè)串口直接輸入占空比的函數(shù),檢測不同占空比下的轉(zhuǎn)速值,得到表 數(shù)據(jù),在MATLAB 繪得圖 41 表 不同占空比下測得的電機(jī)轉(zhuǎn)速 占 空 比( %) 55 60 65 70 75 80 85 90 95 100 轉(zhuǎn)速( R/MIN) 860 1330 2040 3045 4164 5250 6480 7570 8840 9630 35 35 圖 42 表 數(shù)據(jù)在 MATLAB 繪制的 XY 坐標(biāo)圖 用 MATLAB 的 CFTOOL 工具箱進(jìn)行擬合 [18]分別采用線性擬合與多項(xiàng)式擬合 圖 43 線性擬合曲線 36 36 Linear model Poly1: f(x) = p1*x + p2 Coefficients (with 95% confidence bounds): p1 = (, ) p2 = (, ) Goodness of fit: SSE: Rsquare: Adjusted Rsquare: RMSE: 其中: SSE: 誤差平方和 ; RSquare: 復(fù)相關(guān)系數(shù)或復(fù)測定系數(shù) ; Adjusted RSquare: 調(diào)整自由度復(fù)相關(guān)系數(shù) ; Root mearn squared error(RMSE): 均方根誤差 圖 44 多項(xiàng)式擬合曲線 Linear model Poly3: f(x) = p1*x^3 + p2*x^2 + p3*x + p4 Coefficients (with 95% confidence bounds): p1 = (, ) p2 = (, ) p3 = (, ) 37 37 p4 = (, ) Goodness of fit: SSE: Rsquare: Adjusted Rsquare: RMSE: 對比兩次擬合的擬合度可知,三次多項(xiàng)式的擬合曲線更加逼近于真實(shí)的數(shù)據(jù),但顯然,對于本次設(shè)計(jì),只需要用線性擬合的函數(shù)就可以得到較好的擬合度,所以占空比與轉(zhuǎn)速的函數(shù)關(guān)系設(shè)定為 為電機(jī)轉(zhuǎn)速占空比 XXY , 0 4 7 9 ?? ( ) 簡單閉環(huán)控制試驗(yàn) 利用之前得到的占空比與轉(zhuǎn)速的關(guān)系,設(shè)計(jì)不含 PID 算法的簡單閉環(huán)控制,進(jìn)行試驗(yàn)。 簡單閉環(huán)控制的設(shè)計(jì)思想:利用串口直接輸入轉(zhuǎn)速,利用公式( ),將其轉(zhuǎn)化為占 空比值,將該占空比值轉(zhuǎn)換為 PWM 信號傳給電機(jī),不斷檢測電機(jī)轉(zhuǎn)速,若電機(jī)轉(zhuǎn)速低于給定速度,則占空比加 1,若電機(jī)轉(zhuǎn)速大于給定速度,則占空比減 1。 第一步:通過串口給定電機(jī)轉(zhuǎn)速 3000,串口立刻給出由擬合函數(shù)計(jì)算出來的占空比 68,接著進(jìn)一步進(jìn)行調(diào)節(jié)。 圖 45 輸入轉(zhuǎn)速時(shí)串口助手的顯示圖 38 38 第二步: 10s 后,電機(jī)基本穩(wěn)定下來,這時(shí)的轉(zhuǎn)速如下圖 圖 46 穩(wěn)定時(shí)串口助手的顯示圖 不難計(jì)算出控制的穩(wěn)態(tài)誤差為 %3000 30002709)( ????ce,誤差較大。 當(dāng)然若想 進(jìn)一步得到更高精度的控制,可以從兩個(gè)方面著手: ,提高程序的運(yùn)行速度; 2 定時(shí)器 TIM4 測轉(zhuǎn)速的時(shí)間可以進(jìn)一步減少,比如說 測一次轉(zhuǎn)速,這樣一來速度的實(shí)時(shí)性就能進(jìn)一步提高; 3 還可以修改每次占空比增減的步長,比如說占空比每次增減 1,變?yōu)槊看卧鰷p ,是的控制更精確,但是這樣一來意味著每次達(dá)到穩(wěn)態(tài)的時(shí)間會(huì)增加。 第一次 PID 算法試驗(yàn) 借用公式( ),將每次得到的速度信號轉(zhuǎn)換為占空比信號,再進(jìn)行 PID 控制,這樣可大大降低 PID 參數(shù)整定的難度。 這次 PID 參數(shù)整定用的是試湊法,因?yàn)榭刂?電機(jī)不允許出現(xiàn)震蕩的,前面理論部分的臨界比例度法就不能用了,直接采用湊試法。 在進(jìn)行過一番 PID 參數(shù)試驗(yàn)后,在進(jìn)行多組試驗(yàn)后,我發(fā)現(xiàn) PI 控制就可以對電機(jī)進(jìn)行很好地控制,加入微分環(huán)節(jié) KD 反而容易引起震蕩,在 KP=, KD=0 的前提下,對不同值的 KI,設(shè)定同樣的期望轉(zhuǎn)速 3000R/min 時(shí),系統(tǒng)的響應(yīng)曲線見圖 46。 39 39 圖 47 不同 KI 值對應(yīng)的速度曲線 由上圖分析可得,較理想的 PID 參數(shù)是 KP=, KI=,因?yàn)樗粌H超調(diào)量小,調(diào)整時(shí)間小,穩(wěn)態(tài)誤差也小。 但是當(dāng)預(yù)期轉(zhuǎn)速設(shè)置為 3500R/min 是,在 3000R/min 下較理想的 PID 參數(shù) KP=, KI=,KD=0 的系統(tǒng)響應(yīng)超調(diào)量過大,系統(tǒng)近乎不穩(wěn)定,在又一番調(diào)試后我發(fā)現(xiàn) KP=, KI=, KD=0能滿足要求,不過超調(diào)量也很大大,約為 40%,但系統(tǒng)能穩(wěn)定下來,這說明,對同一個(gè)控制對象電機(jī),不同的期望轉(zhuǎn)速所需要的 PID 參數(shù)也是不同的,這要求 PID 控制器使用更為先進(jìn)的算法,比如說模糊控制和自適應(yīng)整定等等 [19]。 第二次 PID 算法試驗(yàn) 前面雖然借助了占空比與轉(zhuǎn)速的關(guān)系導(dǎo)致 PID 參數(shù)整定難度大大降低,但當(dāng)電機(jī)受載或者說受載變化時(shí) ,這一絕對的公式就失去了意義,甚至反過來影響控制的精度,因而,要想電機(jī)的控制具有通用性,就不能用到這樣的公式。但這公式的價(jià)值不容否認(rèn),在其適用條件下, PID 參數(shù)轉(zhuǎn)速 n 時(shí)間 T 40 40 整定是很方便的。在不借助這個(gè)公式的情況下時(shí),我進(jìn)行了多番試湊,得到了一組較好的 PID 參數(shù) KP=, KI=, KD=0,同樣設(shè)定轉(zhuǎn)速為 3000R/min,,得到電機(jī)速度曲線圖 48。 圖 48 KP=, KI= 的速度曲線 對電機(jī)進(jìn)行分步調(diào)速,設(shè)定轉(zhuǎn)速從 2021, 2500, 3000, 3500。速度曲
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1