智能车基于RT1064+无线串口透传模块利用MATLAB辅助调节PID参数
本文框架:
(1)介紹控制系統的基本性能要求及常用性能指標;
(2)簡介RT1064與無線串口透傳模塊;
(3)MATLAB數據處理過程詳解;
(4)效果展示與分析;
(5)操作指南(手把手教你使用)。
一、控制系統相關知識
(1)控制系統的基本性能要求:穩、準、快
穩:指的是系統的穩定性。穩定性是系統重新恢復平衡狀態的能力。不穩定的系統將出現持續的震蕩,無法運用于自動控制系統中。
準:對系統穩態(靜態)性能的要求。對于一個穩定的系統而言,當過渡過程結束后,系統輸出量的實際值與期望值之差稱為靜態誤差,它是衡量系統控制精度的重要指標。穩態誤差越小,表示系統的準確性越好,控制精度越高。
快:對系統動態(過渡過程)性能的要求。描述系統動態性能可以用平穩性和快速性加以衡量。平穩是指系統由初始狀態過渡到新的平衡狀態時,具有較小的過調和振蕩性;快速性是指系統過渡到新的平衡狀態所需要的調節時間最短。動態性能是衡量系統質量高低的重要指標。
(2)系統的動態性能指標:
延遲時間td :階躍響應第一次達到終值h(∞)的50%所需時間。
上升時間tr :階躍響應從終值的10%上升到終值的90%所需時間;對有振蕩的系統,也可以定義為從0到第一次達到終值所需要的時間。
峰值時間tp:階躍響應越過終值h(∞)達到第一個峰值所需時間。
調節時間ts :階躍響應到達并保持在終值h(∞)±5%(或2%)誤差帶內所需要的最短時間。
超調量σ%:峰值超出終值h(∞)的百分比,即
在上述動態性能指標中,我們常用調節時間ts (反映過渡過程的長短)、超調量σ%(反映過渡過程的波動程度)和峰值時間tp來作為系統的動態性能指標。
二、硬件模塊簡介
(1)RT1064核心板
RT1064為NXP公司推出的RT1064,屬于RT1060系列,Cortex M7內核,擁有600Mhz運行主頻4MB Flash,1MB SRAM,32KB I-Cache,32KB D-Cache,是現階段運算性能最為強勁的一款微控制器。詳細技術指標可到NXP官網查看。這里我使用的是逐飛科技有限公司推出的RT1064最小系統版。
(2)無線串口透傳模塊
這里我使用的是逐飛科技推出的無線轉USB(接上位機)/無線轉串口(接下位機)模塊,相比于平常使用的藍牙模塊,無需了解其他知識,就能快速入手,且該模塊傳輸距離更遠、傳輸速度更快!個人感覺:真香!
有兩點需要注意一下:①在接線時,上位機的RX引腳要接下位機的TX引腳,同樣上位機的TX引腳要接下位機的RX引腳。②我們傳輸的數據類型一般為int型、double型等等,而串口一次只能發送8位的數據,且發送的數據格式為uint8。這就需要涉及到數據轉換。以int32型為例,因為int型數據有正負,需要先進行符號位的判斷,先向上位機發送符號位(2字節);int32有32位數據,須將它分解為4個字節,依次發送給上位機。因此,一個int32型的數據通過數據轉換為6個字節數據進行傳輸。其他數據類型的傳輸同理可得。若不知道某數據類型的字節數,可用sizeof( )函數進行獲取。以下為數據轉換代碼,基于RT1064+逐飛的無線轉串口模塊,僅供參考。
三、MATLAB數據處理:
如下圖所示,我在做速度、電流雙閉環時同時向上位機發送了兩種數據內容:電流值與速度值,且輪流發送;數據值即為單片機經過上述數據轉換后發送給上位機的內容;每個數據內容為6個字節,其中分為2個字節的符號位和4個字節的數據位。
誠然,在MATLAB里需要將數據值再一次進行數據轉換才能處理。我的轉換思路為:(1)將數據值的每2個字節進行合并,即第一個字節左移8位并和第二個字節進行或運算;(2)經上述處理后,每個數據內容變為一個符號位和兩個數據位;此時再將兩個數據位合并,根據符號位判斷數據的正負,到此數據轉換結束,我們就能得到單片機原始要發送的數據(3)因為我同時發送了兩種內容的數據,最后我還需要將數據進行分類處理。
以下為MATLAB數據處理代碼:
四、效果展示與分析:
話不多說,直接上圖展示:
(1)空載下采用開環控制
(2)空載下采用電流單閉環控制
(3)空載下采用速度單閉環控制
(4)空載下采用速度、電流雙閉環控制
本期就只給出空載下的效果圖哈,下期給出負載下的效果圖和個人調節雙閉環的心得!想要學習的小伙伴記得關注我哈~
從圖像上來分析,在空載時若采用電流、速度閉環控制方式,其電流值出現超調量后快速趨于一個恒定值而波動,其調節時間最短;其速度值出現超調量后快速趨于期望值,調節時間最短,且調節過程較為平穩,沒有太大的波動。
相比于傳統的目測法、經驗法調節PID參數,采用輔助工具進行調參顯然更具科學性!
此外根據響應情況,我們可以快速的判斷出該調節哪個參數、調大或者調小。
五、操作指南:
1、硬件連接、無線模塊的配置、單片機程序設計
依照自己的情況而定。
2、上位機處理
我所使用的串口助手是sscom5.13.1,具體使用步驟如下:
3、導入數據到MATLAB
將數據文本的地址拷貝到MATLAB中,點擊運行,進行數據處理。
4、圖像分析
根據MATLAB生成的系統動態響應圖像,借助第一節所提到的相關性能指標,進行參數調節。
總結
整篇文章涉及的內容龐雜,愛學習的小伙伴細品細品,相信你會學習到很多知識!鑒于我也是剛入門的C鳥,所以還請多多指教!有不懂的地方歡迎留言…
總結
以上是生活随笔為你收集整理的智能车基于RT1064+无线串口透传模块利用MATLAB辅助调节PID参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android qq勋章墙实现,科技教程
- 下一篇: 网红品牌终将祛魅,而伊利、康师傅这些老司