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

📄 imvc07_a.lst

📁 2407的交流电机控制程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
     302 00bc bc00-         LDP     #_position
     303 00bd bf80          LACC    #0
         00be 0000  
     304 00bf 9064-         SACL    _pos_ref_1
     305 00c0 9065-         SACL    _pos_1
     306 00c1 905f-         SACL    _pos_ref
     307 00c2 905e-         SACL    _pos
     308 00c3 9066-         SACL    _e_pos_1
     309 00c4 9067-         SACL    _I_pos_1_high
     310 00c5 9068-         SACL    _I_pos_1_low
     311 00c6 9053-         SACL    _omg_ref
     312 00c7 9069-         SACL    _omg_ref_low
     313 00c8 ef00          RET
     314            
     315            ;=============================================================================
     316            ; Routine Name: _pi_reg_pos
     317            ; -------------------------
     318            ; Description: Implements position PI controller
     319            ;
     320            ;       OVM=1
     321            ;       dyi=sat(yi-yim1)
     322            ;       dyri=sat(yri-yrim1)
     323            ;       ei=sat(eim1+dyri-dyi)
     324            ;       dyri=ei-eim1+dyi 
     325            ;       Pi=satsfl(Kps*dyri-Kps*dyi)
     326            ;       uim1=ui=sat(Pi+Iim1+uim1)
     327            ;       Iim1=satsfl(Kis*ei)
     328            ;       yrim1=yrim1+dyri 
     329            ;       yim1=yi
     330            ;       eim1=ei
     331            ;       OVM=0
     332            ; --------------------------
     333            ; Calling Convention: extern void _pi_reg_pos();
     334            ;==============================================================================
     335            ;       +--------------------------------------------------------------------------+
     336            ;       | Input  global variables:                                                                              
     337            ;       +--------------------------------------------------------------------------+
     338            ;       | _pos_ref              |       reference value of the speed at step i (yri)                            
     339            ;       | _pos                  |       feedback value of the speed at step i (yi)                              
     340            ;       | _Kps_pos              |       scaled Kp coeff: Kps = Kp / (2^scalKp) so that                          
     341            ;       |                       |               -1 < Kps < +1                                                   
     342            ;       | _sf_P_pos             |       sf_P_omg = scalKp                                                       
     343            ;       | _Kis_pos              |       scaled Ki coeff: Kis = Ki / (2^scalKi) so that                          
     344            ;       |                       |               -1 < Kis < +1                                                   
     345            ;       | _sf_I_pos             |       sf_I_omg = scalKi                                                       
     346            ;       | _pos_ref_1           |        reference value of the speed at step i-1 (yrim1)                        
     347            ;       | _pos_1                |       feedback value of the speed at step i-1 (yim1)                          
     348            ;       | _e_pos_1              |       error at step i-1                                                       
     349            ;       | _I_pos_1_high      |  integral term at step i-1, (16 MSB)                                            |
     350            ;       | _I_pos_1_low  |       integral term at step i-1, (16 LSB)                                            |
     351            ;       +--------------------------------------------------------------------------+
     352            ;       | Input local variables:                                                                                
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon May 28 09:55:02 2007
Copyright (c) 1987-1999  Texas Instruments Incorporated 
D:\Imvc\IMVC07_a.asm                                                 PAGE    9

     353            ;       +--------------------------------------------------------------------------+
     354            ;       | dif_pos_ref          |        difference between actual and old reference                             
     355            ;       | dif_pos              |        difference between actual and old feedback                              
     356            ;       | e_pos         |       error at step i                                                                 
     357            ;       +--------------------------------------------------------------------------+
     358            ;       | Output  global variables:                                                                             
     359            ;       +--------------------------------------------------------------------------+
     360            ;       | _omg_ref             |        output of the regulator (16 MSB)                                        
     361            ;       | _omg_ref_low  |       output of the regulator (16 LSB)                                                
     362            ;       +--------------------------------------------------------------------------+
     363            ;------------------------------------------------------------------------------
     364                    .global _pi_reg_pos
     365            ;==============================================================================
     366 00c9       _pi_reg_pos:
     367 00c9 be47          SETC    SXM
     368 00ca bc00-         LDP     #_position
     369 00cb be43          SETC    OVM                                             ; set overflow protection mode
     370            
     371 00cc 6a5e-         LACC    _pos,16
     372 00cd 6565-         SUB     _pos_1,16
     373 00ce 9801-         SACH    dif_pos                                 ; dyi=sat(yi-yim1)
     374            
     375 00cf 6a5f-         LACC    _pos_ref,16
     376 00d0 6564-         SUB     _pos_ref_1,16
     377 00d1 9800-         SACH    dif_pos_ref                                    ; dyri=sat(yri-yrim1)
     378                            
     379 00d2 6501-         SUB     dif_pos,16                                     ; ACC=dyri-dyi
     380 00d3 6166-         ADD     _e_pos_1,16
     381 00d4 9802-         SACH    e_pos                                           ; ei=sat(eim1+dyri-dyi)
     382            
     383 00d5 6566-         SUB     _e_pos_1,16
     384 00d6 6101-         ADD     dif_pos,16
     385 00d7 9800-         SACH    dif_pos_ref                                    ; dyri=ei-eim1+dyi
     386            
     387 00d8 7360-         LT      _Kps_pos
     388 00d9 5400-         MPY     dif_pos_ref                                    ; Kps*dyri
     389 00da be03          PAC
     390 00db 5401-         MPY     dif_pos                                ; Kps*dyi
     391 00dc be05          SPAC                                                    ; Kps*dyri-Kps*dyi
     392 00dd               SATSFL  _sf_P_pos                                     ; ACC=Pi=satsfl(Kps*dyri-Kps*dyi) in Q31 format
