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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)的水溫控制系統(tǒng)(文件)

2024-12-24 18:53 上一頁面

下一頁面
 

【正文】 兩式相減得到增量法計(jì)算公式 : ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ?? ?2121 ????????? teteteKteKteteKP diptd l t ( 46) 這里 對 ? 項(xiàng)的表示應(yīng)該是對 ??te 從 1 到 t 全部總和。如果 有誤差,積分調(diào)節(jié)就進(jìn)行,直至無差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出一 常值。 微分調(diào)節(jié)作用:微分作用反映系統(tǒng)偏差信號的變化 率,具有預(yù)見性,能預(yù)見偏差變化的趨勢,因此能產(chǎn)生超前的控制作用。微分作用對噪聲干擾有放大作用,因此過強(qiáng)的加微分調(diào)節(jié),對系統(tǒng)抗干擾不利。下面討論 PID 控制的兩種算法 : 第一種是位置式 PID 算法。 可以看出 )(ku 是全量輸出,是執(zhí)行機(jī)構(gòu)所應(yīng)達(dá)到的位置 。 由式( 48)不難寫出 )1( ?ku 的表達(dá)式,即 : [8] T kekeTieTTkeKku dkjip )2()1()()1([)1( 10 ???????? ??? ( 49) 將式( 48)和式( 49)相減,即得數(shù)字 PID 增量型控制算法為 : )1()()( ???? kukuku )2()1(2)([ )()]1()([ ????? ???? kekekeK keKkekeK d ip ( 410) ``畢業(yè)(設(shè)計(jì))論文 20 圖 46 增量式 PID 算法流程圖 開 始 讀取給定 ??kx 將給定 ??ky0 賦給 ??ky 求偏差? ? ? ? ? ?kykxke ?? ? ? ? ?? ? ? ?? ?? ?? ? ? ? ? ?? ?21211???????????kekekekkekkekekkukudip ? ? ? ?? ? ? ?? ? ? ?1。為了敘述方便, 采用控制時(shí)間比例的方法 : 設(shè)定一 個(gè)標(biāo)準(zhǔn)的加溫周期,例如 兩 分鐘。 這里除了加溫以外的時(shí)間 就用來 等待下一個(gè)周期到來,再進(jìn)行實(shí)際測量,計(jì)算下一周期的輸出量,周而復(fù)始,不斷地修正 輸出量,以達(dá)到對溫度的有效控制。 對 2 分鐘進(jìn) 行 200 等分, 每一個(gè)基本單位的具體時(shí)間 如下: mssT o ???? 這對于單片機(jī)來說 定時(shí)周期 太長。對應(yīng)于總周期的修改, 200 等 分可以不用修改,而只要修改 變量 templT 的判斷邊界就可以了。 PID 的三個(gè)基本參數(shù) pK , iK , dK 一般由試驗(yàn)確定:根據(jù) 實(shí)際工作對象去初步確定,然后在實(shí)際運(yùn)行過程中進(jìn)行調(diào)節(jié),以達(dá)到相對理想的效果。 獲得 0- 200℃ 加溫比例數(shù)據(jù) 的計(jì)算方法:為了說明這個(gè)問題,先假`基于單片機(jī)的水溫控制系統(tǒng) 23 定只考慮最簡單的比例控制算法。 假定當(dāng)前實(shí)測溫度為 222℃ ,則 230- 222= 8 再乘以 4 算得 32,這就作為輸出比例數(shù)據(jù)。當(dāng)溫度突然下降 1℃ 時(shí), 希望用多少比例去進(jìn)行下一輪的加熱, 這就是微分系數(shù);經(jīng)過這么久的控制,目標(biāo)溫度還是低了一點(diǎn),希望用多少的比例去彌補(bǔ)這 個(gè)長期欠溫, 這就是積分常數(shù)。 例如當(dāng)計(jì)算結(jié)果大于 200 時(shí)按 200 輸出,計(jì)算結(jié)果小于零時(shí)按零輸出。 運(yùn)算將會(huì)占用很長的時(shí)間,這是相對于一個(gè)基本定時(shí)周期來講的 。 這樣編制的主程序就非常清晰明了,這 是比較理想的情況。 此時(shí) 就需要對 PID 運(yùn)算 任務(wù) 進(jìn)行分割,把運(yùn)算分成幾個(gè)部分進(jìn)行,每一次進(jìn)入運(yùn)算程序只計(jì)算其中的一小部分,經(jīng)過 N 次 的調(diào)用才完成一個(gè)完整的 PID 運(yùn)算,這樣就不會(huì)影響整個(gè)系統(tǒng)的運(yùn)作 。 PID 的輸出部分可以放到系統(tǒng)定時(shí)中斷 程序 里處理,這部分占用的時(shí)間不長,可以附帶完成。 另外,對有些參數(shù)如積分項(xiàng)的累加數(shù)過大時(shí)會(huì)起反作用, 或者調(diào)節(jié)失靈,或者引起大幅振蕩,為此對此 項(xiàng)引入一個(gè) 數(shù)值最大界限,當(dāng)結(jié)果超出 規(guī)定 界限時(shí),不再增加(或減少)。在進(jìn)入控制之前積分項(xiàng)記錄數(shù)據(jù)為 0。 本設(shè)計(jì)采用繼電器 ,因此 周期設(shè)定范圍 在 1- 10 分鐘 內(nèi) 較為合適。 下圖為主程序調(diào)試結(jié)果: 圖 51 主 程序調(diào)試結(jié)果 ``畢業(yè)(設(shè)計(jì))論文 28 軟 件 安裝 全部源 代碼 調(diào)試無誤后,對 其 進(jìn)行編譯,生成可執(zhí)行代碼, 然后 導(dǎo)出可執(zhí)行代碼的 .hex 文件。以往的方法都是人工測定、手工操作、 肉眼觀察,既費(fèi)時(shí)費(fèi)力、準(zhǔn)確度低、實(shí)時(shí)性差, 又不利于工人的操作安全 。調(diào)節(jié)加溫時(shí)間方法原理在論文中已做了詳細(xì)介紹,這里不再多說。所以如果要提高系統(tǒng)穩(wěn)定性,應(yīng)采用 Simth 預(yù)估算法 。這些經(jīng)驗(yàn)和教訓(xùn)皆來之不易,必將為日后的工作和學(xué)習(xí)打下夯實(shí)的基礎(chǔ)。 ``老師以其嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度、高度的敬業(yè)精神、兢兢業(yè)業(yè)、孜孜以求的工作作風(fēng)和大膽創(chuàng)新的進(jìn)取精神對我產(chǎn)生了重要影響。還要感謝 ``、 ``和 ``同學(xué)對我編程方面的無私幫助,使我得以順利完成論文。 define Time1s 2。 // 積分常數(shù) Integral Const float Derivative。 // 誤差累計(jì)值 } PID。 enum system_status { system_temperature_set,system_temperature_control}。 //AD 轉(zhuǎn)換值的處理函數(shù) void active()。 void temperature_speech_index(unsigned int * p_speech)。 //保存顯示的 LED 數(shù)字 int iAddrSpeech。 System_Initial()。 while(1){ iKeyValue = SP_GetCh()。 //測量 溫度顯示、溫度播報(bào)、PID 計(jì)算 Clear_WatchDog()。 = 0。 // 偏差 ppSumError += Error。 return (ppProportion * Error // 比例項(xiàng) + ppIntegral * ppSumError // 積分項(xiàng) + ppDerivative * dError // 微分項(xiàng) )。 if(G_ADC_flag){ //判斷是否有溫度采樣 1,有 0,無 G_ADC_flag = 0。 //確定溫度系數(shù) else K = 。 guiLED_Value[2] = (int)(fT*10)%10。 // 開始對A2021 的語音數(shù)據(jù)以非自動(dòng)方式解碼 SP_INT_IRQ6()。 } = 。stPID,(int)(fT*10) )。 //停止計(jì)時(shí) } else{ if(fOut30*)//溫度低于設(shè)定值 2 攝氏度 turn_on_relay()。 int min。 for(i=1。 for(i=1。i11。 } //========================================================== //函數(shù): void key_value_process(int key) //語法: void key_value_process(int key) //描述: 按鍵值的處理 //參數(shù): 鍵值 //返回: 無 //========================================================== void key_value_process(int key) { int iAddr。 } break。 case 4: if(status == system_temperature_set){ temperature_speech_index(guiLED_Value)。 //開始對A2021 的語音數(shù)據(jù)以非自動(dòng)方式解碼 guifgSpeechPlay = 1。 SACM_A2021_Initial(0)。 if(guiLED_Value[1]==10) guiLED_Value[1] = 0。 case 1: if(status == system_temperature_set){ //溫度設(shè)置狀態(tài)下 guiLED_Value[0]++。 //累計(jì)值 Sum = Sum maxmin。i++){ if(giADC_DataSave[i]min) min = giADC_DataSave[i]。i++){ if(giADC_DataSave[i]max) max = giADC_DataSave[i]。 int i。SP_INT_TIMEB()。 } } //========================================================== //函數(shù) : void active() //語法: void active() //描述: PID 輸出值的處理 //參數(shù):無 //返回:無 //========================================================== void active(){ if(fOut=0){ turn_off_relay()。 // 設(shè)置 PID 積分值 = 。//語音播放始地址 guifgSpeechPlay = 1。 //溫度整數(shù)值語音播放 SACM_A2021_Initial(0)。 //換算成溫度值 guiLED_Value[0] = (int)fT/10。 adc_data /= SET_ADC_TIME。 int adc_data。 // 當(dāng)前微分 ppPrevError = ppLastError。 } //========================================================== //函數(shù) :float PIDCalc( PID *pp, int NextPoint ) //語法: float PIDCalc( PID *pp, int NextPoint ) //描述: PID 計(jì)算 //參數(shù): PID 數(shù)值 采樣溫度值 //返回: PID 輸出值 //========================================================== float PIDCalc( PID *pp, int NextPoint ) { int dError, Error。 //鍵盤掃描 if(fOut=0) turn_off_timerB()。 //鍵值處理 if(guifgSpeechPlay) temperature_speech_play( )。 //turn_off_relay()。 status = system_temperature_set。 unsigned int giADC_DataSave[11] 。 int adc_data_cmp()。 ``畢業(yè)(設(shè)計(jì))論文 34 float PIDCalc( PID *pp, int NextPoint )。 int fOut=0。 // Error[1] int PrevError。 // 設(shè)定目標(biāo) Desired Value float Proportion。 // 組成文件 : // /
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1