鎶€琛�(sh霉)闋婚亾

濞撳〒宸ユキ(y猫)
鎮ㄧ従(xi脿n)鍦ㄧ殑浣嶇疆锛� 涓湅鍌冲嫊缍�(w菐ng) > 鎶€琛�(sh霉)闋婚亾 > 鎶€琛�(sh霉)鐧剧 > 姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

鏅傞枔锛�2017-12-21 11:02:05渚嗘簮锛氱恫(w菐ng)绲�(lu貌)杞�(zhu菐n)杓�

灏庤獮锛�?姝ラ€查浕姗熸槸灏囬浕鑴堟矕淇¤櫉杞�(zhu菐n)璁�?y艒u)姒讳繌鐏拌嫻铓撯偓浣嶇Щ鐨勯枊鐠�(hu谩n)鎺у埗闆绘锛屾槸鐝�(xi脿n)浠f暩(sh霉)瀛楃▼搴忔帶鍒剁郴绲�(t菕ng)涓殑涓昏鍩�(zh铆)琛屽厓浠�锛屾噳鐢ㄦサ鐐哄唬娉�銆傚湪

姝ラ€查浕姗�鏄皣闆昏剤娌栦俊铏熻綁(zhu菐n)璁�?y艒u)姒讳繌鐏拌嫻铓撯偓浣嶇Щ鐨勯枊鐠�(hu谩n)鎺у埗闆绘锛屾槸鐝�(xi脿n)浠f暩(sh霉)瀛楃▼搴忔帶鍒剁郴绲�(t菕ng)涓殑涓昏鍩�(zh铆)琛屽厓浠讹紝鎳夌敤妤电偤寤f硾銆傚湪闈炶秴杓夌殑鎯呮硜涓嬶紝闆绘鐨勮綁(zhu菐n)閫�銆佸仠姝㈢殑浣嶇疆鍙彇姹轰簬鑴堟矕淇¤櫉鐨勯牷鐜囧拰鑴堟矕鏁�(sh霉)锛岃€屼笉鍙楄矤杓夎畩鍖栫殑褰遍熆锛岀暥姝ラ€查﹨(q奴)鍕曞櫒鎺ユ敹鍒颁竴鍊嬭剤娌栦俊铏燂紝瀹冨氨椹�(q奴)鍕曟閫查浕姗熸寜瑷�(sh猫)瀹氱殑鏂瑰悜杞�(zhu菐n)鍕曚竴鍊嬪浐瀹氱殑瑙掑害锛岀ū鐐衡€滄璺濊鈥濓紝瀹冪殑鏃嬭綁(zhu菐n)鏄互鍥哄畾鐨勮搴︿竴姝ヤ竴姝ラ亱琛岀殑?锛熸ⅱ閰濄劅^鎺у埗鑴堟矕鍊嬫暩(sh霉)渚嗘帶鍒惰浣嶇Щ閲忥紝寰炶€岄仈鍒版簴纰哄畾浣嶇殑鐩殑锛涘悓鏅傚彲浠ラ€氶亷鎺у埗鑴堟矕闋荤巼渚嗘帶鍒堕浕姗熻綁(zhu菐n)鍕曠殑閫熷害鍜屽姞閫熷害锛屽緸鑰岄仈鍒拌(di脿o)閫熺殑鐩殑銆�

姝ラ€查浕姗熸槸涓€绋劅鎳�闆绘锛屽畠鐨勫伐浣滃師鐞嗘槸鍒╃敤闆诲瓙闆昏矾锛屽皣鐩存祦闆昏畩鎴愬垎鏅備緵闆荤殑锛屽鐩告檪搴忔帶鍒堕浕娴�锛岀敤閫欑ó闆绘祦鐐烘閫查浕姗熶緵闆伙紝姝ラ€查浕姗熸墠鑳芥甯稿伐浣�锛岄﹨(q奴)鍕曞櫒灏辨槸鐐烘閫查浕姗熷垎鏅備緵闆荤殑锛屽鐩告檪搴忔帶鍒跺櫒銆�

姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

S鍨嬫洸绶氱殑鐨勬柟绋�姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

锛屽湪锛�-5锛�5锛界殑鍦栧舰濡備笅鍦栨墍绀猴細

姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

濡傝灏囨鏇茬窔鎳夌敤鍦ㄦ閫查浕姗熺殑鍔�銆佹笡閫熼亷绋嬩腑锛岄渶瑕佸皣鏂圭▼鍦╔Y鍧愭绯婚€茶骞崇Щ锛屽悓鏅傚皪鏇茬窔閫茶鎷夊崌璁婂寲锛�

姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

鍏朵腑鐨凙鍒嗛噺鍦▂鏂瑰悜閫茶骞崇Щ锛孊鍒嗛噺鍦▂鏂瑰悜閫茶鎷変几锛宎x+b鍒嗛噺鍦▁鏂瑰悜閫茶骞崇Щ鍜屾媺浼搞€�

闋呯洰涓姞閫熼亷绋嬶細寰�5600Hz鍔犻€熷埌64000Hz锛岄噰鐢�4绱板垎銆傝几鍑烘瘮杓冩ā濉婃墍鐢ㄧ殑瀹氭檪鍣ㄩ﹨(q奴)鍕曢牷鐜囩偤10M锛岄噰鐢�1000鍊嬮粸閫茶鍔犻€熻檿鐞�銆傛渶绲傛牴鎿�(j霉)闋呯洰鐨勯渶瑕侊紝鍦ㄥ姞閫熼亷绋嬩腑閲囩敤鐨勬洸绶氭柟绋嬬偤锛�

姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)銆�

鍏朵腑鐨凢current鐐簂ength锛�1000锛夊€嬮粸涓殑鍠€嬮牷鐜囧€�銆侳min璧峰闋荤巼鐐�5600;Fmax鐐烘渶澶ч牷鐜�64000;-flexible*锛坕-num锛�/num鏄皪S鍨嬫洸绶氶€茶鎷変几璁婂寲锛屽叾涓璮lexible浠h〃S鏇茬窔鍗€(q奴)闁擄紙瓒婂ぇ浠h〃澹撶府鐨勬渶鍘插锛屼腑闁擄紙x鍧愭0榛炲懆鍦嶏級鍔犻€熷害瓒婂ぇ锛涜秺灏忚秺鎺ヨ繎鍕诲姞閫熴€傜悊鎯崇殑S鏇茬窔鐨勫彇鍊肩偤4-6锛�锛宨鏄湪寰挵(hu谩n)瑷堢畻閬庣▼涓殑绱㈠紩锛屽緸0闁嬪锛宯um鐐簂ength/2澶�?銆傘劅@妯e彲浠ヤ娇寰桽鏇茬窔灏嶇ū锛夈€傚湪闋呯洰涓璱鐨勫崁(q奴)闁擄蓟0锛�1000锛�锛宯um=1000/2=500銆傞€欎簺鍙冩暩(sh霉)鍧囧彲浠ヤ慨鏀�銆傛彁渚涚殑瑷堢畻鎺ュ彛濡備笅銆�

灏嶆噳鐨勮▓绠楁帴鍙ode锛�

/*calculatethePeriodandFreqarrayvalue锛宖illthePeriodvalueintothePeriodregisterduringtheTImerinterrupt.

*calculatetheacceleraTIonprocedure锛宎totally1000elementsarray.

*parameterfre锛伙冀锛歱ointtothearraythatkeepsthefreqvalue.

*period锛伙冀锛歱ointtothearraythatkeepstheTImerperiodvalue.

*len锛歵heprocedureofacceleraTIonlength.itisbestthingtosetthefloatnumber锛宻omecompilesoftwaremaybetransfererrorifsetitasaint

*fre_max锛歮aximumspeed锛宖requencyvale.

*fre_min锛歴tartminimumspeed锛宖requencyvale.mind锛�10000000/65535=152锛宻ofre_mincan鈥榯lessthan152.

*flexible锛歠lexiblevalue.adjusttheScurves

*/

voidCalculateSModelLine锛坒loatfre锛伙冀锛寀nsignedshortperiod锛伙冀锛宖loatlen锛宖loatfre_max锛宖loatfre_min锛宖loatflexible锛�

{

inti=0;

floatdeno;

floatmelo;

floatdelt=fre_max-fre_min;

for锛�;i銆妉en;i++锛�

{

melo=flexible*锛坕-len/2锛�/锛坙en/2锛�;

deno=1.0/锛�1+expf锛�-melo锛夛級;//expfisalibraryfunctionofexponential锛坋锛�

fre锛籭锛�=delt*deno+fre_min;

period锛籭锛�=锛坲nsignedshort锛夛紙10000000.0/fre锛籭锛斤級;//10000000isthetimerdriverfrequency

}

return;

}

//startmovemotor

voidStartPWM锛堬級