1        00dd 83a0          sar     AR3, *+
1        00de 80ab          sar     AR0, *+,AR3
1        00df 0361-         LAR     AR3, _sf_P_pos
1        00e0 bf08          LAR     AR0, #satvals12
         00e1 0026- 
1        00e2 8be0          MAR     *0+
1        00e3 6180          ADD     *,16
1        00e4 6580          SUB     *,16
1        00e5 6580          SUB     *,16
1        00e6 6189          ADD     *,16,AR1
1        00e7 0b61-         RPT     _sf_P_pos
1        00e8 be09          SFL
1        00e9 8b90          mar     *-
1        00ea 0090          lar     AR0, *- 
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon May 28 09:55:02 2007
Copyright (c) 1987-1999  Texas Instruments Incorporated 
D:\Imvc\IMVC07_a.asm                                                 PAGE   10

1        00eb 0380          lar     AR3, *
     393 00ec be46          CLRC    SXM
     394 00ed 2068-         ADD     _I_pos_1_low
     395 00ee 2069-         ADD     _omg_ref_low
     396 00ef be47          SETC    SXM
     397 00f0 6167-         ADD     _I_pos_1_high,16
     398 00f1 6153-         ADD     _omg_ref,16
     399            
     400 00f2               sat_reg_out C_SAT_OMG_REF                             ; macro that saturates regulator's output
1        00f2 bf9f          ADD     #C_SAT_OMG_REF,15
         00f3 3334  
1        00f4 bfaf          SUB     #C_SAT_OMG_REF,15
         00f5 3334  
1        00f6 bfaf          SUB     #C_SAT_OMG_REF,15
         00f7 3334  
1        00f8 bf9f          ADD     #C_SAT_OMG_REF,15
         00f9 3334  
     401            
     402 00fa 9853-         SACH    _omg_ref                                         ; uim1=ui=sat(Pi+Iim1+uim1)
     403 00fb 9069-         SACL    _omg_ref_low
     404            
     405 00fc 7362-         LT      _Kis_pos
     406 00fd 5402-         MPY     e_pos
     407 00fe be03          PAC                                                      ; Kis*ei
     408 00ff               SATSFL  _sf_I_pos                                      ; ACC=Iim1=satsfl(Kis*ei)
1        00ff 83a0          sar     AR3, *+
1        0100 80ab          sar     AR0, *+,AR3
1        0101 0363-         LAR     AR3, _sf_I_pos
1        0102 bf08          LAR     AR0, #satvals12
         0103 0026- 
1        0104 8be0          MAR     *0+
1        0105 6180          ADD     *,16
1        0106 6580          SUB     *,16
1        0107 6580          SUB     *,16
1        0108 6189          ADD     *,16,AR1
1        0109 0b63-         RPT     _sf_I_pos
1        010a be09          SFL
1        010b 8b90          mar     *-
1        010c 0090          lar     AR0, *- 
1        010d 0380          lar     AR3, *
     409 010e 9867-         SACH    _I_pos_1_high                                  ; Iim1=satsfl(Kis*ei)
     410 010f 9068-         SACL    _I_pos_1_low
     411            
     412 0110 6a64-         LACC    _pos_ref_1,16
     413 0111 6100-         ADD     dif_pos_ref,16
     414 0112 9864-         SACH    _pos_ref_1                                     ; yrim1=yrim1+dyri
     415            
     416 0113 105e-         LACC    _pos
     417 0114 9065-         SACL    _pos_1                                         ; yim1=yi
     418            
     419 0115 1002-         LACC    e_pos
     420 0116 9066-         SACL    _e_pos_1                                        ; eim1=ei
     421            
     422 0117 be42          CLRC    OVM                                             ; disable overflow protection mode
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon May 28 09:55:02 2007
Copyright (c) 1987-1999  Texas Instruments Incorporated 
D:\Imvc\IMVC07_a.asm                                                 PAGE   11

     423 0118 ef00          RET
     424            
     425            ;=============================================================================
     426            
     427            ; Routine Name: _init_pi_reg_omg
     428            ; ------------------------------
     429            ; Description: Setup of speed, PI controller variables
     430            ; ------------------------------
     431            ; Calling Convention: extern void _init_pi_reg_omg();
     432            ;=============================================================================
     433                    .global _init_pi_reg_omg
     434            ;=============================================================================
     435 0119       _init_pi_reg_omg:
     436 0119 bc00-         LDP     #_omg
     437 011a bf80          LACC    #0
         011b 0000  
     438 011c 9058-         SACL    _omg_ref_1
     439 011d 9059-         SACL    _omg_1
     440 011e 9053-         SACL    _omg_ref
     441 011f 9052-         SACL    _omg
     442 0120 905a-         SACL    _e_omg_1
     443 0121 905b-         SACL    _I_omg_1_high
     444 0122 905c-         SACL    _I_omg_1_low
     445 0123 9047-         SACL    _i_q_ref
     446 0124 905d-         SACL    _iq_ref_low
     447 0125 ef00          RET
     448            
     449            ;=============================================================================
     450            ; Routine Name: _pi_reg_omg
     451            ; -------------------------
     452            ; Description: Implements speed PI controller
     453            ;
     454            ;       OVM=1
     455            ;       dyi=sat(yi-yim1)
     456            ;       dyri=sat(yri-yrim1)

⌨️ 快捷键说明

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