久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 13624|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

STM32直流電機(jī)電流、速度雙閉環(huán)控制系統(tǒng)源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:257716 發(fā)表于 2017-12-5 15:10 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我的課程設(shè)計(jì)——實(shí)現(xiàn)直流電機(jī)電流、速度雙閉環(huán)控

stm32單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "PID_Current.h"
  3. #include "UserConfiguration.h"
  4. //定義一個(gè)位置式PID算法
  5. void PID_LocationMode1(PID_LocationMode* PID)
  6. {
  7.         if(PID->kp<0)  PID->kp = -PID->kp;
  8.         if(PID->ki<0)  PID->ki = -PID->ki;
  9.         if(PID->kd<0)  PID->kd = -PID->kd;
  10.         PID->errP   =   PID->errNow;
  11.         PID->errI   +=   PID->errNow;
  12.         if(PID->errILim!=0)
  13.         {
  14.                 if(PID->errI  >   PID->errILim) PID->errI  =  PID->errILim;
  15.                 if(PID->errI   <   -PID->errILim) PID->errI   =  -PID->errILim;
  16.                
  17.         }
  18.         PID->errD  =  PID->errNow   -  PID->errOld;
  19.         PID->errOld  =   PID->errNow;
  20.         PID->out  =   PID->kp*PID->errP +  PID->ki*PID->errI +  PID->kd*PID->kd;
  21.         
  22. }


  23. s32 adc_Tag, adcNow,adcControl;    //設(shè)定adc電壓值,通過電流傳感器獲取到adc電壓值,pwm控制
  24. PID_LocationMode PID_Current;   //定義PID算法的結(jié)構(gòu)體
  25. extern u32 adcx;                 //得到adc的值
  26. void UserPIDCurrentControl(s32 adc)  
  27. {
  28.         adc_Tag=adc;          //設(shè)定adc電壓值         
  29.         adcNow=adcx;  
  30.         //通過電流傳感器得到adc電壓值
  31.         PID_Current.errNow  = adc_Tag  -  adcNow;   //實(shí)際電壓和設(shè)定電壓差值
  32.         PID_Current.errILim  =   49999;                 //積分上限
  33.         PID_Current.kp  =  0;                        //寫入比例系數(shù)
  34.         PID_Current.ki  =  0.15;                                                                                                                //寫入積分系數(shù)
  35.         PID_Current.kd  =  0;                           //寫入微分系數(shù)
  36.         
  37.         PID_LocationMode1(&PID_Current);           
  38.         adcControl =  PID_Current.out;             //得到PID的值
  39.         UserMotorSpeedSetOne(adcControl);        //放入PWM,用于收斂速度的控制中
  40. }
復(fù)制代碼

主程序:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "timer.h"
  7. #include "UserConfiguration.h"
  8. #include "UserFunction.h"
  9. #include "lcd.h"
  10. #include "exti.h"
  11. #include "adc.h"
  12. #include "PID_Current.h"
  13. //PWM輸出實(shí)驗(yàn)  

  14.         
  15. u32 spd_now=0;
  16. u32 set_spd=3300,set_vol=300,PwmOne_Set;


  17. enum {flag_add,flag_minus,flag}FLAG_SPEED;
  18. enum {flag_zheng,flag_fan,flag_stop}FLAG_DIR;

  19. extern char s;

  20.         u32 adcx;
  21.         float av;
  22. int main(void)
  23. {               
  24. //        u8 i=0,key;
  25.          
  26.         delay_init();                     //延時(shí)函數(shù)初始化         
  27.         KEY_Init();
  28.         NVIC_Configuration();          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  29.         uart_init(9600);         //串口初始化為9600
  30.          LED_Init();                             //LED端口初始化
  31.          Adc_Init();                                  //ADC初始化            
  32.          TIM1_PWM_Init(4999,71);         
  33.         
  34.         EXTIX_Init();
  35.         LCD_Init();
  36.          
  37.         POINT_COLOR=RED;
  38.         TIM3_Int_Init(9999,719);
  39.                         
  40.         FLAG_DIR=flag_zheng;   //開始是正轉(zhuǎn)
  41.         FLAG_SPEED=flag;
  42.          while(1)
  43.    {   
  44.                  Motor_A=PWM_A;
  45.         
  46.         
  47.                        
  48.           //  UserPIDCurrentControl(set_vol) ;
  49.                   av=adcx*3.3/4096;
  50.                   LCD_ShowxNum(130,100,spd_now,8,16,0);    //nowspd;時(shí)時(shí)速度
  51.                   LCD_ShowxNum(130,130,set_spd,8,16,0);    //設(shè)定速度
  52.                  
  53.                   LCD_ShowxNum(130,160,3600,8,16,0);    //電機(jī)最大速度
  54.                   LCD_ShowxNum(130,190,adcx,8,16,0);           
  55.                   LCD_ShowxNum(130,230,av*1000,8,16,0);
  56.                   LCD_ShowxNum(130,250,PwmOne_Set,8,16,0);
  57.                   LCD_ShowString(50,160,100,12,16,"Max_Speed:");         
  58.                 LCD_ShowString(50,100,100,12,16,"Now_Speed:");
  59.                 LCD_ShowString(50,130,100,12,16,"Set_Speed:");        
  60.                 LCD_ShowString(50,190,100,12,16,"ADC:");        
  61.                  LCD_ShowString(50,230,100,12,16,"Voltage:");        
  62.                  adcx=Get_Adc_Average(ADC_Channel_2,10000);
  63.                  //按鍵設(shè)置標(biāo)量速度
  64.                  
  65.                  if(FLAG_SPEED==flag_add)
  66.                         {
  67.                                 FLAG_SPEED=flag;
  68.                                 set_spd+=10;    //加速
  69.                         }
  70.                         else if(FLAG_SPEED==flag_minus)
  71.                         {
  72.                                 FLAG_SPEED=flag;
  73.                                 set_spd-=10;    //減速
  74.                         }
  75.                         if(set_spd>=3600)
  76.                         {
  77.                                 set_spd=3600;
  78.                         }
  79.                         if(set_spd<=0)
  80.                         {
  81.                                 set_spd=0;
  82.                         }
  83.                         //按鍵設(shè)置跟隨電流的大小
  84.                         switch(KEY_Scan(1))
  85.                         {
  86.                                 case KEY0_PRES: set_vol+=10; break;
  87.                                 case KEY1_PRES: set_vol-=10; break;
  88.                                 default: break;
  89.                         }
  90.                         if(set_vol>=1000)
  91.                         {
  92.                                 set_vol=1000;
  93.                         }
  94.                         else if(set_vol<=0)
  95.                         {
  96.                                 set_vol=0;
  97.                         }
  98.                
  99.                         
  100.                         
  101.                
  102.                 // delay_ms(10);

  103.          }

  104. }

