色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

無刷電機小車開發記錄04——互補PWM驅動移植

RTThread物聯網操作系統 ? 來源:未知 ? 2023-09-19 11:20 ? 次閱讀

前言


??上篇文章記錄了為GD32的BSP添加了PWM信號輸入捕獲的驅動,并實現了對SC60228DC磁編碼器數據的讀取(PWM接口),最后還做了一點簡單的測試。今天過來繼續修輪子,適配一下PWM驅動。這里不得不提一下,造輪子或者修輪子可能是比較枯燥的,如果有也想搞一搞這個小車但懶得造輪子的小伙伴可以等我都弄完了直接用完適配好的程序,可能大多數同學都更喜歡玩上層實現具體功能的部分。不過對于我來說,在這之前還有很多輪子要修。

相關硬件電路


??介于上篇文章有小伙伴產生了一些疑問,所以后面的文章我盡量把相關的一些東西提前羅列一下,比如今天要調試的是驅動無刷電機的PWM信號。那下面就是其中一路電機驅動電路原理圖,無刷電機的三項引線分別由三個NCE6005AS的雙N溝道MOS管驅動。其中G2拉高,G1拉低時,高側MOS管導通,該項被接入VDD,相反則低測MOS導通,該項被接入GND。而Mos管由EG2134的三半橋柵極驅動器驅動,最初的介紹視頻里面也提過,我這里用的是全國產化的方案,所以相對國外的一些集成IC來說,器件要零散一些,但主要功能一致。而柵極驅動器的驅動信號則是三路互補PWM,其中HINx和LINx為一組。

wKgaomULQ4qAaH0nAAEYXAsLgN4102.jpg

如下是EG2134的輸入輸出邏輯真值表:

wKgaomULQ4qAJcN5AABfMb2plgI572.png

想了解更多器件信息,可參閱其芯片手冊:EG2134芯片手冊

PWM驅動移植


源文件適配

??目前我用的這塊GD32E503器件還沒有適配PWM驅動,所以還是有兩個選擇,如果能找到一個類似的驅動移植就會簡單一點,否則就要走第二條路,完全自己適配,就要麻煩很多。首先對于RTT的PWM驅動有現成的,只要打開“RT_USING_PWM”宏即可把“rt_drv_pwm.c”添加到工程里。

wKgaomULQ4qAPIk2AAATqbC4mjo766.png

而對于BSP的底層驅動,我用的這塊器件并沒有適配,但好在RTT對于arm內核的GD32器件的適配度還是挺高的,可以在arm內核的BSP內找到相關驅動,那閑話少說,先拷貝過來再說。

wKgaomULQ4uAfsVfAADWThPw7gs897.jpg

??接下來的工作就是要看一下驅動是否匹配,把不匹配的地方適配一下就可以了。首先來說,RTT層的PWM功能還是比較完善的,已經支持了互補PWM模式的配置,也有配置死區的接口。但看了一下GD32的BSP層的驅動,只適配了普通的PWM功能,沒有互補模式。所以著重的工作就是適配互補模式的PWM。首先看”drv_pwm.c”下的第一個結構體TIMER_PORT_CHANNEL_MAP_S,用來定義PWM用到的timer以及輸出通道和輸出引腳。原本的定義首先沒有互補通道的IO配置,其次直接用GD32固件庫的Port和pin定義的,所以配置只能固化到代碼里。


		

1typedefstruct 2{ 3rt_int8_tTimerIndex;//timerindex:0~13 4rt_uint32_tPort;//gpioport:GPIOA/GPIOB/GPIOC/... 5rt_uint32_tpin;//gpiopin:GPIO_PIN_0~GPIO_PIN_15 6rt_uint16_tchannel;//timerchannel 7char*name; 8}TIMER_PORT_CHANNEL_MAP_S;

這里我想實現更多的使用配置文件配置,而配置文件配置如果也采用uint32類型的Port的寄存器地址去定義是很不直觀的。所以添加了互補通道的同時,也修改了一下定義方式,具體怎么用且往后看。


		

1typedefstruct 2{ 3rt_int8_tTimerIndex;//timerindex:0~13 4char*OP_Port;//A,B,C,D... 5rt_uint16_tOP_pin;//GPIO_pin:0~15 6char*ON_Port;//A,B,C,D... 7rt_base_tON_pin;//GPIO_pin:0~15 8rt_uint16_tchannel;//timerchannel 9char*name; 10}TIMER_PORT_CHANNEL_MAP_S;

再往下看就是原本驅動里面對PWM引腳等信息的固化配置,比如PWM配置的是Timer3的ch2,輸出引腳是GPIOB_8:


		

1staticstructgd32_pwmgd32_pwm_obj[]={ 2#ifdefRT_USING_PWM1 3{.tim_handle={3,GPIOB,GPIO_PIN_8,2,"pwm1"}}, 4#endif 5#ifdefRT_USING_PWM2 6{.tim_handle={3,GPIOB,GPIO_PIN_8,2,"pwm2"}}, 7#endif 8... 9... 10};

修改后的代碼如下,其中所以配置都由宏定義實現,而具體的宏定義后面可以用Kconfig實現圖形化配置:


		

1staticstructgd32_pwmgd32_pwm_obj[]={ 2#ifdefRT_USING_PWM1 3{.tim_handle={RT_USING_PWM1_TIMER_INDEX,RT_USING_PWM1_OP_PORT,RT_USING_PWM1_OP_PIN,RT_USING_PWM1_ON_PORT,RT_USING_PWM1_ON_PIN,RT_USING_PWM1_CH,RT_USING_PWM1_NAME}}, 4#endif 5#ifdefRT_USING_PWM2 6{.tim_handle={RT_USING_PWM2_TIMER_INDEX,RT_USING_PWM2_OP_PORT,RT_USING_PWM2_OP_PIN,RT_USING_PWM2_ON_PORT,RT_USING_PWM2_ON_PIN,RT_USING_PWM2_CH,RT_USING_PWM2_NAME}}, 7#endif 8... 9... 10};

上面提到過為了配置的時候更直觀,沒有直接使用寄存器地址值,而是用的字符’A’,’B’等去代表GPIOA,GPIOB。對于PIN的定義也類似,所以這里需要添加一個配置參數到具體的Port和pin的轉換接口:


		

1staticrt_uint32_tget_gpio_periph_port(charpot) 2{ 3rt_uint32_tPort=0; 4switch(pot) 5{ 6case'A': 7Port=GPIOA; 8break; 9case'B': 10Port=GPIOB; 11break; 12case'C': 13Port=GPIOC; 14break; 15case'D': 16Port=GPIOD; 17break; 18case'E': 19Port=GPIOE; 20break; 21case'F': 22Port=GPIOF; 23break; 24case'G': 25Port=GPIOG; 26break; 27default: 28Port=0; 29break; 30} 31returnPort; 32} 33staticrt_uint32_tget_gpio_periph_pin(rt_uint16_tpn) 34{ 35rt_uint32_tPin=0; 36if(pn16) 37{ 38Pin=GPIO_PIN_0<39} 40else{ 41LOG_E("Unsportgpiopin! "); 42} 43returnPin; 44}

有了上面的對應接口,原驅動里的一些配置代碼跟隨做一下調整即可。我下面只給出改動稍大的一些地方,比如對于gpio的初始化代碼,要添加一路互補IO的初始化,如果不適用互補PWM,配置文件里面不進行配置即可,這里就會跳過互補IO的初始化:


		

1staticvoidgpio_config(void) 2{ 3rt_int16_ti; 4rt_uint32_tport; 5rt_uint32_tpin; 6/*configtheGPIOasanalogmode*/ 7for(i=0;isizeof(gd32_pwm_obj)/sizeof(gd32_pwm_obj[0]);++i) 8{ 9port=get_gpio_periph_port(*(gd32_pwm_obj[i].tim_handle.OP_Port)); 10pin=get_gpio_periph_pin(gd32_pwm_obj[i].tim_handle.OP_pin); 11if(port) 12gpio_init(port,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,pin); 13port=get_gpio_periph_port(*(gd32_pwm_obj[i].tim_handle.ON_Port)); 14pin=get_gpio_periph_pin(gd32_pwm_obj[i].tim_handle.ON_pin); 15if(port) 16gpio_init(port,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,pin); 17} 18}

源文件方面最后一個要修改的地方就是enable接口,主要是看configuration內的complementary互補模式是否被開啟,如果開啟則同時使能互補通道即可。


		

1staticrt_err_tdrv_pwm_enable(TIMER_PORT_CHANNEL_MAP_S*pstTimerMap,structrt_pwm_configuration*configuration, 2rt_bool_tenable) 3{ 4intchannel; 5if(configuration->channel==0||configuration->channel>4) 6returnRT_ERROR; 7channel=configuration->channel-1; 8if(!enable) 9{ 10timer_channel_output_state_config(index_to_timer(pstTimerMap->TimerIndex),channel, 11TIMER_CCX_DISABLE); 12if(configuration->complementary==RT_TRUE) 13{ 14timer_channel_complementary_output_state_config(index_to_timer(pstTimerMap->TimerIndex),channel, 15TIMER_CCXN_DISABLE); 16} 17} 18else 19{ 20timer_channel_output_state_config(index_to_timer(pstTimerMap->TimerIndex),channel, 21TIMER_CCX_ENABLE); 22if(configuration->complementary==RT_TRUE) 23{ 24timer_channel_complementary_output_state_config(index_to_timer(pstTimerMap->TimerIndex),channel, 25TIMER_CCXN_ENABLE); 26} 27} 28LOG_I("pwm[%d][%d]enable:%d!",pstTimerMap->TimerIndex,channel,enable); 29returnRT_EOK; 30}

構建管理文件適配

接下來修改對應的SConscript文件和Kconfig文件。先在”librariesgd32_drivers”下的SConscript文件內添加如下代碼,即開啟RT_USING_PWM宏后,就把上面移植過來的“drv_pwm.c”添加到工程內。


		

1#addpwmdrivers. 2ifGetDepend('RT_USING_PWM'): 3src+=['drv_pwm.c']

最后在“board”目錄下的Kconfig文件內,添加如下代碼。利用select語句聯動了RT_USING_PWM定義,我這里開啟了6路PWM的配置:


		

1menuconfigBSP_USING_PWM 2bool"EnablePWM" 3defaultn 4selectRT_USING_PWM 5ifBSP_USING_PWM 6configRT_USING_PWM1 7bool"EnablePWM1" 8defaultn 9ifRT_USING_PWM1 10configRT_USING_PWM1_NAME 11string"PWMDEVNAME" 12defaultPWM1 13configRT_USING_PWM1_TIMER_INDEX 14int"TimerIndex" 15default0 16configRT_USING_PWM1_OP_PORT 17string"PWMoutput_PPort(A,B,C...)" 18defaultA 19configRT_USING_PWM1_OP_PIN 20int"PWMoutput_Ppin(0~15)" 21default0 22configRT_USING_PWM1_ON_PORT 23string"PWMoutput_NPort(A,B,C...)" 24defaultA 25configRT_USING_PWM1_ON_PIN 26int"PWMoutput_Npin(0~15)" 27default0 28configRT_USING_PWM1_CH 29int"PWMoutputchannel" 30default0 31endif 32configRT_USING_PWM2 33bool"EnablePWM2" 34defaultn 35ifRT_USING_PWM2 36configRT_USING_PWM2_NAME 37string"PWMDEVNAME" 38defaultPWM2 39configRT_USING_PWM2_TIMER_INDEX 40int"TimerIndex" 41default0 42configRT_USING_PWM2_OP_PORT 43string"PWMoutput_PPort(A,B,C...)" 44defaultA 45configRT_USING_PWM2_OP_PIN 46int"PWMoutput_Ppin(0~15)" 47default0 48configRT_USING_PWM2_ON_PORT 49string"PWMoutput_NPort(A,B,C...)" 50defaultA 51configRT_USING_PWM2_ON_PIN 52int"PWMoutput_Npin(0~15)" 53default0 54configRT_USING_PWM2_CH 55int"PWMoutputchannel" 56default0 57endif 58configRT_USING_PWM3 59bool"EnablePWM3" 60defaultn 61ifRT_USING_PWM3 62configRT_USING_PWM3_NAME 63string"PWMDEVNAME" 64defaultPWM3 65configRT_USING_PWM3_TIMER_INDEX 66int"TimerIndex" 67default0 68configRT_USING_PWM3_OP_PORT 69string"PWMoutput_PPort(A,B,C...)" 70defaultA 71configRT_USING_PWM3_OP_PIN 72int"PWMoutput_Ppin(0~15)" 73default0 74configRT_USING_PWM3_ON_PORT 75string"PWMoutput_NPort(A,B,C...)" 76defaultA 77configRT_USING_PWM3_ON_PIN 78int"PWMoutput_Npin(0~15)" 79default0 80configRT_USING_PWM3_CH 81int"PWMoutputchannel" 82default0 83endif 84configRT_USING_PWM4 85bool"EnablePWM4" 86defaultn 87ifRT_USING_PWM4 88configRT_USING_PWM4_NAME 89string"PWMDEVNAME" 90defaultPWM4 91configRT_USING_PWM4_TIMER_INDEX 92int"TimerIndex" 93default0 94configRT_USING_PWM4_OP_PORT 95string"PWMoutput_PPort(A,B,C...)" 96defaultA 97configRT_USING_PWM4_OP_PIN 98int"PWMoutput_Ppin(0~15)" 99default0 100configRT_USING_PWM4_ON_PORT 101string"PWMoutput_NPort(A,B,C...)" 102defaultA 103configRT_USING_PWM4_ON_PIN 104int"PWMoutput_Npin(0~15)" 105default0 106configRT_USING_PWM4_CH 107int"PWMoutputchannel" 108default0 109endif 110configRT_USING_PWM5 111bool"EnablePWM5" 112defaultn 113ifRT_USING_PWM5 114configRT_USING_PWM5_NAME 115string"PWMDEVNAME" 116defaultPWM5 117configRT_USING_PWM5_TIMER_INDEX 118int"TimerIndex" 119default0 120configRT_USING_PWM5_OP_PORT 121string"PWMoutput_PPort(A,B,C...)" 122defaultA 123configRT_USING_PWM5_OP_PIN 124int"PWMoutput_Ppin(0~15)" 125default0 126configRT_USING_PWM5_ON_PORT 127string"PWMoutput_NPort(A,B,C...)" 128defaultA 129configRT_USING_PWM5_ON_PIN 130int"PWMoutput_Npin(0~15)" 131default0 132configRT_USING_PWM5_CH 133int"PWMoutputchannel" 134default0 135endif 136configRT_USING_PWM6 137bool"EnablePWM6" 138defaultn 139ifRT_USING_PWM6 140configRT_USING_PWM6_NAME 141string"PWMDEVNAME" 142defaultPWM6 143configRT_USING_PWM6_TIMER_INDEX 144int"TimerIndex" 145default0 146configRT_USING_PWM6_OP_PORT 147string"PWMoutput_PPort(A,B,C...)" 148defaultA 149configRT_USING_PWM6_OP_PIN 150int"PWMoutput_Ppin(0~15)" 151default0 152configRT_USING_PWM6_ON_PORT 153string"PWMoutput_NPort(A,B,C...)" 154defaultA 155configRT_USING_PWM6_ON_PIN 156int"PWMoutput_Npin(0~15)" 157default0 158configRT_USING_PWM6_CH 159int"PWMoutputchannel" 160default0 161endif 162endif

到此,就可以利用menuconfig或者IDE的圖形界面進行配置了:

wKgaomULQ4uAdy7mAAFPhRDREIE930.jpg

實現效果


為了測試效果,我這里在main函數內對6路PWM進行了初始化:


		

1rt_device_tpwm1_LA=RT_NULL,pwm2_LB=RT_NULL,pwm3_LC=RT_NULL,pwm4_RA=RT_NULL,pwm5_RB=RT_NULL,pwm6_RC=RT_NULL; 2intmain(void) 3{ 4... 5... 6pwm1_LA=rt_device_find(RT_USING_PWM1_NAME); 7if(pwm1_LA!=RT_NULL) 8{ 9structrt_device_pwm*pwm_dev=(structrt_device_pwm*)pwm1_LA; 10rt_pwm_set(pwm_dev,RT_USING_PWM1_CH+1,10000,5000); 11rt_pwm_enable(pwm_dev,-(RT_USING_PWM1_CH+1)); 12rt_kprintf("%sinitOK! ",pwm_dev->parent.parent.name); 13} 14pwm2_LB=rt_device_find(RT_USING_PWM2_NAME); 15if(pwm2_LB!=RT_NULL) 16{ 17structrt_device_pwm*pwm_dev=(structrt_device_pwm*)pwm2_LB; 18rt_pwm_set(pwm_dev,RT_USING_PWM2_CH+1,10000,1000); 19rt_pwm_enable(pwm_dev,-(RT_USING_PWM2_CH+1)); 20rt_kprintf("%sinitOK! ",pwm_dev->parent.parent.name); 21} 22pwm3_LC=rt_device_find(RT_USING_PWM3_NAME); 23if(pwm3_LC!=RT_NULL) 24{ 25structrt_device_pwm*pwm_dev=(structrt_device_pwm*)pwm3_LC; 26rt_pwm_set(pwm_dev,RT_USING_PWM3_CH+1,10000,8000); 27rt_pwm_enable(pwm_dev,-(RT_USING_PWM3_CH+1)); 28rt_kprintf("%sinitOK! ",pwm_dev->parent.parent.name); 29} 30pwm4_RA=rt_device_find(RT_USING_PWM4_NAME); 31if(pwm4_RA!=RT_NULL) 32{ 33structrt_device_pwm*pwm_dev=(structrt_device_pwm*)pwm4_RA; 34rt_pwm_set(pwm_dev,RT_USING_PWM4_CH+1,10000,5000); 35rt_pwm_enable(pwm_dev,-(RT_USING_PWM4_CH+1)); 36rt_kprintf("%sinitOK! ",pwm_dev->parent.parent.name); 37} 38pwm5_RB=rt_device_find(RT_USING_PWM5_NAME); 39if(pwm5_RB!=RT_NULL) 40{ 41structrt_device_pwm*pwm_dev=(structrt_device_pwm*)pwm5_RB; 42rt_pwm_set(pwm_dev,RT_USING_PWM5_CH+1,10000,1000); 43rt_pwm_enable(pwm_dev,-(RT_USING_PWM5_CH+1)); 44rt_kprintf("%sinitOK! ",pwm_dev->parent.parent.name); 45} 46pwm6_RC=rt_device_find(RT_USING_PWM6_NAME); 47if(pwm6_RC!=RT_NULL) 48{ 49structrt_device_pwm*pwm_dev=(structrt_device_pwm*)pwm6_RC; 50rt_pwm_set(pwm_dev,RT_USING_PWM6_CH+1,10000,8000); 51rt_pwm_enable(pwm_dev,-(RT_USING_PWM6_CH+1)); 52rt_kprintf("%sinitOK! ",pwm_dev->parent.parent.name); 53} 54... 55... 56}

還實現了一個如下的測試命令,這樣除了可以使用驅動里實現的PWM命令外,也可以使用自己的測試命令測試,更方便一些:


		

1staticintmotorLA_pwm(intargc,char**argv) 2{ 3rt_err_tresult=RT_EOK; 4rt_uint32_tperiod,pulse; 5structrt_device_pwm*pwm_dev=(structrt_device_pwm*)pwm1_LA; 6if(argc>=3) 7{ 8period=atoi(argv[1]); 9pulse=atoi(argv[2]); 10rt_pwm_set(pwm_dev,RT_USING_PWM1_CH+1,period,pulse); 11rt_kprintf("set%s:[period]%d-[pulse]%d! ",pwm_dev->parent.parent.name,period,pulse); 12} 13else{ 14rt_kprintf("Usage: "); 15rt_kprintf("motorXN_pwm-setthepwm'speriodandpulse "); 16rt_kprintf("eg:motorLA_pwm100005000issetmotorLApwm'speriodto10us,pulseto5us "); 17result=-RT_ERROR; 18} 19returnRT_EOK; 20} 21MSH_CMD_EXPORT(motorLA_pwm,motorLA_pwm);

下圖是開機上電終端打印的信息,由于我開啟了PWM驅動的調試,所以打印了很多相關的調試信息:

wKgaomULQ4uANDJQAAL2ifgyy_c159.jpg

如下是測試的PWM1的波形輸出,黃色的通道一測試的正向PWM信號,藍色的通道二測試的是互補的反向PWM信號:

wKgaomULQ4uAS27MAAE7fPqxnlw980.jpg

下圖是設置PWM1的占空比為1/10后的效果:

wKgaomULQ4uAKevKAAE_JETvkok422.jpg

相關鏈接


本系列首篇文章連接:

https://club.rt-thread.org/ask/article/5c0c4ba7eb4ab1ad.html

———————End——————

點擊閱讀原文進入官網

?


原文標題:無刷電機小車開發記錄04——互補PWM驅動移植

文章出處:【微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5185

    瀏覽量

    213818
  • RT-Thread
    +關注

    關注

    31

    文章

    1285

    瀏覽量

    40093

原文標題:無刷電機小車開發記錄04——互補PWM驅動移植

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    其利天下技術·電機慣量是什么意思?無刷電機驅動開發

    電機慣量是影響電機穩定工作以及能量效率的重要因素。作為無刷電機驅動方案開發商,我們聊聊電機慣量的
    的頭像 發表于 12-23 17:32 ?89次閱讀
    其利天下技術·<b class='flag-5'>電機</b>慣量是什么意思?<b class='flag-5'>無刷電機</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>

    無刷電機正弦波驅動原理分析

    在上一期芝識課堂里,大家應該已經學會如何用方波驅動無刷電機運轉,下一步我們來一起嘗試用正弦波驅動無刷電機,學習如何改變電機工作速度的實戰技
    的頭像 發表于 12-02 10:00 ?252次閱讀
    <b class='flag-5'>無刷電機</b>正弦波<b class='flag-5'>驅動</b>原理分析

    淺談無刷電機的工作流程

    上一期的芝識課堂,我們跟大家一起分析了無刷電機的四個功能單元,并詳細分析了PWM和逆變器單元的工作情況,今天我們繼續來熟悉無刷電機工作流程中另外兩個重要的部分——轉子位置檢測和波形驅動
    的頭像 發表于 11-12 13:46 ?428次閱讀
    淺談<b class='flag-5'>無刷電機</b>的工作流程

    無刷電機驅動方案的應用

    : 有刷電機:有刷電機通過碳刷和換向器(或稱為整流子)來傳遞電流。 無刷電機無刷電機沒有碳刷和換向器,而是通過電子換向器(通常是霍爾傳感器和電子
    發表于 10-21 16:00

    其利天下技術·無刷電機中開環控制和閉環控制的區別·無刷電機驅動方案

    無刷電機驅動方案中的開環控制和閉環控制是兩種不同的控制策略,各有其原理和應用場景。作為無刷電機驅動方案開發商,經常會有客戶或者同行交流過程中
    的頭像 發表于 10-16 10:30 ?503次閱讀
    其利天下技術·<b class='flag-5'>無刷電機</b>中開環控制和閉環控制的區別·<b class='flag-5'>無刷電機</b><b class='flag-5'>驅動</b>方案

    其利天下技術·無刷電機壽命有多長?軟件能改善嗎?無刷電機驅動

    作為無刷電機驅動方案開發商,經常跟客戶都會討論到一個問題——無刷電機的壽命受什么因素影響?現在無刷電機的制作工藝對比以前已經有了極大的提升,
    的頭像 發表于 09-23 16:01 ?328次閱讀
    其利天下技術·<b class='flag-5'>無刷電機</b>壽命有多長?軟件能改善嗎?<b class='flag-5'>無刷電機</b><b class='flag-5'>驅動</b>

    其利天下技術·低速無刷電機如何更好的控制?無刷電機驅動方案開發

    需要低速運轉的無刷電機經常運用在電動車、機器人關節、醫療設備等場景。最近有客戶找到我們開發無刷電機驅動方案,他的需求是低轉速,而且需要精準控制電流。經常
    的頭像 發表于 09-09 11:50 ?488次閱讀
    其利天下技術·低速<b class='flag-5'>無刷電機</b>如何更好的控制?<b class='flag-5'>無刷電機</b><b class='flag-5'>驅動</b>方案<b class='flag-5'>開發</b>

    無刷電機驅動芯片方案的選擇至關重要

    在當今科技飛速發展的時代,無刷電機因其高效、低噪、長壽命等顯著優勢,在眾多領域得到了廣泛應用,從工業自動化到智能家居,從電動汽車到航空航天。而在無刷電機系統中,驅動芯片方案的選擇至關重要,它直接影響
    的頭像 發表于 09-05 17:28 ?571次閱讀

    其利天下技術開發·無刷電機常見的5種啟動方式·無刷電機驅動方案

    作為經常跟無刷電機打交道的驅動方案商,能夠根據不同的無刷電機選擇匹配的啟動方式,是基本的技術要求。今天分享一下,無刷電機常見的啟動方式有哪些?分別又有什么優缺點呢?
    的頭像 發表于 08-21 10:59 ?549次閱讀
    其利天下技術<b class='flag-5'>開發</b>·<b class='flag-5'>無刷電機</b>常見的5種啟動方式·<b class='flag-5'>無刷電機</b><b class='flag-5'>驅動</b>方案

    PWM驅動電機發熱的原因

    一、PWM驅動電機的基本原理 1.1 PWM的概念 PWM(Pulse Width Modulation,脈沖寬度調制)是一種數字信號處理技
    的頭像 發表于 08-08 15:25 ?973次閱讀

    其利天下技術·無刷電機常見的5種啟動方式及優缺點·無刷電機驅動方案設計開發

    作為經常跟無刷電機打交道的驅動方案商,能夠根據不同的無刷電機選擇匹配的啟動方式,是基本的技術要求。今天分享一下,無刷電機常見的啟動方式有哪些?分別又有什么優缺點呢? ? 其利天下·
    的頭像 發表于 08-07 10:26 ?726次閱讀
    其利天下技術·<b class='flag-5'>無刷電機</b>常見的5種啟動方式及優缺點·<b class='flag-5'>無刷電機</b><b class='flag-5'>驅動</b>方案設計<b class='flag-5'>開發</b>

    無刷電機驅動原理 直流有刷電機無刷電機的差異

    在上期芝識課堂中,我們一起認識了東芝無刷電機的基本知識,對于生活中無處不在的無刷電機,了解它的更多知識才能上手開發哦~今天芝子就帶你一起來學習無刷電機
    的頭像 發表于 07-19 14:29 ?1357次閱讀
    <b class='flag-5'>無刷電機</b>的<b class='flag-5'>驅動</b>原理 直流有刷<b class='flag-5'>電機</b>和<b class='flag-5'>無刷電機</b>的差異

    無刷電機驅動器的工作原理和結構組成

    無刷電機驅動器,也被稱為無刷電調或無刷電機電子調速器,是一種能有效控制電機轉速、扭矩和位置的新型電機驅動
    的頭像 發表于 06-12 16:54 ?2375次閱讀

    其利天下技術·無刷電機弱磁控制是什么?有什么好處·BLDC驅動方案

    作為一個無刷電機驅動方案開發商,我們在開發產品的時候就會用到“弱磁控制技術”。比如,我們開發的吸塵器方案時就會用到。什么是弱磁控制技術,它又
    的頭像 發表于 06-07 18:42 ?1032次閱讀
    其利天下技術·<b class='flag-5'>無刷電機</b>弱磁控制是什么?有什么好處·BLDC<b class='flag-5'>驅動</b>方案

    無刷電機是什么意思 無刷電機是交流還是直流

    無刷電機(Brushless Motor)是一種將電能轉換為機械能的驅動裝置,也被稱為無刷直流電機(BLDC Motor)。與傳統的有刷電機相比,
    的頭像 發表于 02-01 13:57 ?1.3w次閱讀
    主站蜘蛛池模板: 久久国产主播福利在线| 中文字幕完整高清版| 小草视频免费观看在线| 武侠艳妇屈辱的张开双腿| 性欧美13处14处破| 亚洲欧美激情精品一区二区| 一级毛片西西人体44rt高清| 2021国产精品国产精华| 99热最新网站| 高清无码色大片中文| 国产午夜精品久久理论片| 久久黄色大片| 秋霞电影网午夜一级鲁丝片| 四虎影视永久无码精品| 亚洲永久免费视频| xxxx18动漫| 精品国产在线亚洲欧美| 欧美日韩亚洲成人| 亚洲高清无码在线 视频| 亚欧日韩毛片在线看免费网站| 天津相声广播在线收听| 小小水蜜桃3视频在线观看| 欲香欲色天天影视大全| 电影果冻传媒在线播放| 国产又粗又黄又爽的大片| 奶头从情趣内衣下露了出来AV| 无人区乱码1区2区3区网站| 一级做a爰片久久免费| 国产国产成人人免费影院| 美女丝袜夹b| 亚洲综合日韩中文字幕v在线| 东北足疗店妓女在线观看| 久久精品国产只有精品| 色裕插插插影视| YY6080A旧里番在线观看| 精品久久久久中文字幕| 偷柏自拍亚洲综合在线| 草699一码二码三码四码| 免费又黄又硬又爽大片| 在线亚洲黄色| 久久伊人网站|