This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于SolarHV_DCAC实例中块说明的问题



请问SolarHV_DCAC中的的INV_ICMD:N(计算电流基准) 这个块的说明书名字是什么?需要下载这个文档。谢谢!

  • 这个模块不是标准的digital powerlab中的,是对于这个项目定义的,你有什么不明白的地方吗?你应该是指的以下的源码的模块吧:

    ;=============================
    INV_ICMD_INIT .macro n
    ;=============================
    ; variable declarations
    _INV_ICMD_Vcmd:n: .usect "INV_ICMD_Section",2,1,1 ; input terminal
    _INV_ICMD_Vac:n: .usect "INV_ICMD_Section",2,1,1 ; output terminal
    _INV_ICMD_Out:n: .usect "INV_ICMD_Section",2,1,1
    _INV_ICMD_Comp:n: .usect "INV_ICMD_Section",2,1,1 ; RMS compensation
    _INV_ICMD_Out_Max:n: .usect "INV_ICMD_Section",2,1,1
    _INV_ICMD_Out_Min:n: .usect "INV_ICMD_Section",2,1,1

    ;Publish Terminal Pointers for access from the C environment
    ;===========================================================
    .def _INV_ICMD_Vcmd:n:
    .def _INV_ICMD_Vac:n:
    .def _INV_ICMD_Out:n:
    .def _INV_ICMD_Comp:n:
    .def _INV_ICMD_Out_Max:n:
    .def _INV_ICMD_Out_Min:n:

    ; set terminal pointer to ZeroNet
    MOVL XAR2, #ZeroNet
    MOVW DP, #_INV_ICMD_Vcmd:n:
    MOVL @_INV_ICMD_Vcmd:n:, XAR2

    MOVW DP, #_INV_ICMD_Vac:n:
    MOVL @_INV_ICMD_Vac:n:,XAR2

    MOVW DP, #_INV_ICMD_Out:n:
    MOVL @_INV_ICMD_Out:n:,XAR2

    MOVW DP, #_INV_ICMD_Comp:n:
    MOVL @_INV_ICMD_Comp:n:,XAR2

    MOVW DP, #_INV_ICMD_Out_Max:n:
    MOVL @_INV_ICMD_Out_Max:n:,XAR2

    MOVW DP, #_INV_ICMD_Out_Min:n:
    MOVL @_INV_ICMD_Out_Min:n:,XAR2

    .endm

    ;-------------------------------------------------------------------------------------------
    ; ICMD_OUT = Vcmd * Vac * Comp
    ;=============================
    INV_ICMD .macro n
    ;=============================

    MOVW DP, #_INV_ICMD_Vcmd:n:
    MOVL XAR0,@_INV_ICMD_Vcmd:n: ; Net pointer to amplitude

    MOVW DP, #_INV_ICMD_Vac:n:
    MOVL XAR1,@_INV_ICMD_Vac:n: ; Net pointer to line voltage

    MOVW DP, #_INV_ICMD_Out:n:
    MOVL XAR2,@_INV_ICMD_Out:n: ; Net pointer to loop out

    MOVW DP, #_INV_ICMD_Comp:n:
    MOVL XAR3,@_INV_ICMD_Comp:n: ; Q26

    MOVL XT,*XAR3
    QMPYL ACC,XT,*XAR0 ; Q24*Q26 >>32 = Q18
    LSL ACC,6 ; Q24

    MOVL XT,@ACC ; XT = amplitude Q24
    QMPYL ACC,XT,*XAR1 ;ACC = amplitude(Q24)*Vac(Q24)>>32 = Q16
    LSL ACC,#8 ; Q16<<8 = Q24

    MOVW DP,#_INV_ICMD_Out_Max:n:
    MOVL XAR1,@_INV_ICMD_Out_Max:n:
    MINL ACC,*XAR1

    MOVW DP, #_INV_ICMD_Out_Min:n:
    MOVL XAR1,@_INV_ICMD_Out_Min:n:
    MAXL ACC,*XAR1
    MOVL *XAR2,ACC ; Save to the output

    .endm

    ; end of file