⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motor velocity control dsp program.txt

📁 three-phase Permanent Magnet Synchronous Motor(PMSM) velocity control DSP program
💻 TXT
📖 第 1 页 / 共 3 页
字号:
         SACH      VSBE_REF,4            ;保存VSBE_REF
         LACC      #0 
         LT        VSDREF                ;T=VSDREF
         MPYS     COS   ;ACC= -VSQREF*SIN(TETA_E),P=VSDREF*COS(TETA_E)
         APAC             ;ACC= -VSQREF*SIN(TETA_E)+VSDREF*COS(TETA_E)
         SACH      VSAL_REF,4           ;保存VSAL_REF
;----------------------- SVPWM-----------------------------------------------------------------------------------
;-----------------------根据式(3-47)计算扇区数SECTOR-------------------------------------------------------
         LACC      #0                      P清零
         SACL      P
         LACC      VSBE_REF             ;B0
         BCND     B0_NEG, LEQ            ;B0≤0跳转
         LACC      #1
         SACL      P                      ;否则P=1
B0_NEG  
         LT        VSAL_REF              ;计算B1
         MPY       #-7095                  ;乘 的Q12格式
         PAC
         SACH      TMP,4
         LACC      TMP
         SUB       VSBE_REF
         SFR                              ;除2
         BCND      B1_NEG,LEQ          ;B1≤0跳转
         LACC      P
         ADD       #2 
         SACL      P                     ;否则P+2
B1_NEG  
         LACC      TMP                  ;计算B2
         ADD       VSBE_REF
         SFR                              ;除2
         NEG                              ;求补
         BCND      B2_NEG,LEQ           ;B2≤0跳转
         LACC       P
         ADD        #4
         SACL       P                     ;否则P+4
B2_NEG  
         LACC       #PSECTOR           ;指向表头
         ADD        P
         SUB        #1
         TBLR       SECTOR             ;得到扇区数
;-----------------------根据逆阵计算T1,T2---------------------------------------------------------------
         LACC      #DEC_MS             ;逆阵数据首地址
         ADD       SECTOR,2 
         SACL      TMP                  ;产生地址指针
         LAR       AR0,TMP              ;指向逆阵表
         LT        VSAL_REF     ;Q13格式.计算VSAL_REF *M(1,1)+VSBE_REF*M(1,2)
         MPY       *+                    ;M(1,1)* VSAL_REF, Q11
         PAC                              ; Q11格式
         LT        VSBE_REF              ; Q11
         MPY      *+                     ; M(1,2)* VSBE_REF, Q11
         APAC                             ;0.5*C1,Q11
         BCND      CMP1BIG0,GEQ        ;如果大于0继续
         LACC      #0                      ;否则0
CMP1BIG0  
         SACH    TMP                 ;0.5*C1,Q11格式
         LT        TMP                    ;Q11格式
         MPY      T1_PERIODS             ;Q0
         PAC                              ;Q0格式
         SACH      CMP_1                ; 0.5*C1*TP,Q0格式
         LT        VSAL_REF      ;计算VSAL_REF*M(2,1)+VSBE_REF*M(2,2)
         MPY       *+                    ; M(2,1) VSAL_REF,Q11
         PAC                             ; Q11格式
         LT        VSBE_REF             ; Q13格式
         MPY       *+                      ; M(2,2) VSBE_REF,Q11
         APAC                            ; 0.5*C2,Q11
         BCND      CMP2BIG0,GEQ          ;如果大于0继续
         LACC      #0                       ;否则0
CMP2BIG0  
         SACH    TMP                   ; 0.5*C2,Q11格式
         LT        TMP                   ;Q11格式
         MPY       T1_PERIODS            ; Q0
         PAC                               ; Q0格式
         SACH      CMP_2                 ; 0.5*C2*TP,Q0格式
         LACC      #600                    ;T1周期值
         SUB       CMP_1 
         SUB       CMP_2                  ; Q0格式
         BCND     CMP0BIG0,GEQ          ;如果大于0继续
         LACC      #0                      ;否则0
CMP0BIG0  
         SACL    CMP_0 
         LACC      CMP_0,15               ;相当于右移1位,除2
         SACH      CMP_0                  ; 0.25*C0*TP
         LACC      #FIRST_    ;指向第一次比较匹配的比较寄存器地址表入口地址
         ADD       SECTOR  
         TBLR      FIRST_TOG            ;查到第一次比较匹配的比较器地址
         LAR       AR0,FIRST_TOG        ;指向该地址
         LACC      CMP_0 
         SACL      *                      ; CMP_0送入该比较器
         LACC      #SECOND_  ;指向第二次比较匹配的比较寄存器地址表入口地址
         ADD       SECTOR 
         TBLR      SEC_TOG              ;查到第二次比较匹配的比较器地址
         LAR       AR0,SEC_TOG          ;指向该地址
         LACC      CMP_0 
         ADD       CMP_1                ; CMP_0+CMP_1
         SACL      *                     ;送入该比较器
         LACC      #CMPR3
         SUB       FIRST_TOG 
         ADD       #CMPR2 
         SUB       SEC_TOG 
         ADD       #CMPR1
         SACL      TMP                  ;计算第三次比较匹配的比较器地址
         LAR       AR0,TMP              ;指向该地址
         LACC      CMP_0 
         ADD       CMP_1 
         ADD       CMP_2                ; CMP_0+CMP_1+CMP_2
         SACL      *                     ;送入该比较器