復(fù)制代碼

所有資料51hei提供下載:
直流電機(jī)電流、速度雙閉環(huán)控制系統(tǒng).rar (362.84 KB, 下載次數(shù): 304)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:324643 發(fā)表于 2018-5-8 13:05 | 只看該作者
請(qǐng)問樓主有硬件資料么?
回復(fù)

使用道具 舉報(bào)

板凳
ID:324643 發(fā)表于 2018-5-8 13:06 | 只看該作者
請(qǐng)問樓主有硬件資料么
回復(fù)

使用道具 舉報(bào)

地板
ID:328112 發(fā)表于 2018-5-12 10:58 | 只看該作者
好東西,感謝!
回復(fù)

使用道具 舉報(bào)

5#
ID:328712 發(fā)表于 2018-5-13 10:53 | 只看該作者
一直在找這資料,謝謝了
回復(fù)

使用道具 舉報(bào)

6#
ID:278417 發(fā)表于 2018-7-10 13:02 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

7#
ID:369656 發(fā)表于 2018-7-11 18:14 | 只看該作者
請(qǐng)問樓主使用什么軟件寫的代碼
回復(fù)

使用道具 舉報(bào)

8#
ID:347110 發(fā)表于 2018-7-11 20:54 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

9#
ID:105206 發(fā)表于 2019-1-30 18:34 | 只看該作者
謝謝分享,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

10#
ID:536282 發(fā)表于 2019-5-12 17:23 | 只看該作者
感謝分享!
回復(fù)

使用道具 舉報(bào)

11#
ID:69260 發(fā)表于 2019-11-13 14:28 | 只看該作者
不是說的電流和速度雙閉環(huán)嗎,咋變成了電流和位置了
回復(fù)

使用道具 舉報(bào)

12#
ID:600919 發(fā)表于 2019-11-16 09:10 | 只看該作者
請(qǐng)問樓主使用的是無刷直流電機(jī)嗎
回復(fù)

使用道具 舉報(bào)

13#
ID:674455 發(fā)表于 2019-12-26 13:01 | 只看該作者
超有用
回復(fù)

使用道具 舉報(bào)

14#
ID:583110 發(fā)表于 2020-11-16 15:32 | 只看該作者
看看有沒有幫助。。。。
回復(fù)

使用道具 舉報(bào)

15#
ID:228452 發(fā)表于 2022-4-5 05:16 | 只看該作者
This is Keil project
can you post schematic for motor board ?
Thank you
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天色影视综合 | 国产激情91久久精品导航 | 久久久在线视频 | 精品久久精品 | 四虎永久在线精品免费一区二 | 久久久久久国产一区二区三区 | 精品国产一区二区三区久久久久久 | 97精品超碰一区二区三区 | 亚洲午夜精品 | 在线国产一区二区三区 | 婷婷成人在线 | 国产精品视频一二三 | 91精品国产综合久久婷婷香蕉 | 久久精品一区二区三区四区 | av在线一区二区 | 国户精品久久久久久久久久久不卡 | 超碰综合 | 久久精品成人 | 欧美精品网 | 久久精品国产精品青草 | 91精品国产一区二区三区香蕉 | 久综合 | 久久久久国产 | 久久精品亚洲 | 亚洲色图第一页 | 国产一级片免费看 | 欧美综合一区 | 国产欧美一区二区精品忘忧草 | 欧美色图另类 | 亚洲综合国产精品 | 免费人成激情视频在线观看冫 | 国产精品污污视频 | 蜜桃传媒一区二区 | 一区二区三区亚洲视频 | 日日夜夜精品视频 | 久久国产日本 | 久久久www成人免费精品 | 亚洲第一免费播放区 | 黄a在线播放 | 狠狠操电影 | 国产激情片在线观看 |