計算機控制系統課程設計-直流伺服電機控制系統-精品_第1頁
計算機控制系統課程設計-直流伺服電機控制系統-精品_第2頁
計算機控制系統課程設計-直流伺服電機控制系統-精品_第3頁
計算機控制系統課程設計-直流伺服電機控制系統-精品_第4頁
計算機控制系統課程設計-直流伺服電機控制系統-精品_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、直流伺服電機控制系統目錄 TOC o 1-3 h z u HYPERLINK l _Toc406085629 1引言 PAGEREF _Toc406085629 h 3 HYPERLINK l _Toc406085630 2單片機控制系統硬件組成 PAGEREF _Toc406085630 h 3 HYPERLINK l _Toc406085631 2.1微控制器 PAGEREF _Toc406085631 h 3 HYPERLINK l _Toc406085632 2.2電機驅動芯片 PAGEREF _Toc406085632 h 4 HYPERLINK l _Toc406085633 2.

2、3按鍵輸入和顯示模塊 PAGEREF _Toc406085633 h 5 HYPERLINK l _Toc406085634 2.3.1按鍵輸入 PAGEREF _Toc406085634 h 5 HYPERLINK l _Toc406085635 2.3.2顯示模塊 PAGEREF _Toc406085635 h 5 HYPERLINK l _Toc406085636 2.4直流伺服電動機 PAGEREF _Toc406085636 h 5 HYPERLINK l _Toc406085637 3.單片機控制系統軟件設計 PAGEREF _Toc406085637 h 5 HYPERLINK

3、l _Toc406085638 3.1主程序 PAGEREF _Toc406085638 h 6 HYPERLINK l _Toc406085639 3.2鍵盤處理子程序 PAGEREF _Toc406085639 h 7 HYPERLINK l _Toc406085640 4.控制系統原理圖及仿真 PAGEREF _Toc406085640 h 7 HYPERLINK l _Toc406085641 4.1控制系統方框圖 PAGEREF _Toc406085641 h 7 HYPERLINK l _Toc406085642 4.2控制系統電路原理圖 PAGEREF _Toc406085642

4、 h 8 HYPERLINK l _Toc406085643 5.Simulink組件對直流伺服控制系統的仿真 PAGEREF _Toc406085643 h 8 HYPERLINK l _Toc406085644 5.1直流伺服電機數學模型 PAGEREF _Toc406085644 h 8 HYPERLINK l _Toc406085645 5.2系統Simulink模型及時域特性仿真 PAGEREF _Toc406085645 h 9 HYPERLINK l _Toc406085646 5.2.1 Simulink建模及仿真 PAGEREF _Toc406085646 h 9 HYPER

5、LINK l _Toc406085647 5.2.2單位負反饋系統Simulink建模及仿真 PAGEREF _Toc406085647 h 10 HYPERLINK l _Toc406085648 5.3 PID校正 PAGEREF _Toc406085648 h 11 HYPERLINK l _Toc406085649 5.3.1 PID參數的湊試法確定 PAGEREF _Toc406085649 h 11 HYPERLINK l _Toc406085650 5.3.2比例控制器校正 PAGEREF _Toc406085650 h 12 HYPERLINK l _Toc406085651

6、5.3.3比例積分控制器校正 PAGEREF _Toc406085651 h 14 HYPERLINK l _Toc406085652 5.3.4 PID控制器校正 PAGEREF _Toc406085652 h 16 HYPERLINK l _Toc406085653 5小結 PAGEREF _Toc406085653 h 19 HYPERLINK l _Toc406085654 引用文獻 PAGEREF _Toc406085654 h 191引言本設計的直流伺服電機控制系統是一個隨動控制系統。以STM32核心板為控制器,通過按鍵將設定值輸入到單片機,采用超聲波傳感器采集小車前方物體的距離,

7、單片機對設定值與測量距離求差后輸出控制信號,雙BTN7971大電流H橋驅動伺服電機工作,進而控制電機向著減小差值的方向轉動。同時單片機處理的數字信號通過LCD來顯示,實時顯示超聲波傳感器的測量值。另外本設計還利用了MATLAB軟件,利用Simulink構造直流電機控制系統模型,通過對各個單元部件的參數進行設定,進而對直流伺服電機系統控制進行仿真,就其仿真結果對系統進行時域分析。2單片機控制系統硬件組成本系統是由一片單片機、矩陣式鍵盤、超聲波模塊HC-SR04、顯示模塊和一輛帶有直流伺服電機的車模組成,另外通過Altinum Designer軟件進行電路設計。2.1微控制器STM32系列基于專為

