切换
资源分类
文档管理
收藏夹
最新动态
登陆
注册
关闭
返回
下载
相似
相似资源:
非隔离T型三电平光伏逆变器关键控制技术研究_邢相洋
Growatt 逆变器常见故障排除
5kW-10kWh堆叠一体机实物接线分解图
20KW-30KWH三相堆叠一体机接线示意图
逆变器系列报告(1):新形势下MLPE赛道崛起,微型逆变器展望景气成长-东方证券.pdf
电力设备行业:三重渗透率递进,微型逆变器空间广阔-开源证券.pdf
第三讲 大型光伏并网电站的关键技术
光伏并网逆变器原理
逆变器基础
逆变器的原理.ppt
上能电气整县推进全场景逆变器解决方案.pdf
固德威智慧能源解决方案助推绿色未来
针对大硅片组件逆变器相关设计白皮书
SUN2000华为光伏逆变器运维培训材料
新能源发电的核心-逆变器的性能诊断
AMETEK 光伏逆变器测试解决方案-张龙
特变电工全新一代组串级逆变器解决方案-骆毅
PWM脉宽调制频率转模拟量电流电压4-20ma信号变送器
光伏组串I-V扫描与智能诊断技术白皮书
华为技术 - 迈向智能联接时代
1MW光伏电站逆变器侧设备清单及价格
资源描述:
// // TMDX ALPHA RELEASE // Intended for product evaluation purposes // // // // FILE DSP28_Example.c // // TITLE DSP28 CPU_Timer example program. // // // // Ver | dd mmm yyyy | Who | Description of changes // ||| // 0.55| 06 May 2002 | S.S. | EzDSP Alpha Release // 0.57| 27 May 2002 | L.H. | No change // // Step 0. Include required header files // DSP28_Device.h device specific definitions include statements for // all of the peripheral .h definition files. // DSP28_Example.h is specific for the given example. include “DSP28_Device.h“ include “IQmathLib.h“ pragma DATA_SECTIONsine_table,“IQmathTables“; _iq30 sine_table[512]; define PI 3.14 interrupt void eva_T1UFINT_ISRvoid; interrupt void CAP_INT3_ISRvoid; interrupt void ADC_FIR_INT_ISRvoid; // ADC 服务中断Uint16 ConversionCount 0; Uint16 SS 0; Uint16 n 0; Uint16 SIN 0; Uint16 SIN1 0; Uint16 SIN2 0; _iq30 sine_table[512]; //jiayujint short int AData[512]{0}; short int AData1[512]{0}; extern _iq IQssfir_iq*, _iq*, Uint16; define N 5 // 滤波器长度_iq xDelay[N] {0, 0, 0, 0, 0}; _iq xDelay1[N] {0, 0, 0, 0, 0}; // filter coefficients _iq coeffs[N] {100*_IQ0.0625,100* _IQ0.25, 100*_IQ0.375, 100*_IQ0.25, _IQ0.0625}; define AdcFsV oltage _IQ3.0 // ADC 满量程电压define AdcBufLen 512 // ADC 结果缓冲长度_iq AdcBuf[AdcBufLen]; // ADC 结果缓冲_iq AdcBuf1[AdcBufLen]; _iq AdcBufFiltered[AdcBufLen]; // 滤波后电流的 ADC 结果缓冲_iq AdcBufFiltered1[AdcBufLen]; // 滤 波 后电压的 ADC 结果缓冲_iq vf[AdcBufLen]; // 滤波后电流的 ADC 结果缓冲_iq If[AdcBufLen]; // 滤波后电压的 ADC 结果缓冲_iq Ig[AdcBufLen]; _iq vref[AdcBufLen]; //需要转换 iq 格式 已经转化到调整环内的IQ 格式_iq ev[AdcBufLen]; _iq ei[AdcBufLen]; _iq Vs[AdcBufLen]; float M; float Imax_IQ4100; float Vmax_IQ4090; // 对程序中用到的常数值进行宏定义赋值//pi 参数 iq 格式float kp_IQ1; float ki_IQ0.2; float kip_IQ10; void mainvoid { /*初始化系统 */ InitSysCtrl; /*关中断 */ DINT; IER 0x0000; IFR 0x0000; /*初始化 PIE 控制寄存器 */ InitPieCtrl; /*初始化 PIE 矢量表 */ InitPieVectTable; /*初始 GPIO*/ InitGpio; InitAdc; // 初始化 ADC EALLOW; PieVectTable.CAPINT3 PieVectTable.ADCINT PieVectTable.T1UFINT EDIS; PieCtrl.PIEIER1.bit.INTx6 1; // 开 AD 中断PieCtrl.PIEIER2.bit.INTx6 1; // 开下益中断PieCtrl.PIEIER3.bit.INTx7 1; // 开 CAP 中断IER | 0x0007 ; EINT; //使能全局中断 INTM ERTM; //使能全局实时中断 DBGM /*初始化 EV*/ InitEv; whileAdcRegs.ADC_ST_FLAG .bit.SEQ1_BSY0 { AdcRegs.ADCTRL2.bit.SOC_SEQ11; } for;; { KickDog; } } interrupt void eva_T1UFINT_ISRvoid { //查表方式(固化正弦表)//EvaRegs.CMPR1 EvaRegs.T1PR-_IQsat_IQ30mpysine_table[index]_IQ300.9999,EvaRegs.T1PR/2,EvaRegs.T1PR,0; //计算得出新的正弦表SIN _IQsat_IQ30mpysine_table[SS]_IQ300.9999,EvaRegs.T1PR/2,EvaRegs.T1PR,0; SIN2 _IQsat_IQ30mpy-sine_table[SS]_IQ300.9999,EvaRegs.T1PR/2,EvaRegs.T1PR,0; SS; ifSS 512 { SS 0; } // EvaRegs.CMPR1 INPUT[SS] ; EvaRegs.CMPR1 SIN ; EvaRegs.CMPR2 SIN2; EvaRegs.EVAIFRA.bit.T1UFINT 1; // 复位定时器 1 下溢中断标志PieCtrl.PIEACK.all PIEACK_GROUP2; //响应该中断并允许从组 2 中接受更多的中断} interrupt void CAP_INT3_ISRvoid //定义 cap 中断{ SS0; //指针复位EvaRegs.EVAIFRC.bit.CAP3INT1; PieCtrl.PIEACK.all PIEACK_GROUP3; } interrupt void ADC_FIR_INT_ISRvoid // ADC { static Uint16 ibuf0; PieCtrl.PIEACK.all PIEACK_GROUP1; /*** Manage the ADC registers ***/ AdcRegs.ADCTRL2.bit.RST_SEQ1 1; // 复位 SEQ1 到 CONV00 状态AdcRegs.ADC_ST_FLAG .bit.INT_SEQ1_CLR1; // 清楚 ADC SEQ1 中断标志/*** 读取 ADC 结果1 将无符号 16-bit 结果转换成 32-bit IQ16 格式2 将 IQ16 格式转换为 IQ 格式3 根据 ADC 满量程定标***/ AData[ibuf]AdcRegs.RESULT04; //采样电压值AData1[ibuf]AdcRegs.RESULT14; //采样电流值AdcBuf[ibuf] _IQmpyAdcFsV oltage, _IQ16toIQ _iqAdcRegs.RESULT0; AdcBuf1[ibuf] _IQmpyAdcFsV oltage, _IQ16toIQ _iqAdcRegs.RESULT1; xDelay[0] AdcBuf[ibuf]; AdcBufFiltered[ibuf] IQssfirxDelay, coeffs, N; xDelay1[0] AdcBuf1[ibuf]; AdcBufFiltered1[ibuf] IQssfirxDelay1, coeffs, N; vf[ibuf] A dcBufFiltered[ibuf]; //采样电压值Ig[ibuf] A dcBufFiltered1[ibuf]; //采样电流值// 电 压 电 流 双 闭 环 函 数SIN1 _IQsat_IQ30mpysine_table[ibuf]_IQ300.9999,2047,4095,0; vref[ibuf]SIN1; ev[ibuf] vref[ibuf]- vf[ibuf] ; if ibuf0 { Ig[ibuf]kp*ev[ibuf]ki*ev[ibuf] ; if Ig[ibuf]Imax //电压环限幅 考虑输出 Ig 正负Ig[ibuf]Imax; else if Ig[ibuf]Vmax //电流环限幅Vs[ibuf]Vmax; else if Vs[ibuf]Imax //电压环限幅 考虑输出 Ig 正负Ig[ibuf]Imax; else if Ig[ibuf]Vmax Vs[ibuf]Vmax; else if Vs[ibuf]0 MVs[ibuf]/4096; else M-Vs[ibuf]/4096; //考虑一下 Vs[k] 的正负值 确保 M 是 0-1 的值ibuf 4; ifibuf AdcBufLen { ibuf 0; } } //函数结束 返回调制度 M _iq IQssfir_iq *x, _iq *a, Uint16 n { Uint16 i; // general purpose _iq y; // result _iq *xold; // delay line pointer /*** Setup the pointers ***/ a a n-1; // a points to last coefficient x x n-1; // x points to last buffer element xold x; // xold points to last buffer element /*** Last tap has no delay line update ***/ y _IQmpy*a--, *x--; /*** Do the other taps from end to beginning ***/ fori0; i n-1; i { y y _IQmpy*a--, *x; // filter tap *xold-- *x--; // delay line update } /*** Finish up ***/ returny; } //end IQssfir /********************************************************************* * 函数 DelayUs * *********************************************************************/ void DelayUs volatile Uint16 Usec { while Usec-- // 1us loop at 150MHz CPUCLK { asm“ RPT 139 || NOP“; } } // end DelayUs // // No more. //
点击查看更多>>
收藏
下载该资源
京ICP备10028102号-1
电信与信息服务业务许可证:京ICP证120154号
地址:北京市大兴区亦庄经济开发区经海三路
天通泰科技金融谷 C座 16层 邮编:102600