日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

智能车基于RT1064+无线串口透传模块利用MATLAB辅助调节PID参数

發布時間:2023/12/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 智能车基于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+逐飛的無線轉串口模塊,僅供參考。

void data_int32_transform(int32 data)//數據轉換 {i_bit=sizeof(data); //獲取數據字節數if(data>=0) //判斷數據正負,若為正值,標志位為0{val=0;seekfree_wireless_send_buff(&val,1);//發送符號標志位//data=abs(data);for(i_bit;i_bit>=0;--i_bit) //移位處理,先發送高位{data_temp=(uint8)(data>>(8*i_bit));seekfree_wireless_send_buff(&data_temp,1);//發送數據} }else //若為負值,標志位為1{val=1;seekfree_wireless_send_buff(&val,1);//符號標志位data=abs(data);for(i_bit;i_bit>=0;--i_bit){data_temp=(uint8)(data>>(8*i_bit));seekfree_wireless_send_buff(&data_temp,1);}} }

三、MATLAB數據處理:

如下圖所示,我在做速度、電流雙閉環時同時向上位機發送了兩種數據內容:電流值與速度值,且輪流發送;數據值即為單片機經過上述數據轉換后發送給上位機的內容;每個數據內容為6個字節,其中分為2個字節的符號位和4個字節的數據位。

誠然,在MATLAB里需要將數據值再一次進行數據轉換才能處理。我的轉換思路為:(1)將數據值的每2個字節進行合并,即第一個字節左移8位并和第二個字節進行或運算;(2)經上述處理后,每個數據內容變為一個符號位和兩個數據位;此時再將兩個數據位合并,根據符號位判斷數據的正負,到此數據轉換結束,我們就能得到單片機原始要發送的數據(3)因為我同時發送了兩種內容的數據,最后我還需要將數據進行分類處理。
以下為MATLAB數據處理代碼:

duty=30; s_P=2.58; s_I=0.82; c_P=0; c_I=0; goal_speed=(duty*2); goal_current=(310+duty); %以上為我所需要的一些常量a=textread('E:\畢業設計\無線轉串口\串口助手\串口助手\sscom32\SaveWindows2021_3_28_19-28-50.txt','%s')';%以字符形式打開文件,文件地址具體查看你的數據文檔所在地址 alpha=hex2dec(a)'; %16進制轉化為10進制數,存入alpha矩陣,方便后面的數據處理 row=size(alpha,2); %判斷我的數據總數,若只有一個數據內容:00 01 00 00 0C 5A 則 row=6,存入1X6大小的矩陣 %以下為變量初始化 temp=zeros(1,row/2);%將數據值的每2個字節合并后暫存區矩陣 data=zeros(1,row/6);%數據內容暫存區矩陣 current_data=zeros(1,row/12); %存放電流數據的矩陣 speed_data=zeros(1,row/12); %存放速度數據的矩陣 speed_lower_err_line=zeros(1,row/12);%速度動態響應曲線的下誤差線 speed_upper_err_line=zeros(1,row/12);%速度動態響應曲線的上誤差線 current_lower_err_line=zeros(1,row/12);%電流動態響應曲線的下誤差線 current_upper_err_line=zeros(1,row/12);%電流動態響應曲線的上誤差線 for i=1:row/2temp(1,i)=bitor(bitshift(alpha(1,2*i-1),8),alpha(1,2*i));%2個字節數據進行合并處理,經過這步處理后,每個數據內容由原本占用1X6的矩陣變為1X3的矩陣,其中第一個表示符號位,第二、三個表示數據數據位。 end for j=1:row/6data(1,j)=bitor(bitshift(temp(1,3*j-1),8),temp(1,3*j));%將數據位合并if(temp(1,(3*j-2))==256)%判斷符號位正負,移位后原本的負號標志1變為256data(1,j)=-data(1,j);end end for jj=1:row/12 %將電流數據和速度數據經行分類處理,并確定各自的誤差帶current_data(1,jj)=data(1,(2*jj-1));speed_data(1,jj)=data(1,(2*jj));speed_lower_err_line(1,jj)=(goal_speed+goal_speed*0.05);speed_upper_err_line(1,jj)=(goal_speed-goal_speed*0.05);current_lower_err_line(1,jj)=(goal_current+goal_current*0.05);current_upper_err_line(1,jj)=(goal_current-goal_current*0.05); endfigure(1);%畫出電流動態響應曲線 hold onplot(1:5:(row/12)*5,current_data(1,1:row/12));plot(1:5:(row/12)*5,current_lower_err_line(1,1:row/12),'r--');%上誤差線plot(1:5:(row/12)*5,current_upper_err_line(1,1:row/12),'r--');%下誤差線 hold offcurrent_ave=mean(current_data(:));%求電流平均值%legend('name');title({['左輪開環空載電流時間圖像(占空比:',num2str(duty),'%)'],['電流平均值:',num2str(current_ave),'mA/5ms']});xlabel('Time(ms)');ylabel('Current(mA)');figure(2)%畫出速度動態響應曲線 hold onplot(1:5:(row/12)*5,speed_data(1,1:row/12));plot(1:5:(row/12)*5,speed_upper_err_line(1,1:row/12),'r--');%上誤差線plot(1:5:(row/12)*5,speed_lower_err_line(1,1:row/12),'r--');%下誤差線 hold off speed_ave=mean(speed_data(:));%求轉速平均值 %legend('name'); title({['左輪空載脈沖時間圖像(占空比:',num2str(duty),'% P:',num2str(s_P),' I:',num2str(s_I),')'],['轉速平均值:',num2str(speed_ave),'脈沖/5ms']}); xlabel('Time(ms)'); ylabel('Speed(脈沖)'); saveas(gcf,'E:\畢業設計\Matlab\波形\空載\Speed\左輪\test1.jpg');%保存圖像

四、效果展示與分析:

話不多說,直接上圖展示:
(1)空載下采用開環控制

(2)空載下采用電流單閉環控制

(3)空載下采用速度單閉環控制


(4)空載下采用速度、電流雙閉環控制


本期就只給出空載下的效果圖哈,下期給出負載下的效果圖和個人調節雙閉環的心得!想要學習的小伙伴記得關注我哈~
從圖像上來分析,在空載時若采用電流、速度閉環控制方式,其電流值出現超調量后快速趨于一個恒定值而波動,其調節時間最短;其速度值出現超調量后快速趨于期望值,調節時間最短,且調節過程較為平穩,沒有太大的波動。
相比于傳統的目測法、經驗法調節PID參數,采用輔助工具進行調參顯然更具科學性!
此外根據響應情況,我們可以快速的判斷出該調節哪個參數、調大或者調小。


五、操作指南:

1、硬件連接、無線模塊的配置、單片機程序設計
依照自己的情況而定。
2、上位機處理
我所使用的串口助手是sscom5.13.1,具體使用步驟如下:

3、導入數據到MATLAB
將數據文本的地址拷貝到MATLAB中,點擊運行,進行數據處理。
4、圖像分析
根據MATLAB生成的系統動態響應圖像,借助第一節所提到的相關性能指標,進行參數調節。


總結

整篇文章涉及的內容龐雜,愛學習的小伙伴細品細品,相信你會學習到很多知識!鑒于我也是剛入門的C鳥,所以還請多多指教!有不懂的地方歡迎留言…

總結

以上是生活随笔為你收集整理的智能车基于RT1064+无线串口透传模块利用MATLAB辅助调节PID参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲综合图| 国产成人久久精品麻豆二区 | 成人欧美精品 | 伊人网在线视频观看 | 精品免费囯产一区二区三区 | 国产盗摄视频在线观看 | 在线视频a | 天堂精品一区 | 午夜精品视频在线 | www.黄色大片 | 91爱看 | 无码人妻一区二区三区在线 | 日韩福利视频一区 | 国产无套内射又大又猛又粗又爽 | 国产999精品久久久久久 | 蜜桃tv一区二区三区 | 澳门黄色 | 中文字幕欧美人妻精品一区蜜臀 | 午夜精品久久久久久久久久久 | 日韩av免费在线播放 | 日日草草 | 爱操影院 | 日本精品一区二区在线观看 | 欧美色图在线播放 | v片在线观看 | 禁漫天堂下载18 | 一区二区三区日韩欧美 | 欧美肥妇bwbwbwbxx | 又爽又黄又无遮挡 | 精品一区二区三区无码按摩 | 中文字幕人妻一区 | 亚洲国产精品一区二区三区 | 欧美一级黄色片网站 | 日本三级一区二区三区 | 麻豆国产一区二区三区四区 | 欧美激情 国产精品 | avtt男人天堂| 欧美日韩午夜激情 | 91天堂网 | 久久成人在线观看 | mm1313亚洲国产精品美女 | 善良的女邻居在线观看 | 在线观看久草 | 婷婷91| 日韩欧美在线观看一区二区 | 一级毛片黄色 | 欧美日韩黄色网 | 欧美粗又大| 国产91小视频 | 欧美日韩一区二区三区四区五区 | 黄色免费网站视频 | 综合网在线观看 | 国产网站久久 | 在线免费观看黄视频 | av免费高清 | 亚洲女人天堂成人av在线 | 六十路息与子猛烈交尾 | 国产免费不卡av | 天堂在线精品视频 | 被绑在床强摁做开腿呻吟 | 中文字幕不卡在线播放 | 国产一区二区视频在线 | 男人的天堂免费视频 | 欧美性生活一区 | 亚洲精品国产精品乱码不99热 | 男人疯狂高潮呻吟视频 | 草草影院国产第一页 | 日韩一级免费观看 | 久久精品二区 | 欧美激情亚洲综合 | 国产av自拍一区 | 美女黄色真播 | 美女网站污 | 麻豆影视在线 | 免费三片在线播放 | 久久666| 老司机午夜精品视频 | 蜜臀人妻四季av一区二区不卡 | 日本天堂影院 | 丁香婷婷一区二区三区 | 亚洲美女自拍偷拍 | 香蕉视频官方网站 | 欧美二区视频 | 免费一二三区 | 成年人黄色 | 国产一级aa大片毛片 | 欧美视频在线观看视频 | jlzzzjlzzz国产免费观看 | 国产乱码精品一区二三赶尸艳谈 | 国产18禁黄网站免费观看 | 国产肉体xxxx裸体784大胆 | 88久久精品无码一区二区毛片 | 亚洲乱码中文字幕 | 欧美美女性生活视频 | 69免费视频| 久草资源网 | 亚洲天堂激情 | 欧美成人一区在线观看 | 黄色一级片免费 |