8、要求高性能、低成本、低功耗的嵌入式應用專門設計的ARMCortex-M3內核。按性能分成兩個不同的系列:STM32F103“增強型”系列和STM32F101“基本型”系列。增強型系列時鐘頻率達到72MHz,是同類產品中性能最高的產品;基本型時鐘頻率為36MHz,以16位產品的價格得到比16位產品大幅提升的性能,是16位產品用戶的最佳選擇。兩個系列都內置32K到128K的閃存,不同的是SRAM的最大容量和外設接口的組合。時鐘頻率72MHz時,從閃存執行代碼,STM32功耗36mA,是32位市場上功耗最低的產品。以下是STM32系列的內部結構圖:2.2電機驅動芯片模塊上的EN端為H橋的使能端,需要

9、外接5V電壓,EN不可懸空,當EN都為高電平時電機驅動模塊開始工作,EN端為低電平時,電機驅動停止工作。2.3按鍵輸入和顯示模塊2.3.1按鍵輸入采用自己設計的形如44矩陣式按鍵,按鍵用于設定某一數值。通過程序設置延時環節來消除按鈕的抖動問題,這樣做使矩陣式按鈕硬件連線簡單,同時按鈕的軟件設計也變的簡單。2.3.2顯示模塊系統采用傳統點陣式1602顯示器,顯示傳感器的測量值以及鍵盤的輸入設定值。2.4直流伺服電動機直流伺服電動機在伺服系統中控制機械元件轉動.是一種補助馬達間接變速裝置。又稱執行電動機,在自動控制系統中,用作執行元件,把所收到的電信號轉換成電動機軸上的角位移或角速度輸出。其主要特

10、點是,當信號電壓為零時無自轉現象,轉速隨著轉矩的增加而勻速下降。其作用可使控制速度、位置精度非常準確。直流伺服電動機的結構與直流電動機基本相同。只是為減小轉動慣量,電機做得細長一些。所不同的是電樞電阻大,機械特性軟、線性(電阻大,可弱磁起動、可直接起動)。供電方式是他勵供電,即勵磁繞組和電樞分別兩個獨立的電源供電。控制方式包括電樞控制和磁極控制,其中改變電樞電壓U調速范圍較大,直流伺服電機常用此方法調速。直流伺服電動機轉速的計算公式如下:式中:n為轉速;為磁通;U為外加電壓;I、R為電樞電流和電阻;Ke為電勢系數。3.單片機控制系統軟件設計軟件設計采用模塊化設計,由主程序模塊和功能實現模塊兩大

11、部分組成。主程序通過讀取鍵值與超聲波傳感器測量距離進行求差,結合PID控制算法輸出至驅動模塊以達到控制電機的目的;功能實現模塊主要由主函數模塊、鍵盤處理子程序和屏幕顯示模塊、PID控制算法子程序等組成。3.1主程序主程序首先對鍵盤和顯示模塊的程序進行初始化,通過讀取鍵值處理后與超聲波傳感器測量距離進行求差以達到控制電機的目的。主程序流程圖如圖3-1所示。顯示模塊初始化顯示模塊初始化鍵盤掃描程序開始讀取鍵值PID消除差值控制電機鍵盤模塊程序初始化輸入值是否有效?與傳感器測距求差進行秋茶 N Y 圖3-1主程序流程圖3.2鍵盤處理子程序鍵盤采用程序掃描的工作方式,即在特定的程序位置段上安排鍵盤掃描

12、程序讀取鍵盤狀態。鍵盤處理子程序的程序掃描法流程圖如圖3-2所示。是否有鍵按下?是否有鍵按下?延時10ms調用按鍵掃描子程序開始是否有鍵按下?按鍵散轉、處理程序返回 N N Y Y 圖3-2鍵盤處理子程序的程序掃描法流程圖4.控制系統原理圖及仿真4.1控制系統方框圖控制系統是以單片機為控制器,通過鍵盤輸入設定值,經單片機處理后送到電機驅動器,電機驅動器將收到的信號進行放大,最終電機按照減小設定值與測量值的方式轉動。圖4-1即為控制系統方框圖電機轉動,隨動系統完成將信號電機轉動,隨動系統完成將信號輸出給電機驅動器PID控制減小差值與實際測量值求差按鍵輸入圖4-1控制系統方框圖4.2控制系統電路原

13、理圖圖4-2控制系統電路原理圖5.Simulink組件對直流伺服控制系統的仿真5.1直流伺服電機數學模型直流伺服電機閉環系統結構圖如圖5-1所示 U(S) U(S) N(S) 圖5-1直流伺服電機閉環系統結構圖其中直流伺服電機的傳遞函數為5.2系統Simulink模型及時域特性仿真對于單輸入單輸出系統,在經典控制理論中可用傳遞函數來描述系統,獲得系統的動態響應。同樣,Simulink仿真軟件也有傳遞函數模塊,可方便地描述系統的特性,且簡化了仿真模型。從模塊庫窗口創建系統模型如圖1所示,選信號源模塊組中的階躍信號模塊為輸入信號,以輸出模塊組中的示波器模塊作為顯示器來觀察系統階躍響應。在模型窗口設

14、置傳遞函數模塊的參數和特性,運行仿真模型,得系統階躍響應曲線。5.2.1 Simulink建模及仿真圖5-2直流伺服電機開環系統Simulink模型端口Step為直流伺服電機的輸入電壓,輸出端口為驅動信號。圖5-3是開環系統的仿真結果,即開環系統的階躍響應曲線,也即直流伺服電機輸入1V單位階躍電壓時。電機的轉軸輸出呈線性變化。圖5-3開環系統仿真圖由圖5-3響應曲線可知,系統沒有在可視范圍內達到穩態值“1”,但從理論上分析知此系統屬穩定系統,在足夠時間內是能夠達到穩定狀態的。上述分析說明:系統的響應速度較慢,系統性能較差,從而可能不具備使用價值。結果表明,該系統沒有達到預期的設計要求。5.2.

15、2單位負反饋系統Simulink建模及仿真圖5-4是在圖5-3的基礎上加一個單位負反饋環節,構成直流伺服電機的單位負反饋系統,單位負反饋系統Simulink模型如圖5-4所示圖5-4直流伺服電機單位負反饋系統Simulink模型圖5-5是單位負反饋系統的仿真結果圖5-5單位負反饋系統仿真圖系統超調:40%,調節時間:2s。由圖5-5和開環階躍響應曲線相比較知:系統應經可以達到較快達到穩態值。說明閉環單位負反饋系統對系統性能有很大改善。5.3 PID校正為了使系統能夠達到設計要求,我們可以在圖5-4前向通道上設置一個控制器構成閉環系統來校正直流伺服電機。基于PID控制(閉環)的直流伺服電機系統框

16、圖如圖5-6所示。輸入信號 輸入信號 +速度輸出 輸出信號 信號偏差 直流電機PID +速度輸出 輸出信號 信號偏差 直流電機PID -距離距離負反饋圖5-6基于PID控制(閉環)的直流伺服電機系統框圖其控制過程為比較超聲波傳感器的測量值與鍵盤設定值,即輸入信號,通過反饋后與系統輸入信號進行比較,得到偏差信號。偏差信號作為PID控制器的輸入信號根據設定的PID控制規律計算后輸出信號U,作為控制量輸入給直流電機,從而實現整個直流電機調速系統的閉環負反饋PID控制。5.3.1 PID參數的湊試法確定增大比例系數Kp系統響應有利于減小靜差,但是過大會增大超調,并產生震蕩,使穩定性變壞。增大Ti可以減

17、小超調,減小震蕩,是系統更穩定,但靜差消除變慢。增大微分Td有利于加快系統響應時間,使超調減小,穩定性增加,但對擾動的抑制能力減弱,對擾動有較敏感的響應。在湊試時,對參數實行下述先比例,后積分,再微分的整定步驟。(1)首先只整定比例部分。即將比例部分由小變大,并觀察相應的系統響應,直到得到反應快,超調小的響應曲線。如果系統沒有靜差或靜差已小到允許范圍內,那么只需用比例控制器即可,最優比例系數可由此確定。(2)如果在比例調節的基礎下系統的靜差不能滿足設計要求,則須加入積分環節。整定時首先置積分時間Ti為一較大值,并將經第一步整定得到的比例系數略微縮小,然后減小積分時間,并在保持系統良好動態性能的

18、情況下,靜差得到消除。在此過程中,可根據響應曲線的好壞反復改變比例系數與積分時間,以期得到滿意的控制過程與整定參數。(3)若使用比例積分控制器消除了靜差,但動態過程經反復調整仍不能滿意,則可加入微分環節,構成比例積分微分控制器。在整定時,可先置微分時間Td為零。在第二步整定的基礎上,增大Td,同時相應的改變比例系數和積分時間,逐步湊試,以獲得滿意的調節效果和控制參數。5.3.2比例控制器校正比例控制系統Simulink模型及仿真圖5-7 比例控制系統Simulink模型Kp=1時仿真圖Kp=3時Kp=5時仿真圖由以上三個比例控制的仿真圖可知,增大比例系數KP一般系統響應利于減小靜差,但是過大會

19、增大超調,并產生震蕩,使穩定性變壞。5.3.3比例積分控制器校正積分控制的作用是只要系統存在誤差,積分控制作用就不斷地積累,輸出控制量以消除誤差,因而,只要有足夠的時間,積分控制將能完全消除誤差。在比例環節基礎上加入積分環節,只要參數設置合適就能完全消除系統偏差。比例積分控制系統Simulink模型圖5-8 比例積分控制系統Simulink模型Kp=1、Ki=1時仿真圖Kp=1、Ki=3時仿真圖Kp=5、Ki=3時仿真圖由以上三個比例積分控制的仿真圖可知,增大TI有減小超調,減小震蕩,使系統更穩定,但靜差消除變慢。PI控制參數設置適當可使系統靜差為零。經多次試湊,選KI=1.5.3.4 PID

20、控制器校正比例積分作用雖能是系統誤差為零,但系統動態性能不能得到滿足。積分作用太強可能會使系統出現震蕩。微分控制具有超前控制能力,可抑制最大動態偏差,改善系統動態性能,提高系統的穩定性。為此,在PI作用基礎上引入微分控制,構成PID控制器,以使系統滿足穩、準、快的要求。PID控制控制系統Simulink模型如圖圖5-9 PID控制系統Simulink模型Kp=1、Ki=1、Kd=0.1時仿真圖和PI控制閉環響應曲線相比較可知:系統響應時間變短,超調變小,但仍不符合要求;Kp=5、Ki=1、Kd=0.1時仿真圖與KP=1、KI=1、KD=0.1時的仿真圖相比,系統超調和調節時間都變小,仍然不符合

21、要求,繼續校正。需加大Kp及Ki。Kp=12、Ki=1、Kd=0.5時仿真圖由上曲線知此時系統有微量的超調,進一步加大Ki時超調為零。Kp=12、Ki=1、Kd=0.9時仿真圖經過多次校正參數,此時當Kp=12、Ki=1、Kd=0.9時系統超調量為0,穩態誤差為0,性能滿足設計要求,穩定、準確、快速得到了完滿的統一。5小結控制系統特點是以單片機為控制器,通過鍵盤輸入設定值,使得系統消除測量值與實際值的偏差方便快捷。但在proteus中沒能實現閉環系統的PID控制。此缺點通過軟件彌補,在MATLAB軟件中的SIMULINK中進行了直流伺服電機的開環控制系統仿真,單位閉環控制系統仿真,閉環PI控制

22、系統仿真,閉環PD控制仿真,閉環PID控制仿真能夠更好的測試和控制系統的性能,從而為系統設計提供了更準確的性能指標。參考文獻1李正軍.計算機控制系統.北京:機械工業出版社,2010.62周荷琴等.微型計算機原理及接口技術M.合肥:中國科技大學出版社,2008.63張毅剛等.單片機原理與應用設計M.北京:電子工業出版社4計算機控制技術實驗指導書部分程序如下:#include stm32f10 x.h #include user_Config.h #include TFT28.h #include GUI.h#include #include key.h#include int overflow=

23、0; #define module_interval 25 #define object_distance 100.0 void NVIC_Configuration(void);void TIM_Configuration(void);void GPIO_Configuration(void);void RCC_Configuration(void);float Sensor_using(void);void delay(void);unsigned long lastTime;double Input, Output, Setpoint,dErr;double errSum, lastEr

24、r;unsigned int Device_code; GPIO_InitTypeDef GPIO_InitStructure;/定義一個結構變量,用于初始化GPIOErrorStatus HSEStartUpStatus;void Delay(vu32 nCount) for(; nCount != 0; nCount-);void delay_ms(unsigned int nCount) int i,j; for(i=0;inCount;i+) for(j=0;jCNT=0; while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_11) & overflo

25、w=0); TIM_Cmd(TIM3, DISABLE); if(overflow!=0) overflow=0;return 0.0; TIM=TIM_GetCounter(TIM2);distance=(float)sqrt(TIM/20.0*17)*(TIM/20.0*17)-module_interval*module_interval/4.0)+12.0; return(distance);void TIM3_PWM_Init(u16 arr,u16 psc)/PWM output GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseIn

26、itTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); /啟用定時器三 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6 |

27、 GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_ResetBits(GPIOC,GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBas

28、eStructure.TIM_Prescaler =psc; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_

29、OCInitStructure.TIM_Pulse = 0; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM3, &TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_OC2Init(TIM3, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_OC3Init(TIM3, &TIM_OCInit

30、Structure); TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_OC4Init(TIM3, &TIM_OCInitStructure); TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM3, ENABLE); TIM_Cmd(TIM3, ENABLE); Compute(double kp,double ki,double kd)/PID control double dErr; unsigned long now; double timeChange = (double)(now - lastTime); double error = Setpoint - Input; errSum += (error * timeChange);dErr = (error - lastErr)/timeChange; Output = kp * error + ki * errSum + kd * dErr; lastErr = error; lastTime = now;int main(void)float result=0;int x; RC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論