鏅傞枔锛�2017-12-21 11:02:05渚嗘簮锛氱恫(w菐ng)绲�(lu貌)杞�(zhu菐n)杓�
姝ラ€查浕姗�鏄皣闆昏剤娌栦俊铏熻綁(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鍨嬫洸绶氱殑鐨勬柟绋�
锛屽湪锛�-5锛�5锛界殑鍦栧舰濡備笅鍦栨墍绀猴細
濡傝灏囨鏇茬窔鎳夌敤鍦ㄦ閫查浕姗熺殑鍔�銆佹笡閫熼亷绋嬩腑锛岄渶瑕佸皣鏂圭▼鍦╔Y鍧愭绯婚€茶骞崇Щ锛屽悓鏅傚皪鏇茬窔閫茶鎷夊崌璁婂寲锛�
鍏朵腑鐨凙鍒嗛噺鍦▂鏂瑰悜閫茶骞崇Щ锛孊鍒嗛噺鍦▂鏂瑰悜閫茶鎷変几锛宎x+b鍒嗛噺鍦▁鏂瑰悜閫茶骞崇Щ鍜屾媺浼搞€�
闋呯洰涓姞閫熼亷绋嬶細寰�5600Hz鍔犻€熷埌64000Hz锛岄噰鐢�4绱板垎銆傝几鍑烘瘮杓冩ā濉婃墍鐢ㄧ殑瀹氭檪鍣ㄩ﹨(q奴)鍕曢牷鐜囩偤10M锛岄噰鐢�1000鍊嬮粸閫茶鍔犻€熻檿鐞�銆傛渶绲傛牴鎿�(j霉)闋呯洰鐨勯渶瑕侊紝鍦ㄥ姞閫熼亷绋嬩腑閲囩敤鐨勬洸绶氭柟绋嬬偤锛�
銆�
鍏朵腑鐨凢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锛�;
鏈€鍚庡彲浠ヤ及绠楀姞閫熼亷绋嬬殑鏅傞枔鍜岃浣嶇Щ锛屼互姗欒壊鏇茬窔鐐轰緥锛欳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殑閬撶悊锛屽彧瑕佸皣鏂圭▼鏀圭偤锛�
鍙互寰楀埌娓涢€熸洸绶氬涓嬫墍绀猴細
妯欑敖锛�
涓湅鍌冲嫊缍�(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)娉曞緥璨换銆�
鐢�(ch菐n)鍝佹柊鑱�
鏇村>绠″垏楂樻晥鍔犲伐绉樼睄锛氬皬绠″鏂�+Tekla鎻掍欢...
2025-05-19
B1绯诲垪鑴堟矕鍨嬩己鏈嶅伐钘濇鍔熻兘涓婄窔锛岃畵姗�...
2025-04-30
rpi-image-gen锛氭ü鑾撴淳杌熶欢閺″儚妲�(g貌u)寤虹殑绲�...
2025-04-08