最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

STM32編程L298N驅(qū)動(dòng)直流有刷電機(jī)實(shí)現(xiàn)PID位置、速度雙閉環(huán)控制實(shí)現(xiàn)

2022-11-30 11:29 作者:老-_-白  | 我要投稿

為實(shí)現(xiàn)完成PID控制需要使用STM32定時(shí)器的輸出通道和互補(bǔ)輸出通道共同控制引腳鏈接驅(qū)動(dòng)器驅(qū)動(dòng)電機(jī)和編碼器鏈接STM32 MCU定時(shí)器的編碼器接口來(lái)實(shí)現(xiàn)一個(gè)完成的驅(qū)動(dòng)、反饋閉環(huán),根據(jù)STM32MCU的數(shù)據(jù)手冊(cè)可以查詢定時(shí)器的各引腳的功能。


STM32F103ZET6MCU定時(shí)器引腳功能定義
使用功能引腳在芯片上的位置對(duì)照


在相應(yīng)的.h資源文件利用宏定義實(shí)現(xiàn)功能引腳和指定功能的一一對(duì)應(yīng)

電機(jī)驅(qū)動(dòng)控制引腳定義代碼
MCU編碼器反饋引腳定義代碼

為了調(diào)試我們還定義了串口輸出引腳和按鍵控制引腳的定義

串口調(diào)試引腳定義
按鍵控制引腳定義

根據(jù)定義的引腳初始化以后就可以控制運(yùn)行狀態(tài)的進(jìn)程里編輯PID控制代碼了

? uwTick++;

? if((uwTick % 50) == 0)

? {

//? ? /* 獲取當(dāng)前位置值,編碼器4倍頻之后的數(shù)值 */

? ? Sample_Pulse = (OverflowCount*CNT_MAX) + (int32_t)__HAL_TIM_GET_COUNTER(&htimx_Encoder);


? ? /* 計(jì)算PID結(jié)果 */

? ? if(Start_flag == 1)

? ? {

? ? ? tmpPWM_DutySpd = LocPIDCalc(Sample_Pulse);


? ? ? /* 設(shè)定速度環(huán)的目標(biāo)值 */

? ? ? if(tmpPWM_DutySpd >= TARGET_SPEED)

? ? ? ? tmpPWM_DutySpd = TARGET_SPEED;

? ? ? if(tmpPWM_DutySpd <= -TARGET_SPEED)

? ? ? ? tmpPWM_DutySpd = -TARGET_SPEED;

? ? }

? }

? ? ? /* 速度環(huán)周期50ms */

? if(uwTick % 50 == 0)

? {

? ? /* 獲得當(dāng)前速度 */

? ? Sample_Pulse = (OverflowCount*CNT_MAX) + (int32_t)__HAL_TIM_GET_COUNTER(&htimx_Encoder);

? ? Spd_PPS = Sample_Pulse - LastSample_Pulse;

? ? LastSample_Pulse = Sample_Pulse ;


? ? /* 11線編碼器,270減速比,一圈脈沖信號(hào)是11*270*4 PPR */

? ? Spd_RPM = ((((float)Spd_PPS/(float)PPR)*20.0f)*(float)60);//單位是rpm

//

? ? /* 計(jì)算PID結(jié)果 */

? ? if(Start_flag == 1)

? ? {

? ? ? sPID.SetPoint = tmpPWM_DutySpd;

? ? ? PWM_Duty = SpdPIDCalc(Spd_RPM);

? ? ? if(PWM_Duty < 0)

? ? ? {

? ? ? ? Motor_Dir = CW;

? ? ? ? BDDCMOTOR_DIR_CW();

? ? ? ? PWM_Duty = -PWM_Duty;

? ? ? }

? ? ? else

? ? ? {

? ? ? ? Motor_Dir = CCW;

? ? ? ? BDDCMOTOR_DIR_CCW();

? ? ? }

? ? ? __HAL_TIM_SET_COMPARE(&htimx_BDCMOTOR,TIM_CHANNEL_1,PWM_Duty );

? ? }

? ? printf("LOC:%d Sped: %2.2f r/m \n",Sample_Pulse,Spd_RPM );

? }




STM32編程L298N驅(qū)動(dòng)直流有刷電機(jī)實(shí)現(xiàn)PID位置、速度雙閉環(huán)控制實(shí)現(xiàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
汾西县| 焉耆| 监利县| 卢湾区| 江门市| 汕尾市| 临邑县| 砀山县| 连山| 涪陵区| 墨竹工卡县| 丰县| 和政县| 贞丰县| 太康县| 青龙| 宁乡县| 郸城县| 响水县| 永济市| 鹿邑县| 会泽县| 方正县| 大邑县| 中超| 龙口市| 澄城县| 德清县| 沅江市| 河源市| 吴川市| 青海省| 榕江县| 沙田区| 新民市| 阳谷县| 台州市| 平和县| 闽侯县| 兰溪市| 乐东|