亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? curmodel.s

?? 使用dsPIC30F 實現交流感應電機的矢量控制源代碼
?? S
字號:
;*******************************************************************
; Routines: CurModel
;
;*******************************************************************

; Common to all routines in file

          .include "general.inc"
          .include "curmodel.inc"
          .include "park.inc"

;*******************************************************************
; CurModel
;  
;Description:        
;
;
;Physical constants:
;  fRotorTmConst        Rotor time constant in sec
;
;Physical form of equations:
;  Magnetizing current (amps):
;     Imag = Imag + (fLoopPeriod/fRotorTmConst)*(Id - Imag)
;
;  Slip speed in RPS:
;     VelSlipRPS = (1/fRotorTmConst) * Iq/Imag / (2*pi)
;
;  Rotor flux speed in RPS:
;     VelFluxRPS = iPoles * VelMechRPS + VelSlipRPS
;
;  Rotor flux angle (radians):
;     AngFlux = AngFlux + fLoopPeriod * 2 * pi * VelFluxRPS
;
;Scaled Variables:
;  qdImag     Magnetizing current scaled by maximum current (1.31)
;  qVelSlip   Mechnical Slip velocity in RPS scaled by fScaleMechRPS
;  qAngFlux   Flux angle scaled by pi
;
;Scaled Equations:
;  qdImag     = qdImag + qKcur * (qId - qdImag)
;  qVelSlip   = qKslip * qIq/qdImag
;  qAngFlux   = qAngFlux + qKdelta * (qVelMech + qVelSlip)
;
;Scaling factors:
;  qKcur = (2^15) * (fLoopPeriod/fRotorTmConst)
;  qKdelta = (2^15) * 2 * iPoles * fLoopPeriod * fScaleMechRPS
;  qKslip = (2^15)/(2 * pi * fRotorTmConst * iPoles * fScaleMechRPS)
;
;
;Functional prototype:
; 
; void CurModel( void )
;
;On Entry:   CurModelParm structure must contain qKcur, qKslip, iKpoles, 
;                             qKdelta, qVelMech, qMaxSlipVel
;
;On Exit:    CurModelParm will contain qAngFlux, qdImag and qVelSlip
;
;Parameters: 
; Input arguments: None
;
; Return:
;   Void
;
; SFR Settings required:
;         CORCON.SATA  = 0
;         CORCON.IF    = 0
;
; Support routines required: None
;
; Local Stack usage: 0
;
; Registers modified: w0-w7,AccA
;
; Timing: 72 instruction cycles
;
;*******************************************************************
;
;=================== CODE =====================
          .section  .text

; Register usage for CurModel

          .equ SignW,   w2   ; track sign changes
          .equ ShiftW,  w3   ; # shifts before divide
          .equ IqW,     w4   ; Q current (1.15)
          .equ KslipW,  w5   ; Kslip constant (1.15)
          .equ ImagW,   w7   ; magnetizing current (1.15)


          .global   _CurModel
          .global   CurModel

_CurModel:
CurModel:
		  		  
     ;; qdImag = qdImag + qKcur * (qId - qdImag)      ;; magnetizing current

          mov.w     _CurModelParm+CurMod_qdImag,w6
          mov.w     _CurModelParm+CurMod_qdImag+2,w7
          lac       w7,A
          mov.w     w6,ACCALL

          mov.w     _ParkParm+Park_qId,w4
          sub.w     w4,w7,w4                            ; qId-qdImagH
          mov.w     _CurModelParm+CurMod_qKcur,w5

          mac       w4*w5,A     ; add Kcur*(Id-Imag) to Imag
          sac       A,w7 
          mov.w     ACCALL,w6
          mov.w     w6,_CurModelParm+CurMod_qdImag
          mov.w     w7,_CurModelParm+CurMod_qdImag+2

     ;; qVelSlip   = qKslip * qIq/qdImag

     ;; First make qIqW and qdImagW positive and save sign in SignW
          clr       SignW              ; set flag sign to positive

     ;; if( IqW < 0 ) => toggle SignW and set IqW = -IqW
          mov.w     _ParkParm+Park_qIq,IqW
          cp0       IqW
          bra       Z,jCurModSkip
          bra       NN,jCurMod1
          neg       IqW,IqW
          com       SignW,SignW         ; toggle sign
jCurMod1:

     ;; if( ImagW < 0 ) => toggle SignW and set ImagW = -ImagW
          cp0       ImagW
          bra       NN,jCurMod2
          neg       ImagW,ImagW
          com       SignW,SignW         ; toggle sign
jCurMod2:

     ;; Calculate Kslip*|IqW| in Acc A to maintain 1.31
          mov.w     _CurModelParm+CurMod_qKslip,KslipW
          mpy       IqW*KslipW,A

     ;; Make sure denominator is > numerator else skip term
          sac       A,w0                ; temporary
          cp        ImagW,w0            ; |qdImag| - |Kslip*qIq|
          bra       LEU,jCurModSkip     ; skip term:  |qdImag| <= |Kslip*qIq|  

     ;; This will not be required for later releases of the 6010 <SILICON_ERR>
          clr.w     ShiftW

     ;; Calculate how many places ImagW can be shifted without putting 
     ;; a one in the msb location (preserves sign)
          
          ff1l      ImagW,ShiftW
          sub.w     ShiftW,#2,ShiftW   ; # shifts necessary to put 1 in bit 14

     ;; Shift:  ImagW = ImagW << ShiftW
          sl        ImagW,ShiftW,ImagW

     ;; Shift AccA, Requires (-ShiftW) to shift left.
          neg       ShiftW,ShiftW

     ;; |Kslip*qIq| = |Kslip*qIq| << ShiftW
          sftac     A,ShiftW
          
          
		
     ;; Do divide of |qKslip*qIq|/|ImagW|.  We know at this point that the
     ;; results will be positive and < 1.0.  We also know that we have maximum
     ;; precision.

          sac       A,w6 
          repeat    #17
          divf      w6,ImagW            ; w0 = KslipW*IqW/ImagW, w1 = remainder

     ;; Limit maximum slip speed
          mov.w     _CurModelParm+CurMod_qMaxSlipVel,w1
          cp        w1,w0             ; qMaxSlipSpeed - | Kslip*qIq/qdImag |
          bra       NN,jCurMod4

     ;; result too large: replace it with qMaxSlipSpeed
          mov.w     w1,w0
          bra       jCurMod4

jCurModSkip:
     ;; term skipped entirely - set it = 0
          clr.w     w0

jCurMod4:
     ;; set correct sign
          btsc      SignW,#0
          neg       w0,w0

     ;; For testing
          mov.w     w0,_CurModelParm+CurMod_qVelSlip

     ;; Add mechanical velocity
          mov.w     _CurModelParm+CurMod_qVelMech,w4
          add.w     w0,w4,w4
          mov.w     w4,_CurModelParm+CurMod_qVelFlux
        
        
     ;; Load AngFlux to Acc A
                   
          mov.w     _CurModelParm+CurMod_qAngFlux,w1
          lac       w1,A

          mov.w     _CurModelParm+CurMod_qKdelta,w5
          mac       w4*w5,A
		  
		  ; Need to temporarily turn off data space write
		  ; saturation while accumulator is stored.
		  ; This is because qAngFlux represents the
		  ; flux angle and must be able to wrap beyond
		  ; 0x7FFF.
		  bclr		CORCON,#SATDW
		  sac       A,w4
		  bset		CORCON,#SATDW
          mov.w     w4,_CurModelParm+CurMod_qAngFlux
          
          
          return


;*******************************************************************
; void InitCurModel(void)
;         Initialize private CurModel variables.  
;*******************************************************************

; Register usage for InitCurModel


;*******************************************************************

          .global   _InitCurModel
          .global   InitCurModel