;-----------------------恢复现场------------------------------------------------------------------------
         LARP      AR4
         MAR       *+
         LACL       *+ 
         ADD       *+,16
         LST       #0,*+
         LST       #1,*+
         CLRC      INTM
         RET
;-----------------------数据区------------------------------------------------------------------------------
         .DATA
PSECTOR 
         .WORD  1                        ;扇区数
         .WORD  5
         .WORD  0
         .WORD  3
         .WORD  2
         .WORD  4
SINTAB  .WORD 0                         ;256个SIN函数值,Q12格式
         .WORD 101,201,301,401,501
         .WORD 601,700,799,897,995 
         .WORD 1092,1189,1285,1380,1474
         .WORD 1567,1660,1751,1842,1931 
         .WORD 2019,2106,2191,2276,2359
         .WORD 2440,2520,2598,2675,2751 
         .WORD 2824,2896,2967,3035,3102
         .WORD 3166,3229,3290,3349,3406 
         .WORD 3461,3513,3564,3612,3659
         .WORD 3703,3745,3784,3822,3857 
         .WORD 3889,3920,3948,3973,3996
         .WORD 4017,4036,4052,4065,4076 
         .WORD 4085,4091,4095,4096,4095
         .WORD 4091,4085,4076,4065,4052 
         .WORD 4036,4017,3996,3973,3948
         .WORD 3920,3889,3857,3822,3784 
         .WORD 3745,3703,3659,3612,3564
         .WORD 3513,3461,3406,3349,3290 
         .WORD 3229,3166,3102,3035,2967
         .WORD 2896,2824,2751,2675,2598 
         .WORD 2520,2440,2359,2276,2191
         .WORD 2106,2019,1931,1842,1751
         .WORD 1660,1567,1474,1380,1285
         .WORD 1189,1092,995,897,799 
         .WORD 700,601,501,401,301,201,101,0       ;180°
         .WORD 65435,65335,65235,65135,65035
         .WORD 64935,64836,64737,64639,64541 
         .WORD 64444,64347,64251,64156,64062
         .WORD 63969,63876,63785,63694,63605 
         .WORD 63517,63430,63345,63260,63177
         .WORD 63096,63016,62938,62861,62785 
         .WORD 62712,62640,62569,62501,62434
         .WORD 62370,62307,62246,62187,62130 
         .WORD 62075,62023,61972,61924,61877
         .WORD 61833,61791,61752,61714,61679 
         .WORD 61647,61616,61588,61563,61540
         .WORD 61519,61500,61484,61471,61460 
         .WORD 61451,61445,61441,61440,61441
         .WORD 61445,61451,61460,61471,61484
         .WORD 61500,61519,61540,61563,61588
         .WORD 61616,61647,61679,61714,61752
         .WORD 61791,61833,61877,61924,61972
         .WORD 62023,62075,62130,62187,62246
         .WORD 62307,62370,62434,62501,62569
         .WORD 62640,62712,62785,62861,62938
         .WORD 63016,63096,63177,63260,63345 
         .WORD 63430,63517,63605,63694,63785
         .WORD 63876,63969,64062,64156,64251
         .WORD 64347,64444,64541,64639,64737
         .WORD 64836,64935,65035,65135,65235,65335,65435
ANGLES_   
         .WORD 20066           ; 矩阵A的逆阵数据,每一个逆阵有4个数据,Q14格式
         .WORD –11585               ; 按参考电压所在的扇区索引
         .WORD 0
         .WORD 23170
         .WORD 20066
         .WORD 11585
         .WORD -20066
         .WORD 11585
         .WORD 0
         .WORD 23170
         .WORD -20066
         .WORD -11585
         .WORD -20066
         .WORD 11585
         .WORD 0
         .WORD -23170
         .WORD -20066
         .WORD -11585
         .WORD 20066
         .WORD -11585
         .WORD 0
         .WORD -23170
         .WORD 20066
         .WORD 11585
FIRST_   
         .WORD CMPR1                  ; 用于第1次比较匹配的比较寄存器地址,
         .WORD CMPR2                    ; 按参考电压所在的扇区索引
         .WORD CMPR2 
         .WORD CMPR3 
         .WORD CMPR3 
         .WORD CMPR1 
SECOND_  
         .WORD CMPR2                  ;用于第2次比较匹配的比较寄存器地址,
         .WORD CMPR1                    ; 按参考电压所在的扇区索引
         .WORD CMPR3 
         .WORD CMPR2 
         .WORD CMPR1 
         .WORD CMPR3 
         .END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -