你们ti最近新推出了一个太阳能逆变的板子,里面的程序我看了很久,对一个地方我很是不明白
CMPR=period*1000/vdc(Vout+2p2z(电流环的输出))
为什么是这样就算呢
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.
以下是我对你问题的答复:
1) 这个Ratio其实就是调制波Vm到CMPR的转换系数,根据全桥逆变单极性调制方式的原理,我们可以得到输出电压Vo和直流母线电压Vdc之间是Vo=d*Vdc。2P2Z输出的结果实际上就是调制波Vm,也就是闭环系统所期望输出的电压,因此d=Vm/Vdc。若要将d转化成CMPR,就要将Vdc和载波幅值Period对应起来,即当CMPR=Period时,Vm=Vdc。所以,CMPR=Period*Vm/Vdc, 乘以1000主要是为了使定点数能够精确到1/1000.
2) 电流环的数学模型就是LC滤波器的模型(详见邮件)。电压环数学模型相对简单,可将内环等效为一比例环节,然后再建立其等效模型。
(3)这个宏主要是为了调试方便,将所需要采样的变量,按照一定的读取频率,存入到一个buffer中,这样我们可以通过串口工具,将这些buffer读出来,观察这些变量的变化情况
(4)汇编程序可以定义数组,需要使用伪指令:
若要定义: int DBUFF[100]; 则可在汇编语言里面使用:
_DBUFF .usect “.data” 100
我给你发了封邮件,请参考
有1000是因为ADCDRV_5Ch这个模块的RltPtrB输出(dwInv_Voltage)为一个比例关系,即Vm*Kratio_grid_voltage/3.3,注意到Kratio_grid_voltage=R59/(R26+R27+R28+R54)=10/3020=0.003311,故Kratio_grid_voltage/3.3约等于1/1000, 这样CMPR=Period*1000/Vdc*(Vout+2p2z(电流环的输出))=Period*1000/Vdc*(Vm*Kratio_grid_voltage/3.3+2p2z(电流环的输出)),稳态时2p2z(电流环的输出)=0, 故CMPR=Period*1000/Vdc(Vm*Kratio_grid_voltage/3.3)=Period*Vm/Vdc。