已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于dsp的全向運(yùn)動控制系統(tǒng)軟件設(shè)計(jì)南 陽 理 工 學(xué) 院本科生畢業(yè)設(shè)計(jì)(論文)學(xué)院(系): 電子與電氣工程學(xué)院 專 業(yè): 自 動 化 學(xué) 生: 黃帥豪 指導(dǎo)教師 : 殷華文 完成日期 2014 年 5 月 南陽理工學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)基于msp430單片機(jī)的溫度pid算法設(shè)計(jì) design of temperaturepid algorithmbased on msp430 single chip microcomputer 總 計(jì) : 20 頁表 格 : 0 個插 圖 : 13 幅南 陽 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)(論文)基于msp430單片機(jī)的溫度pid算法設(shè)計(jì)design of temperaturepid algorithmbased on msp430 single chip microcomputer學(xué) 院(系): 電子與電氣工程學(xué)院 專 業(yè): 自動化 學(xué) 生 姓 名: 黃帥豪 學(xué) 號: 105090640035 指 導(dǎo) 教 師(職稱): 殷華文(副教授) 評 閱 教 師: 完 成 日 期: 南陽理工學(xué)院nanyang institute of technology基于msp430單片機(jī)的溫度pid算法設(shè)計(jì)基于msp430單片機(jī)的溫度pid算法設(shè)計(jì)自動化專業(yè) 黃帥豪摘 要 本設(shè)計(jì)基于msp430f149單片機(jī),以iar embedded workbench軟件為開發(fā)平臺,在msp430中用自編的位置式pid算法程序?qū)崿F(xiàn)對電加熱鍋爐水溫的控制,并在上位計(jì)算機(jī)上實(shí)現(xiàn)組態(tài)王軟件監(jiān)控。pt100熱電阻信號經(jīng)放大調(diào)理后通過msp430 adc模塊送入單片機(jī)。在matlab中通過一元二次方程進(jìn)行溫度數(shù)據(jù)擬合,把擬合結(jié)果在msp430中編程進(jìn)行溫度數(shù)據(jù)標(biāo)度變換,上位機(jī)向msp430發(fā)送溫度設(shè)定值和pid參數(shù),根據(jù)組態(tài)王軟件監(jiān)控結(jié)果對算法進(jìn)行分析和改進(jìn),加入不完全微分和積分分離程序。通過實(shí)驗(yàn)驗(yàn)證和結(jié)果分析,溫度控制無超調(diào),穩(wěn)態(tài)誤差0.3。關(guān)鍵詞msp430單片機(jī);位置式溫度pid算法;溫度數(shù)據(jù)擬合;不完全微分;積分分離design of temperaturepid algorithmbased on msp430 single chip microcomputerautomation specialty huang shuai-haoabstract: the design is based on scm msp430f149, using iar embedded workbench software as a development platform, to realize the temperature control of electric water boiler with location pid algorithm program compiled in msp430, and realizes the kingview software in upper computer monitoring. pt100 thermal resistance signal is amplified by msp430 adc after conditioning module into the microcontroller. the temperature data through a two quadratic equations in the matlab, the fitting results are programmed in msp430 temperature data scale conversion, computer set value and pid parameter to send set temperature to msp430, after analyzed and improved on the algorithm according to the monitoring results of kingview software, with incomplete differential and integral separation procedure. through experiment and analysis of the results, the temperature control has no overshoot, steady-state error of 0; i-);/等待8mhz晶體起振 while (ifg1 & ofifg);/晶振失效標(biāo)志仍然存在? bcsctl2 |= selm_2 + sels;/mclk和smclk選擇高頻晶振4.2.2 pid算法程序本pid算法程序采用位置式控制算式,由于在測試過程中發(fā)現(xiàn)溫度曲線波動較大且出現(xiàn)毛刺,所以在原有的完全微分的基礎(chǔ)上改進(jìn)為不完全微分,因?yàn)橥耆⒎謕id是一次微分作用,而不完全微分pid是分幾次輸出微分作用。微分是一種重要的控制作用,可以較明顯的改善閉環(huán)系統(tǒng)的控制性能。假如偏差的階躍幅值較大,在完全微分時,一次輸出的微分作用幅值會很大,很可能會因輸出限幅而喪失應(yīng)有的微分作用。而不完全微分,因?yàn)槲⒎肿饔梅謳状屋敵?,而每次輸出幅值較小,所以能較好的保存應(yīng)有的微分作用。在開停工或大幅度升降設(shè)定值時,由于偏差累計(jì)較大,故在積分項(xiàng)的作用下會產(chǎn)生一個很大的超調(diào),并產(chǎn)生振蕩,特別是對于溫度、液面等變化緩慢的過程,這一現(xiàn)象更為嚴(yán)重。為了改進(jìn)控制性能可采用積分分離的方法,即在受控變量開始跟蹤時,取消積分作用,偏差小于某一設(shè)定值時,才產(chǎn)生積分作用,程序如下:void pidcalc(void)float rate;/誤差變化率 current_error = set_temp - pre_temp ;/ 當(dāng)前誤差計(jì)算sum_error += current_error;/ 誤差積分prev_error = last_error;/ 存儲誤差更新last_error = current_error;/ 存儲誤差更新rate = ( current_error - last_error )*1000/ ctrl_period; / 當(dāng)前誤差微分if(rate5)/對誤差變化率進(jìn)行限制,鍋爐溫度不可能變化太大rate=5;if(ratepid_i_max ) i_out = pid_i_max;if( i_outpid_i_min ) i_out = pid_i_min;if( ( current_error = 2.5 ) & ( prev_error =2.8) i_out=i_out * 0.5; if( (current_error = 0.45 ) & ( last_error =55) i_out=i_out * 0.08; /因?yàn)殄仩t只能加溫不能降溫所以一旦超過設(shè)定值令積分值為零 if( ( current_error = 0 ) & ( last_error = pwm_data_max ) pid_out = pwm_data_max; if ( pid_out =10) pid_out=16383; void main() device_init( ); while(1) led8_rollback;/系統(tǒng)運(yùn)行指示燈 parameter_show( ); 4.2.3 adc模數(shù)轉(zhuǎn)換程序該段程序首先完成adc12模塊的通用程序框架,adc12模塊的初始化函數(shù),僅僅實(shí)現(xiàn)了多通道的單次和多次轉(zhuǎn)換,單通道的可以用參數(shù),多通道模式下設(shè)置一個通道.adc12啟動轉(zhuǎn)換函數(shù)完成啟動adc12,開始a/d轉(zhuǎn)換。中斷程序必須自己添加處理函數(shù)(根據(jù)實(shí)際使用的通道情況)。這里選用的時鐘smclk,參考電壓內(nèi)部打開的是2.5v,每次當(dāng)多個通道轉(zhuǎn)換完成后,打開中斷時,單片機(jī)會自動調(diào)用本函數(shù),使用時需要自己添加處理邏輯12,程序如下:char adc12init(char n,char channels,char rep) if(n15)return 0;adc12ctl0 = adc12on + msc + sht0_0 + refon + ref2_5v;/ 開啟ad,參考電壓2.5vadc12ctl1 = shp + adc12ssel_3; /use sampling timer, smclkfor(int i = 0;i = 0x80)return 0;*(char*)(adc12mctl0_ + i) = channelsi;/每個mctl設(shè)置 *(char*)(adc12mctl0_ + n - 1) |= eos;/序列結(jié)束 if(rep != 0)/多次轉(zhuǎn)換adc12ctl1 |= conseq_3;else adc12ctl1 |= conseq_1;adc12ie = 1(n-1);/ enable adc12ifg.n-1return 1;4.2.4 定時器設(shè)置程序設(shè)定定時器a控制寄存器使能中斷,設(shè)置ccr0初值,及100毫秒中斷一次,計(jì)數(shù)器計(jì)數(shù)設(shè)置為加模式初始化定時器b,函數(shù)設(shè)置pwm中斷周期,pwm低電平時間,設(shè)置pwmio口和pwm低電平時間。void ta_init(void) tactl=tassel0+taclr;/設(shè)定定時器a控制寄存器 cctl0=ccie;/使能中斷 ccr0=3276;/設(shè)置ccr0初值,及100毫秒中斷一次 tactl|=mc0;/計(jì)數(shù)器加模式void timerb_init(void) tbctl=tbssel_1+tbclr+mc0+id_3; tbcctl1=outmod_3; tbccr0=16384;/pwm中斷周期 tbccr1=4000;/pwm低電平時間 p4dir|=bit1;/設(shè)置pwmio口 p4sel|=bit1;void timerb_duty(u16 duty) tbccr1=duty;/pwm低電平時間4.2.5 異步通訊程序異步通訊串口數(shù)據(jù)格式包括起始位、7位或8位數(shù)據(jù)、奇偶校驗(yàn)位、地址位、一位或二位停止位,每位數(shù)據(jù)的周期通過所選擇的時鐘和波特率發(fā)生器來確定,本設(shè)計(jì)采用空閑模式void uart0_init(void) wdtctl = wdtpw + wdthold;/ stop wdt p3sel |= 0x30;/ p3.4,5 = usart0 txd/rxd me1 |= utxe0+urxe0;/ enable usart0 txd/rxd uctl0 |= char;/ 8-bit character utctl0 |= ssel0;/ uclk = aclk ubr00 = 0x03;/ 32k/9600 - 3.41 ubr10 = 0x00; umctl0 = 0x4a;/ modulation uctl0 &= swrst;/ initialize usart state machine ie1 |= urxie0;/ 使能usart0的接收中斷void putchar(uchar data) while (!(ifg1 & utxifg0);/ tx緩存空閑? txbuf0 = data;/ 發(fā)送數(shù)據(jù)void blank(void) putchar(0x20);void newline() putchar(0x0d);/發(fā)送一個回車 putchar(0x0a);/發(fā)送一個換行void putstring(uchar *ptr) while(*ptr != 0) putchar(*ptr+); 4.2.6 溫度擬合程序?qū)⒉杉臏囟葦?shù)值與模數(shù)轉(zhuǎn)換后的數(shù)字量進(jìn)行擬合和標(biāo)度變換,程序如下:float scale_conv( u16 value)float temp1=0,temp2=0; /溫度擬合(二次函數(shù))temp1=value*a_para;temp1=value*temp1;temp2=value*b_para;/當(dāng)前溫度=a*x*x+b*x+c-零漂return (temp1+temp2+c_para+null_shift); 5 系統(tǒng)調(diào)試及結(jié)果分析5 .1 系統(tǒng)整體的調(diào)試和結(jié)果5.1.1 modbus-ascii的調(diào)試調(diào)試思路是用串口模擬上位機(jī),按照modbus-ascii上位機(jī)的數(shù)據(jù)格式,給下位機(jī)(msp430)發(fā)送數(shù)據(jù),觀察msp430能否正確應(yīng)答,如果能正確應(yīng)答,就可以讓msp430直接和上位機(jī)通信。上位機(jī)通信窗口如圖9所示圖9 上位機(jī)通信窗口應(yīng)用程序下載窗口如圖10所示:圖10 應(yīng)用程序下載窗口5.1.2 上位機(jī)監(jiān)控畫面上位機(jī)監(jiān)控畫面如圖11、12、13所示:圖11 上位機(jī)監(jiān)控畫面p:100 i:0.50 d:0.00 當(dāng)前溫度:69.31 設(shè)定溫度:70.00圖12 上位機(jī)監(jiān)控畫面p:110.00 i:0.50 d:0.00 當(dāng)前溫度:69.93 設(shè)定溫度:70.00圖13 上位機(jī)監(jiān)控畫面p:115.0 i:0.30 d:0.25 當(dāng)前溫度:65.01 設(shè)定溫度:65.00 5.2 結(jié)果分析從效果可以看出系統(tǒng)實(shí)現(xiàn)靜態(tài)鍋爐溫度控制,無超調(diào),穩(wěn)態(tài)誤差小于0.3,通過對比可以驗(yàn)證出如果比例系數(shù)增大,則系統(tǒng)的動作靈敏響應(yīng)速度加快,穩(wěn)態(tài)誤差減小,如果kp偏大則導(dǎo)致調(diào)節(jié)時間加長。kp太大時,系統(tǒng)會趨于不穩(wěn)定,kp太小又會使系統(tǒng)動作緩慢,在系統(tǒng)穩(wěn)定的情況下,隨著kp的增大,可以減小穩(wěn)態(tài)誤差但不能消除穩(wěn)態(tài)誤差。動態(tài)時,積分控制常使系統(tǒng)的穩(wěn)定性下降ti值太小,系統(tǒng)不穩(wěn)定,ti值偏小,容易引起系統(tǒng)振蕩,ti值太大,對系統(tǒng)的影響將消弱,穩(wěn)態(tài)時,積分控制可以消除系統(tǒng)靜態(tài)誤差,提高系統(tǒng)精度,但ti值太大時,因積分控制作用的削弱,反而不能減小穩(wěn)態(tài)誤差;微分時間td對系統(tǒng)性能的主要作用是減小超調(diào)量、縮短調(diào)節(jié)時間、允許加強(qiáng)比例控制,從而減小穩(wěn)態(tài)誤差,提高控制精度和改善動態(tài)特性等。結(jié)束語 本課題研究制作的msp430單片機(jī)的溫度pid算法設(shè)計(jì)借助iar軟件設(shè)計(jì)平臺實(shí)現(xiàn)了主程序、pid算法、adc模數(shù)轉(zhuǎn)換、定時器設(shè)置、異步通訊以及上位機(jī)組態(tài)王與單片機(jī)的通訊程序,實(shí)現(xiàn)了單片機(jī)對電加熱鍋爐靜態(tài)水的溫度控制,通過對pid參數(shù)的設(shè)置實(shí)現(xiàn)了溫度監(jiān)控曲線溫度控制超調(diào)量0.5,穩(wěn)態(tài)誤差 0; i-);/等待8mhz晶體起振 while (ifg1 & ofifg);/晶振失效標(biāo)志仍然存在? bcsctl2 |= selm_2 + sels;/mclk和smclk選擇高頻晶振 void parameter_init(void) operating_paramrter0 = p;/p operating_paramrter1 = i;/i operating_paramrter2 = d;/doperating_paramrter3 = pre_temp;/當(dāng)前溫度 operating_paramrter4 = set_temp;/設(shè)定溫度 operating_paramrter8 = pid_out;/pid_out operating_paramrter9 = ad_result; operating_paramrter10 = pwm_duty;/pwm_duty void read_data_from_slave(void) operating_paramrter0 = p; operating_paramrter1 = i; operating_paramrter2 = d; operating_paramrter3 = pre_temp;/讀取當(dāng)前溫度 operating_paramrter4 = set_temp;/讀取設(shè)定溫度 operating_paramrter5 = p_out;/p_out operating_paramrter6 = i_out;/i_out operating_paramrter7 = d_out;/d_out operating_paramrter8 = pid_out;/pid_out operating_paramrter9 = ad_result;/ad_average operating_paramrter10 = pwm_duty;/pwm_dutyvoid writer_data_to_slave( ) p = operating_paramrter0 ; i = operating_paramrter1 ; d = operating_paramrter2 ; set_temp = operating_paramrter4 ;void para_speci_show(void) spi_lcd_showstring(5,6,p:,0, red,16); spi_lcd_showstring(5,20,i:,0, red,16); spi_lcd_showstring( 5,34,d:,0, red,16 ); spi_lcd_showstring( 5,48,pre_temp:,0, red,16 ); spi_lcd_showstring( 5,62,set_temp:,0, red,16 ); spi_lcd_showstring( 5,160,step:,0, red,16 );void parameter_show( ) spi_lcd_show_float( 165,6,p,0,red,16); spi_lcd_show_float( 165,20,i,0,red,16); spi_lcd_show_float( 165,34,d,0,red,16); spi_lcd_show_float( 165,48,pre_temp,0,red,16); spi_lcd_show_float( 165,62,set_temp,0,red,16)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021-2026年中國流掛儀行業(yè)市場全景調(diào)研及投資規(guī)劃建議報告
- 2022-2027年中國網(wǎng)紅餐廳行業(yè)市場深度評估及投資前景預(yù)測報告
- 2025年中國燃油濾紙行業(yè)市場前瞻與投資戰(zhàn)略規(guī)劃分析報告
- 二零二五年高端住宅區(qū)建筑工程清包施工合同6篇
- 2020-2025年中國汽車焊接軸市場供需格局及投資規(guī)劃研究報告
- 2025年塑鋁箔復(fù)合板行業(yè)深度研究分析報告
- 2024私人房屋買賣合同協(xié)議
- 二零二五年度證券經(jīng)紀(jì)代理合同范本4篇
- 基于2025年度市場需求的廣告投放代理合同3篇
- 二零二五年度網(wǎng)絡(luò)安全監(jiān)測與托管服務(wù)合同
- 火災(zāi)安全教育觀后感
- 農(nóng)村自建房屋安全協(xié)議書
- 快速康復(fù)在骨科護(hù)理中的應(yīng)用
- 國民經(jīng)濟(jì)行業(yè)分類和代碼表(電子版)
- ICU患者外出檢查的護(hù)理
- 公司收購設(shè)備合同范例
- 廣東省潮州市2023-2024學(xué)年高二上學(xué)期語文期末考試試卷(含答案)
- 2024年光伏發(fā)電項(xiàng)目EPC總包合同
- 子女放棄房產(chǎn)繼承協(xié)議書
- 氧化還原反應(yīng)配平專項(xiàng)訓(xùn)練
- 試卷(完整版)python考試復(fù)習(xí)題庫復(fù)習(xí)知識點(diǎn)試卷試題
評論
0/150
提交評論