_InitCurModel:
InitCurModel:

          clr.w     _CurModelParm+CurMod_qAngFlux
          clr.w     _CurModelParm+CurMod_qdImag
          clr.w     _CurModelParm+CurMod_qdImag+2
          return

          .end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美v日韩v国产v| 久久久久久久久久久99999| 国产不卡视频在线播放| 久久精品久久久精品美女| 麻豆91精品视频| 久久se这里有精品| 国产盗摄精品一区二区三区在线| 久久99国产精品久久| 国产麻豆一精品一av一免费| 国产另类ts人妖一区二区| 国产成人精品免费视频网站| 丰满白嫩尤物一区二区| 成人福利视频在线| 欧美在线视频日韩| 日韩欧美国产不卡| 日本一区二区三区在线观看| 国产精品电影一区二区三区| 亚洲欧美日韩一区二区 | 国产成人综合亚洲91猫咪| 国产一区二区主播在线| 成人精品在线视频观看| 欧美亚洲综合色| 欧美大尺度电影在线| 国产精品免费视频网站| 午夜精品视频在线观看| 黄一区二区三区| 色婷婷久久久久swag精品| 91精品视频网| 国产精品污网站| 日韩vs国产vs欧美| 99久久免费视频.com| 欧美一卡二卡三卡| 综合色中文字幕| 久久激五月天综合精品| 91小视频在线| 26uuu另类欧美亚洲曰本| 亚洲色图.com| 国产精品88888| 欧美色视频在线| 国产精品久久久久久久第一福利 | 欧美日韩国产一级二级| 国产日韩欧美亚洲| 欧美a一区二区| 99国产精品99久久久久久| 欧美一级在线观看| 亚洲激情图片小说视频| 国产精一区二区三区| 欧美一a一片一级一片| 国产女主播视频一区二区| 午夜伦欧美伦电影理论片| 成人av电影免费在线播放| 日韩精品一区二区三区三区免费| 一区二区三区在线观看视频| 国产一二精品视频| 日韩丝袜美女视频| 亚洲高清久久久| 99精品1区2区| 亚洲欧美综合色| 国产精品99久久久久| 欧美电影免费提供在线观看| 视频一区二区中文字幕| 欧美伊人久久大香线蕉综合69| 中文字幕一区二区三区在线不卡 | 欧美日韩国产综合视频在线观看 | 91精品国产一区二区人妖| 亚洲男同1069视频| 91在线观看污| 国产精品久久久久婷婷| 国产成人午夜视频| 国产亚洲欧美一区在线观看| 久久不见久久见免费视频1| 日韩欧美一级二级三级| 麻豆精品视频在线观看免费 | 91美女在线观看| 亚洲色图19p| 欧美性视频一区二区三区| 亚洲在线一区二区三区| 欧美体内she精高潮| 亚洲午夜影视影院在线观看| 欧美人伦禁忌dvd放荡欲情| 日日夜夜一区二区| 日韩精品一区二| 成人免费观看视频| 椎名由奈av一区二区三区| 欧洲日韩一区二区三区| 亚洲国产另类精品专区| 欧美一区二区三区免费| 国产永久精品大片wwwapp| 亚洲国产电影在线观看| 色婷婷综合激情| 成人黄色av网站在线| 日韩毛片精品高清免费| 不卡在线视频中文字幕| 日韩一区中文字幕| 91女神在线视频| 亚洲一区影音先锋| 日韩欧美一二三区| 成人免费视频播放| 夜夜精品浪潮av一区二区三区| 欧美视频日韩视频在线观看| 色哟哟欧美精品| 亚洲精品视频在线观看网站| 欧美人伦禁忌dvd放荡欲情| 99精品视频一区二区三区| 狠狠色综合播放一区二区| 久久久777精品电影网影网| 成人免费视频网站在线观看| 一区二区日韩电影| 91精品国产综合久久久久| 国内外成人在线| 国产在线视频一区二区| 自拍偷在线精品自拍偷无码专区| 欧美日韩一区二区三区在线 | 欧美日韩一区二区三区四区五区| 人人精品人人爱| 一区在线观看视频| 制服丝袜亚洲色图| 91免费看视频| 韩国成人在线视频| 日韩精品福利网| 亚洲视频在线一区| 久久久国产精品午夜一区ai换脸| 色婷婷综合久久久久中文一区二区 | 亚洲在线观看免费| 国产欧美一区二区精品忘忧草| 色婷婷国产精品综合在线观看| 国产在线精品不卡| 青青草97国产精品免费观看无弹窗版| 亚洲日本在线视频观看| 久久色中文字幕| 欧美一二三四在线| 欧美日本一区二区| 欧美视频日韩视频在线观看| www..com久久爱| 国产精品中文有码| 国产呦精品一区二区三区网站| 日韩av电影免费观看高清完整版| 亚洲男人的天堂在线aⅴ视频| 国产精品视频麻豆| 久久精品人人爽人人爽| 日韩三级在线免费观看| 欧美日韩久久不卡| 精品视频全国免费看| 97久久精品人人做人人爽| va亚洲va日韩不卡在线观看| 粉嫩av一区二区三区| 国产精品一区二区x88av| 免费成人在线网站| 久久精品国产精品亚洲红杏| 免费精品99久久国产综合精品| 男人的天堂久久精品| 蜜臀av在线播放一区二区三区| 免费久久精品视频| 久久精品国产77777蜜臀| 男男视频亚洲欧美| 久久99久国产精品黄毛片色诱| 免费观看91视频大全| 麻豆91精品视频| 国产一区二区三区香蕉| 成人免费视频播放| 91视频在线看| 欧美日韩免费高清一区色橹橹| 欧美午夜寂寞影院| 日韩一级免费观看| 国产日本亚洲高清| 亚洲天堂免费看| 亚洲成a人v欧美综合天堂| 日本亚洲三级在线| 国产不卡高清在线观看视频| 成人福利视频网站| 在线精品国精品国产尤物884a| 欧美性感一区二区三区| 在线电影一区二区三区| 精品精品国产高清一毛片一天堂| 精品日韩av一区二区| 国产欧美日韩激情| 亚洲成人免费看| 国产一区二区不卡| 欧美在线不卡一区| 精品久久99ma| 一区二区三区欧美激情| 老鸭窝一区二区久久精品| 欧美一级片免费看| 国产三区在线成人av| 亚洲国产一区二区视频| 国产综合成人久久大片91| 91视频你懂的| 精品国产精品一区二区夜夜嗨| 一区在线观看视频| 久草在线在线精品观看| 色噜噜偷拍精品综合在线| 日韩美女一区二区三区四区| 国产精品萝li| 久久国产精品99精品国产| 91丨porny丨最新| 久久综合五月天婷婷伊人| 亚洲成a人v欧美综合天堂| av不卡在线播放| 久久久久88色偷偷免费| 亚洲一区二区在线免费观看视频|