亚洲国产成人AⅤ片在线观看_丝袜无码国产在线看_亚洲AV无码国产精品色午夜洪_亚洲精品第四页中文字幕_一区二区三区在线视频不卡_亚洲一区二区精品动漫最熱門最齊全電影!_97人妻碰碰视频_日韩国产毛片在线_美女被躁嗷嗷叫免费视频_俄罗斯胖老太牲交

北京車窗控制器好用排名

發(fā)表時(shí)間:2021-09-04 00:41
之前的幾篇文章(電機(jī)節(jié)制根底篇),介紹的電機(jī)編碼器事理、按時(shí)器輸出PWM、按時(shí)器編碼器模式測(cè)速等。本篇在前幾篇的根底上,繼續(xù)來(lái)進(jìn)修電機(jī)節(jié)制,經(jīng)由過(guò)程PID算法,來(lái)進(jìn)行電機(jī)的速度節(jié)制,并進(jìn)行考試考試測(cè)試。PID根底PID即:Proportional(比例)、Integral(積分)、Differential(微分)的縮寫。PID是經(jīng)典的閉環(huán)節(jié)制算法,具有事理簡(jiǎn)單,易于實(shí)現(xiàn),合用面廣,節(jié)制參數(shù)彼此自力,參數(shù)的選定斗勁簡(jiǎn)單等益處。凡是需要將某一個(gè)物理量“連結(jié)不變”的場(chǎng)所(好比連結(jié)平衡,不變溫度、轉(zhuǎn)速等),PID城市派上除夜用處。PID算法分類PID算法可分為位置式PID與增量式PID兩除夜類。在現(xiàn)實(shí)的編程操作中,需要操作離散化的PID算法,以合用計(jì)較機(jī)的操作氣象,下面以電機(jī)轉(zhuǎn)速節(jié)制為例,來(lái)看一下兩種PID算法的根底事理。位置式PID位置式PID是當(dāng)前系統(tǒng)的現(xiàn)實(shí)位置,與想要達(dá)到的預(yù)期位置的誤差,進(jìn)行PID節(jié)制比例P:e(k) 此次誤差積分I:∑e(i) ?誤差的累加微分D:e(k) - e(k-1) 此次誤差-上次誤差因?yàn)橛姓`差積分 ∑e(i),一貫累加,也就是當(dāng)前的輸出u(k)與疇昔的所有狀況都有關(guān)系。位置式PID算法的偽代碼以下://位置式PID(偽代碼)previous_err = 0integral = 0loop: //遵循方針值與測(cè)量值(如電機(jī)的設(shè)定速度與讀到的編碼器轉(zhuǎn)后后的速度),輪回計(jì)較更新輸出值(如PWM) error = setpoint - measured_value /*誤差項(xiàng):方針值-測(cè)量值*/ integral = error * dt /*積分項(xiàng):誤差項(xiàng)的累計(jì)*/ derivative = (error - previous_error) / dt /*微分項(xiàng):誤差的改變率*/ output = Kp*error Ki*integral Kd*derivative /*三項(xiàng)分袂乘以PID系數(shù)即為輸出*/ previous_err = err //更新誤差 wait(dt) //期待固定的計(jì)較周期 goto loop增量式PID比例P:e(k) - e(k-1) 此次誤差-上次誤差積分I:e(k) 此次誤差d微分D:e(k) - 2e(k-1) e(k-2) ?此次誤差-2×上次誤差 上上次誤差寄望增量式PID首先計(jì)較的是Δu(k),然后與上次的輸出相加,才是此次的輸出功能。增量式PID沒(méi)有誤差累加,節(jié)制增量Δu(k)的必定僅與比來(lái)3次的采樣值有關(guān)。增量式PID算法的偽代碼以下://增量式PID(偽代碼)previous02_error = 0 //上上次誤差previous01_error = 0 //上次誤差integral = 0 //積分和pid_out = 0 //pid增量累加和loop: error = setpoint ? measured_value /*誤差項(xiàng):方針值-測(cè)量值*/ proportion = error - previous01_error /*比例項(xiàng):誤差項(xiàng)-上次誤差*/ integral = error * dt /*積分項(xiàng):誤差項(xiàng)的累計(jì)*/ derivative = (error ? 2*previous01_error previous02_error) / dt/*微分項(xiàng):上次誤差與上上次誤差的改變率*/ /*或?qū)懗桑篸erivative = ( (error ? previous01_error)/dt - (previous01_error - previous02_error)/dt )*/ pid_delta = Kp × error Ki × integral Kd × derivative //計(jì)較獲得PID增量 pid_out = pid_out pid_delta //計(jì)較事實(shí)下場(chǎng)的PID輸出 previous02_error = previous01_error //更新上上次誤差 previous01_error = error //更新上次誤差 wait(dt) //期待固定的計(jì)較周期 goto loopPID各項(xiàng)的浸染以這個(gè)彈簧為例(假定沒(méi)有重力,只有空氣阻力),先是在平衡位置上(方針位置),拉它一下,然后松手,這時(shí)辰它會(huì)震動(dòng)起來(lái)。P 比例P就是比例的意思。這里就類比彈簧的彈力(回覆力):F=k*Δx當(dāng)物塊距離平衡位置越遠(yuǎn)時(shí),彈力越除夜,反之,離平衡位置越近,力越小。當(dāng)物塊位于平衡位置上方時(shí),彈性向下,當(dāng)物塊位于平衡位置下方時(shí),彈性向上,即彈力老是使物塊朝平衡位置施力。D 微分/求導(dǎo)/改變率只有P節(jié)制,物塊一貫在上下震動(dòng),全數(shù)系統(tǒng)不是出格不變。這是因?yàn)榭諝庾枇μ。胂笠幌氯珨?shù)把它放到水里,物塊理當(dāng)很快會(huì)靜止下來(lái)。這時(shí)辰因?yàn)樽枇Φ慕?。D的浸染就相當(dāng)于阻力:它與改變速度(單元時(shí)刻內(nèi)的改變量)有關(guān),改變的越除夜,它施加的阻力也就越除夜它的標(biāo)的方針與方針值無(wú)關(guān),好比,當(dāng)物塊從下到上經(jīng)由平衡位置時(shí),它的標(biāo)的方針一貫是朝下,即先是禁止物塊接近平衡位置,再是禁止物塊遠(yuǎn)離平衡位置(對(duì)比P的浸染,始終禁止物塊遠(yuǎn)離平衡位置)它的浸染就是減小系統(tǒng)的超調(diào)量了(削減系統(tǒng)在平衡位置震動(dòng))I 積分/誤差堆集有了P的動(dòng)力和D的阻力,這個(gè)物塊便可以較快的不變下來(lái)了,那I的浸染是甚么呢?想象一下,假若有其它外力的影響,在某一時(shí)刻,物塊將要達(dá)到平衡位置時(shí),剛好P的動(dòng)力與外力(與P的浸染標(biāo)的方針相反的恒定力)抵消,則往后物塊將停在此處四周(因?yàn)榇藭r(shí)D的力也趨近0,并很快釀成0),一貫達(dá)到不了平衡位置。這時(shí)辰,I的誤差積分浸染就很有需要了:它計(jì)較的誤差的累計(jì),只要有誤差,它就一貫增添,早可能很小,但只要沒(méi)要達(dá)到平衡位置,該值就會(huì)愈來(lái)愈除夜它的浸染就是消弭系統(tǒng)的靜態(tài)誤差了PID參數(shù)整定現(xiàn)實(shí)操作,進(jìn)行PID參數(shù)調(diào)劑時(shí),一般操作試湊法,PID參數(shù)整定口訣以下:參數(shù)整定找,從小到除夜順次查,先是比例后積分,再把微分加,曲線振蕩很頻仍,比例度盤要放除夜,曲線漂浮繞除夜灣,比例度盤往小扳,曲線偏離回覆慢,積分時(shí)刻往下降,曲線波動(dòng)周期長(zhǎng),積分時(shí)刻再加長(zhǎng),曲線振蕩頻率快,先把微分降下來(lái),動(dòng)差除夜來(lái)波動(dòng)慢,微分時(shí)刻應(yīng)加長(zhǎng),理想曲線兩個(gè)波,前高后低4比1,一看二調(diào)多分化,調(diào)劑質(zhì)量不會(huì)低。電機(jī)PID速度節(jié)制上面介紹了PID的根底常識(shí),接下來(lái)就操作位置式PID來(lái)實(shí)現(xiàn)對(duì)直流電機(jī)轉(zhuǎn)速的節(jié)制。法度楷模自界說(shuō)PID結(jié)構(gòu)體typedef struct{ float target_val //方針值 float err //誤差值 float err_last //上一個(gè)誤差值 float Kp,Ki,Kd //比例、積分、微分系數(shù) float integral //積分值 float output_val //輸出值}PIDPID算法實(shí)現(xiàn)(位置式PID)float PID_realize(float actual_val){ /*計(jì)較方針值與現(xiàn)實(shí)值的誤差*/ pid.err = pid.target_val - actual_val /*積分項(xiàng)*/ pid.integral = pid.err /*PID算法實(shí)現(xiàn)*/ pid.output_val = pid.Kp * pid.err pid.Ki * pid.integral pid.Kd * (pid.err - pid.err_last) /*誤差傳遞*/ pid.err_last = pid.err /*返回當(dāng)前現(xiàn)實(shí)值*/ return pid.output_val}周期挪用PID計(jì)較//周期按時(shí)器的回調(diào)函數(shù)void AutoReloadCallback(){ int sum = 0/*編碼器值(PID輸入)*/ int res_pwm = 0/*PWM值(PID輸出)*/ /*讀取編碼器測(cè)量的速度值*/ sum = read_encoder() /*進(jìn)行PID運(yùn)算,獲得PWM輸出值*/ res_pwm = PID_realize(sum) /*遵循PWM值節(jié)制電無(wú)邪彈*/ set_motor_rotate(res_pwm) /*給上位機(jī)通道1發(fā)送現(xiàn)實(shí)值*/ set_computer_value(SEND_FACT_CMD, CURVES_CH1, sum, 1) }上位機(jī)這里操作野火多功能調(diào)試助手的"PID調(diào)試助手“來(lái)進(jìn)行考試考試,用于顯示PID調(diào)劑時(shí)的電機(jī)轉(zhuǎn)速曲線。考試考試演示方針?biāo)俣戎翟O(shè)為50(這里的方針值50操作的是編碼器10ms捕捉的脈沖數(shù)),經(jīng)由過(guò)程體調(diào)劑PID的參數(shù),來(lái)測(cè)試電性能否較快的達(dá)到方針?biāo)俣取O日{(diào)劑P【1】P值先操作10看看下場(chǎng),趕忙度曲線可以看出,達(dá)不到方針?biāo)俣龋遗c方針?biāo)俣认嗖钶^除夜。PID1000【2】P值加除夜到100,趕忙度曲線可以看出,仍是達(dá)不到方針?biāo)俣?。PID10000只操作P,會(huì)存在靜差,始終達(dá)到不了方針值,這時(shí)辰就要操作積分項(xiàng)來(lái)消弭靜差了。再調(diào)劑I【3】P連結(jié)100,I操作0.2,趕忙度曲線可以看出,可以達(dá)到方針?biāo)俣?,但仆從的速度較慢。PID1000.20【4】P連結(jié)100,加除夜I,操作1.0,趕忙度曲線可以看出,可以達(dá)到方針?biāo)俣?,仆從的速度加速了。PID1001.00【5】P連結(jié)100,繼續(xù)加除夜I,操作3.0,趕忙度曲線可以看出,可以達(dá)到方針?biāo)俣?,仆從的速度進(jìn)一步加速了。PID1003.00【6】P連結(jié)100,再繼續(xù)加除夜I,操作6.0,趕忙度曲線可以看出,可以達(dá)到方針?biāo)俣龋s忙度也很快,但有一點(diǎn)過(guò)沖。PID1006.00對(duì)過(guò)沖,可以再插手微分試試,微分D相當(dāng)于阻力的下場(chǎng)調(diào)劑D【7】P連結(jié)100,I連結(jié)6.0,D操作3.0,趕忙度曲線上,仿佛看不出較著的改變。PID1006.03.0【8】P連結(jié)100,I連結(jié)6.0,D加除夜到6.0,趕忙度曲線上看,過(guò)沖幅度減小了點(diǎn)。PID1006.06.0演示視頻相關(guān)文章[電機(jī)節(jié)制根底]:文中觸及到PWM節(jié)制,電機(jī)編碼器測(cè)速的常識(shí)可以看下根底篇的介紹專輯 | 電機(jī)節(jié)制1 編碼器計(jì)數(shù)事理與電機(jī)測(cè)速事理——多圖解析2 電機(jī)節(jié)制根底——按時(shí)器編碼器模式操作與轉(zhuǎn)速計(jì)較3 電機(jī)節(jié)制根底——按時(shí)器捕捉單輸入脈沖事理4 電機(jī)節(jié)制根底——按時(shí)器根底常識(shí)與PWM輸失蹤事理總結(jié)本篇簡(jiǎn)單介紹了PID的根底領(lǐng)理與參數(shù)整定,若想把PID參數(shù)調(diào)劑好,還需要不竭的實(shí)踐與調(diào)試。


分享到: