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

正文內(nèi)容

基于飛思卡爾16位單片機(jī)電磁型智能小車的設(shè)計(jì)(參考版)

2025-06-25 02:25本頁面
  

【正文】 IDE Help for Code Warrior Plugin for MotorolaC程序設(shè)計(jì)新型PID控制及其應(yīng)用計(jì)算機(jī)控制系統(tǒng)數(shù)字電子技術(shù)基礎(chǔ)模擬電子技術(shù)基礎(chǔ)摩托羅拉68HC12系列微控制器原理、應(yīng)用與開發(fā)技術(shù)單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法CarMagneticAdjust()。} else if(g_nCarSpeedCount == 4) {g_nCarMagneticLeftAverage = (int)CV_MAGNETLEFT_VAL。CalculateMotorLeftRightDiff()。g_nLeftMotorSpeedCount = 0。if(g_nCarMotionCount = CAR_MOTION_PERIOD) {g_nCarMotionCount = 0。CarAngleAdjust()。} else if(g_nCarSpeedCount == 1) {ADC_Measure(0)。g_nLeftMotorSpeedCount += g_nLeftMotorSpeed。g_lnCarLeftPosition += g_nLeftMotorSpeed。if(!MOTOR_LEFT_SPEED_POSITIVE)g_nLeftMotorSpeed = g_nLeftMotorSpeed。g_nLeftMotorSpeed = (int)nLeftMotorSpeed。nRightMotorSpeed)。GetMotorSpeed(amp。g_nCarSpeedCount ++。g_nMotorLeftRightDiff = nP。if(nSigma == 0) return。lnDelta = g_nCarMagneticRightAverage g_nCarMagneticLeftAverage。long lnDelta。g_nLeftMotorOutSpeed = g_nRightMotorOutSpeed = nValue。nValue = g_nMotorOutSpeedNew g_nMotorOutSpeedOld。if(g_nMotorOutSpeedKeep MOTOR_OUT_MIN)g_nMotorOutSpeedKeep = MOTOR_OUT_MIN。g_nMotorOutSpeedNew = (g_nMotorOutSpeedKeep 3) nP。g_nMotorOutSpeedOld = g_nMotorOutSpeedNew。nP = mult_r(nDeltaValue, MOTOR_SPEED_P_INT)。nSpeed = (nLeftSpeed + nRightSpeed) / 2。nLeftSpeed = (int)g_nLeftMotorSpeedCount。int nDeltaValue, nP, nI。MotorSpeedOut()。if(g_nRightMotorOut MOTOR_OUT_MAX) g_nRightMotorOut = MOTOR_OUT_MAX。if(g_nLeftMotorOut MOTOR_OUT_MAX) g_nLeftMotorOut = MOTOR_OUT_MAX。g_nLeftMotorOut = nLeft 6。nLeft = nSpeed + g_nLeftMotorOutSpeed g_nMotorLeftRightDiff。 if(nSpeedMOTOR_SPEED_SET_MAX)nSpeed=MOTOR_SPEED_SET_MAX。nD = (int)mult_r(nD, CAR_AA_D_INT)。nP = (int)mult_r(nP, CAR_AA_P_INT)。int nP, nD。} (車模傾角計(jì)算)void CarAngleAdjust(void) {int nLeft, nRight。lnDeltaValue = lnDeltaValue * CAR_ACCE_RATIO。g_nCarAngle = (int)(g_lnCarAngleSigma 10)。g_nCarGyroVal = (int)(g_nCarGyroVal CV_GYRO_ZERO)。g_nCarAcceVal = mult_r(g_nCarAcceVal, CV_ACCE_ANGLE_RATIO)。lnDeltaValue = lnDeltaValue (int)CV_ACCE_OFFSET。ADC_GetValue16(g_nCarVoltage)。MOTOR_SET(nLeftVal, nRightVal)。nLeftVal = nLeftVal 4。if(nRightVal MOTOR_OUT_MAX) nRightVal = MOTOR_OUT_MAX。if(nLeftVal MOTOR_OUT_MAX) nLeftVal = MOTOR_OUT_MAX。if(nRightVal 0) nRightVal += MOTOR_OUT_DEAD_VAL。if(nLeftVal 0) nLeftVal += MOTOR_OUT_DEAD_VAL。nLeftVal = g_nLeftMotorOut。setReg(PWM_PWMVAL3, nRightVol)。nRightVol = nRightVol。setReg(PWM_PWMVAL2, nRightVol)。}if(nRightVol 0) {setReg(PWM_PWMVAL3, 0)。nLeftVol = mult(nLeftVol, nPeriod)。} else {nLeftVol = nLeftVol。nLeftVol = mult(nLeftVol, nPeriod)。nPeriod = (short)getReg(PWM_PWMCM)。對于那些不足之處還望老師多多包涵。通過這次設(shè)計(jì)我更進(jìn)一步認(rèn)識到自動控制的理論以及設(shè)計(jì),提高了我的理論水平和實(shí)踐能力,也使我認(rèn)識到只有通過不斷的探討改進(jìn)才能真正獲得能力上的提升,在失敗的時(shí)候如果不能克服困難、抵住壓力,那么任何設(shè)計(jì)都進(jìn)毫無進(jìn)展。使得小車正常運(yùn)行的控制算法主要是舵機(jī)控制和小車速度控制,其中舵機(jī)通過控制輸出的PWM信號進(jìn)行開環(huán)控制,采用PID控制調(diào)節(jié)速度。在小車的硬件設(shè)計(jì)部分,采取了模塊化的設(shè)計(jì),其組成部分為單片機(jī)最小系統(tǒng)、傾角傳感器電路、速度傳感器電路、電機(jī)驅(qū)動電路、電磁線檢測電路。此外,也可以在防撞支架上安裝車模跌倒檢測開關(guān),一旦車模傾倒,控制電路便立即停止運(yùn)行。固定電路板應(yīng)盡可能貼近車模的底盤,使其能夠穩(wěn)固。這樣可以最大程度減少車模運(yùn)行時(shí)前后振動對于測量傾角的干擾。它們都是表貼元器件,固定在電路板上。 電磁傳感器安裝支架示意圖為了避免車模在通過十字交叉線路口時(shí)受到的影響,在固定兩個(gè)電感線圈的時(shí)候,盡量保持這兩個(gè)線圈呈水平位置。為了能夠更好的檢測前面的道路,一般將這兩個(gè)工字型的電感盡可能的安裝在車模運(yùn)行前方較遠(yuǎn)的地方。測速傳感器固定完畢之后,便可以將后輪重新安裝在后輪的支架上。此時(shí)可以使用熱熔膠將光電對管固定在后輪支架上固定光電對管,使得光電碼盤在對管的中間縫隙中通過。固定光電碼盤可以使用復(fù)合膠水,將光電碼盤的塑料軸與電機(jī)的輸出銅軸粘合。圖 拆掉后輪之后的車模 傳感器安裝車模中的傳感器包括有:速度傳感器,車模姿態(tài)傳感器(陀螺儀、加速度計(jì))以及電磁檢測感應(yīng)線圈。(3) 去掉后輪,準(zhǔn)備安裝電機(jī)測速光碼盤拆裝后輪可以使用原車模配備的十字套筒扳手。 所示為熱熔膠粘接的位置。最簡便的方式就是可以使用熱熔膠在后輪支架與底盤之間的縫隙處進(jìn)行粘接。 (2) 固定車模底盤與后輪支架原有車模為了減輕后輪振動對于車體的影響,后輪的支架與底盤之間采用了活動連接方式。 智能車機(jī)械設(shè)計(jì) 車模簡化改裝 (1)去掉前輪及其支撐部件,去掉后輪懸掛緩沖支架拆卸后的情況如圖 、 。(6) 車模方向控制調(diào)試:啟動車模的直立控制、速度控制和方向控制。(5)車模速度控制調(diào)試:啟動車模的直立控制和速度控制,調(diào)節(jié)速度控制的 PI 參數(shù),使得車模能夠靜止穩(wěn)定在一個(gè)地點(diǎn)。可以通過微調(diào)加速度計(jì)的零偏值,減小車模在直立的時(shí)候朝一個(gè)方向的加速度。(4)車模直立控制調(diào)試:只啟動車模直立控制,調(diào)整兩個(gè)控制參數(shù):傾角比例和角速度比例,使得車模能夠穩(wěn)定的直立。一般情況下,車模直立要求,車模傾角在正負(fù)10 度之內(nèi),保持2 秒鐘。(3)測試車模直立判斷程序和跌倒判斷程序。保持車模直立靜止。在此過程中,測試車模電機(jī)死區(qū)補(bǔ)償電壓數(shù)值:MOTOR_OUT_DEAD_VAL。以下為程序參數(shù)調(diào)試步驟:(1)電機(jī)PWM 輸出調(diào)試:程序給出兩個(gè)電機(jī)固定的PWM 輸出。但是由于受到車模模型精度的影響,計(jì)算所得到的參數(shù)也只能夠作為參考值——調(diào)試的起始范圍。CarMagneticAdjust()。} else if(g_nCarSpeedCount == 4) {g_nCarMagneticLeftAverage = (int)CV_MAGNETLEFT_VAL。CalculateMotorLeftRightDiff()。g_nLeftMotorSpeedCount = 0。if(g_nCarMotionCount = CAR_MOTION_PERIOD) {g_nCarMotionCount = 0。CarAngleAdjust()。} else if(g_nCarSpeedCount == 1) {ADC_Measure(0)。g_nLeftMotorSpeedCount += g_nLeftMotorSpeed。g_lnCarLeftPosition += g_nLeftMotorSpeed。if(!MOTOR_LEFT_SPEED_POSITIVE)g_nLeftMotorSpeed = g_nLeftMotorSpeed。g_nLeftMotorSpeed = (int)nLeftMotorSpeed。nRightMotorSpeed)。GetMotorSpeed(amp。g_nCarSpeedCount ++。g_nMotorLeftRightDiff = nP。if(nSigma == 0) return。lnDelta = g_nCarMagneticRightAverage g_nCarMagneticLeftAverage。long lnDelta。CMA_P_MAX 可以通過實(shí)驗(yàn)逐步確定一個(gè)合適的取值。 之間。以下算法中,采用了比例控制算法。程序 車模速度控制子程序車模方向控制子程序車模方向控制是通過比較車模兩個(gè)電感檢波電壓進(jìn)行的。g_nLeftMotorOutSpeed = g_nRightMotorOutSpeed = nValue。nValue = g_nMotorOutSpeedNew g_nMotorOutSpeedOld。if(g_nMotorOutSpeedKeep MOTOR_OUT_MIN)g_nMotorOutSpeedKeep = MOTOR_OUT_MIN。g_nMotorOutSpeedNew = (g_nMotorOutSpeedKeep 3) nP。g_nMotorOutSpeedOld = g_nMotorOutSpeedNew。nP = mult_r(nDeltaValue, MOTOR_SPEED_P_INT)。nSpeed = (nLeftSpeed + nRightSpeed) / 2。nLeftSpeed = (int)g_nLeftMotorSpeedCount。int nDeltaValue, nP, nI。這樣可以降低速度控制對于車模直立控制的影響。所以程序并沒有直接更新g_nLeftMotorSpeedOut , g_nRightMotorSpeedOut 的數(shù)值, 而是通過調(diào)用函數(shù)CalculateMotorSpeedOut()更新上面的數(shù)值。計(jì)算得到 g_nLeftMotorSpeedOut,g_nRightMotorSpeedOut。對于 PI 調(diào)節(jié)算法中的參數(shù)整定可以參照一般PI 參數(shù)整定的方法進(jìn)行。}程序 車模直立控制子程序 車模速度控制子程序車模速度控制采用了典型的 PI 控制算法。if(g_nRightMotorOut MOTOR_OUT_MIN) g_nRightMotorOut = MOTOR_OUT_MIN。if(g_nLeftMotorOut MOTOR_OUT_MIN) g_nLeftMotorOut = MOTOR_OUT_MIN。g_nRightMotorOut = nRight 6。nRight = nSpeed + g_nRightMotorOutSpeed + g_nMotorLeftRightDiff。else if(nSpeed MOTOR_SPEED_SET_MIN) nSpeed = MOTOR_SPEED_SET_MIN。nSpeed = nD + nP。nD = g_nCarGyroVal 5。nP = g_nCarAngle。int nSpeed。由于現(xiàn)在還沒有加入速度閉環(huán),所以由于加速度傳感器零偏的誤差,會導(dǎo)致車模在直立的時(shí)候會往一個(gè)方向加速行駛。然后逐步增加這兩個(gè)數(shù)值,直到車模開始抖動,然后略減少這兩個(gè)數(shù)值即可。逐步加大CAR_AA_P_INT 數(shù)值,直到車模開始前后震蕩。其中涉及到兩個(gè)關(guān)鍵控制系數(shù):k1:CAR_AA_P_INT: 傾角比例
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1