{

DriverMotorFlag=TRUE;

Index=0;

MOTOR_EN_DISABLE=ENABLE;

OpenOC4锛圤C_ON|OC_TIMER_MODE16|OC_TIMER3_SRC|OC_PWM_FAULT_PIN_DISABLE锛�0锛�0锛�;

//maprc13tooc4output

RPC13R=11;

//50percentduty

OC4RS=OC_PERIOD_MIN/2;

OpenTimer3锛圱3_ON|T3_PS_1_8锛孫C_PERIOD_MIN锛�;

INTSetVectorPriority锛圛NT_TIMER_3_VECTOR锛孖NT_PRIORITY_LEVEL_6锛�;

INTSetVectorSubPriority锛圛NT_TIMER_3_VECTOR锛孖NT_SUB_PRIORITY_LEVEL_1锛�;

EnableIntT3;

}

//stopmotor锛宧ereisnodeceleration

voidStopPWM锛堬級

{

DriverMotorFlag=FALSE;

Index=0;

MOTOR_EN_DISABLE=DISENABLE;

OpenOC4锛圤C_OFF|OC_TIMER_MODE16|OC_TIMER3_SRC|OC_PWM_FAULT_PIN_DISABLE锛�0锛�0锛�;

//maprc13tooc4output

RPC13R=0;

PORTCbits.RC13=0;

CloseTimer3锛堬級;

DisableIntT3;

}

//changethetimerPeriodvalueinthecorrespondtimerratherthantheotherplace锛孫rthemotorwillbestalledoccasionally.

//鍓涢枊濮嬫垜鍦ㄥ彟澶栫殑涓€鍊嬪畾鏅傚櫒涓柗涓瘡闅�1ms鏀硅畩鎳夌敤鍦∣C妯″鐨則imer3鐨凱eriod鍊�锛岀祼(ji茅)妲�(g貌u)鍋剁櫦(f膩)鐨勯€犳垚闆绘鍦ㄥ姞閫熼亷绋嬩腑鍫佃綁(zhu菐n)銆傚叾瀵︽噳瑭叉槸鍦╰imer3鐨勪腑鏂蜂腑淇敼銆�

staticunsignedshortCountForAcc=0;

void__ISR锛坃TIMER_3_VECTOR锛宨pl6锛塗imer3OutHandler锛坴oid锛�

{

//cleartheinterruptflag锛宱rtheinterruptwillnotoccuragain.

mT3ClearIntFlag锛堬級;

if锛圕ountForAcc++銆�2锛�//herecanadjustthetotallytimeofacceleration

{

CountForAcc=0;

//if锛圖riverMotorFlag==TRUE&&PR3銆婳C_PERIOD_MAX+SPEED_STEP锛�

if锛圖riverMotorFlag==TRUE&&Index銆夾CC_TIMES锛�

{

PR3=Period锛籌ndex++锛�;

OC4RS=PR3/2;

}

}

}

閫氶亷CalculateSModelLine鎺ュ彛寰楀埌濡備笅涓嶅悓鐨勫咕姊濆姞閫熸洸绶氾細

榛冭壊锛欳alculateSModelLine锛團req锛孭eriod锛�1000锛�56000锛�16000锛�4锛�;

姗欒壊锛欳alculateSModelLine锛團req锛孭eriod锛�1000锛�64000锛�500锛�8锛�;

钘嶈壊锛欳alculateSModelLine锛團req锛孭eriod锛�1000锛�64000锛�500锛�15锛�;

鐏拌壊锛欳alculateSModelLine锛團req锛孭eriod锛�1000锛�40000锛�500锛�5锛�;

姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

鏈€鍚庡彲浠ヤ及绠楀姞閫熼亷绋嬬殑鏅傞枔鍜岃浣嶇Щ锛屼互姗欒壊鏇茬窔鐐轰緥锛欳alculateSModelLine锛團req锛孭eriod锛�1000锛�64000锛�500锛�8锛夌偤渚嬶紙鍋囪ō(sh猫)鍦ㄤ腑鏂蜂腑娌掓湁if锛圕ountForAcc++銆�2锛夋浠堕檺鍒讹級锛�

鏅傞枔锛歅eriod绗竴鍊嬮粸鐨勫€肩偤10000000/500=20000锛屾渶鍚庝篃榛炵殑鍊�10000000/64000=156锛屽钩鍧囧€肩偤10000宸﹀彸锛宼imer涓柗鐨勫钩鍧囨檪闁揟n=10000/10000000=1ms锛�1000鍊嬮粸锛岀附鏅傞枔鐐�1s锛岀暥鐒�锛岃捣濮嬮牷鐜囧ぇ鍔犻€熸檪闁撳氨瓒婄煭锛屾瘮濡侳min=16000Hz锛孎(xi脿n)max=64000锛屽墖40ms宸﹀彸鍗冲彲瀹屾垚鍔犻€熼亷绋嬨€�

瑙掍綅绉伙細1.8锛堝柈姝ワ級*1000锛堟鏁�(sh霉)锛�/4锛堢窗鍒嗭級=450掳

涓婅堪鐐哄姞閫熼亷绋�锛屾笡閫熷悓妯g殑閬撶悊锛屽彧瑕佸皣鏂圭▼鏀圭偤锛�

姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

鍙互寰楀埌娓涢€熸洸绶氬涓嬫墍绀猴細

姝ラ€查浕姗烻鍨嬫洸绶氬姞娓涢€熺畻娉曡垏瀵︾従(xi脿n)

妯欑敖锛�

榛炶磰

鍒嗕韩鍒帮細

涓婁竴绡囷細蹇€熻(di脿o)瑭︿己鏈嶉浕姗� 6鍊嬫椹熸暀...

涓嬩竴绡囷細CAN绺界窔涓€楂斿寲姝ラ€查浕姗熼﹨(q奴)鍕曞櫒...

涓湅鍌冲嫊缍�(w菐ng)鐗堟瑠(qu谩n)鑸囧厤璨伈鏄庯細鍑℃湰缍�(w菐ng)娉ㄦ槑[渚嗘簮锛氫腑鍦嬪偝鍕曠恫(w菐ng)]鐨勬墍鏈夋枃瀛�銆佸湒鐗�銆侀煶瑕栧拰瑕栭牷鏂囦欢锛岀増娆�(qu谩n)鍧囩偤涓湅鍌冲嫊缍�(w菐ng)(www.wangxinlc.cn)鐛ㄥ鎵€鏈�銆傚闇€杞�(zhu菐n)杓夎珛鑸�0755-82949061鑱�(li谩n)绯汇€備换浣曞獟楂�銆佺恫(w菐ng)绔欐垨鍊嬩汉杞�(zhu菐n)杓変娇鐢ㄦ檪闋堟敞鏄庝締婧愨€滀腑鍦嬪偝鍕曠恫(w菐ng)鈥�锛岄仌鍙嶈€呮湰缍�(w菐ng)灏囪拷绌跺叾娉曞緥璨换銆�

鏈恫(w菐ng)杞�(zhu菐n)杓夊苟娉ㄦ槑鍏朵粬渚嗘簮鐨勭ǹ浠讹紝鍧囦締鑷簰鑱�(li谩n)缍�(w菐ng)鎴栨キ(y猫)鍏�(n猫i)鎶曠ǹ浜哄+锛岀増娆�(qu谩n)灞簬鍘熺増娆�(qu谩n)浜恒€傝綁(zhu菐n)杓夎珛淇濈暀绋夸欢渚嗘簮鍙婁綔鑰�锛岀姝㈡搮鑷鏀�锛岄仌鑰呰嚜璨犵増娆�(qu谩n)娉曞緥璨换銆�

缍�(w菐ng)绔欑啊浠�|鏈冨摗鏈嶅嫏(w霉)|鑱�(li谩n)绯绘柟寮�|骞姪淇℃伅|鐗堟瑠(qu谩n)淇℃伅|缍�(w菐ng)绔欏湴鍦�|鍙嬫儏閺堟帴|娉曞緥鏀寔|鎰忚鍙嶉|sitemap

鍌冲嫊缍�(w菐ng)-宸ユキ(y猫)鑷嫊鍖栬垏鏅鸿兘鍒堕€犵殑鍏ㄥ獟楂斺€滀簰鑱�(li谩n)缍�(w菐ng)+鈥濆壍(chu脿ng)鏂版湇鍕�(w霉)骞宠嚭

缍�(w菐ng)绔欏鏈�鏈嶅嫏(w霉)鍜ㄨ閲囪臣鍜ㄨ濯掗珨鍚堜綔

Chuandong.com Copyright ?2005 - 2025 锛孉ll Rights Reserved 娣卞湷甯傚ェ缇庡ぇ鍞愬唬鍛婃湁闄愬叕鍙� 鐗堟瑠(qu谩n)鎵€鏈�
绮礗CP鍌� 14004826铏� | 鐕熸キ(y猫)鍩�(zh铆)鐓ц瓑鏇� | 涓嶈壇淇℃伅鑸夊牨涓績 | 绮靛叕缍�(w菐ng)瀹夊倷 44030402000946铏