新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DSP实现可并机的逆变电源

基于DSP实现可并机的逆变电源

作者: 时间:2011-03-18 来源:网络 收藏

本文引用地址:https://www.eepw.com.cn/article/150948.htm

4.2.1 系统初始化模块

系统初始化模块包括:中断及优先权设置、PWM设置、定时设置、A/D设置、通用输入输出口设置、通信口设置等。系统初始化模块是工作的开始,程序放在_ init()子程序及appcofig.h程序中。

4.2.2 数字正弦信号产生及输出稳定模块

数字正弦信号产生及输出稳定模块,又分为信号采样及处理模块、输出稳定模块、PWM重加载中断服务模块等3个子模块。

其中信号采样及处理模块又分为:A/D采样,有功功率计算,无功功率计算,功率因数计算,输出电压有效值计算,输出电流有效值计算等。

输出信号稳定模块主要任务是根据给定的标准信号(输出220V)和输出的反馈信号之差采用模糊算法,以最快的速度把输出电压调整到标准值。

PWM重加载中断优先级最高。为保证以最快的速度完成PWM重加载工作,此程序采用汇编语言,利用56F805的快速16位数的乘法,在约3μs内完成重加载的计算工作。

4.2.3 补偿模块

逆变器在带感性负载时,一方面功率因数降低,降低了逆变器的有功功率,另一方面滞后的电流会给逆变器带来危害。补偿模块的作用是在带感性负载时,用投入适当电容的方法对感性负载进行补偿。根据信号采样模块计算出无功功率Q和本机最大允许无功功率ΔQ,采用模糊算法以最快的速度把无功功率调整到允许范围内。

4.2.4 并机均流模块

并机均流模块是为多单元并联输出时用的。它不仅保证各单元输出电压的幅度、频率、相位一致,而且还要求各单元的输出负载均流。通过CAN总线对参与并机的各单元电流进行分析、计算,使本单元电流为总电流的1/N,达到均流的目的。

定时锁相电路用来检测相位和频率,使数字正弦信号产生器输出的相位和频率一致。

4.2.5 故障检测处理模块

故障检测处理模块分别对输入电压太高或太低、输出电压太高或太低、输出过载,PWM电路故障、机内温度、开关管状态进行检测。对所检测的故障分为两类分别进行不同情况处理:对于非致命性故障采用故障显示及报警;对于致命性故障除采用故障显示及报警外,还关闭PWM工作以防进一步损害其它器件。

4.2.6 显示模块

显示模块是用来显示的工作状态和参数,显示的参数主要有VinIinVoutIoutPout、θ等。由于采用16X2的LCD,每次只能显示Vout及另一个参数,通过循环按动S2键可显示其它参数。

4.2.7 通信模块

通信模块是独立于其它模块单独工作的,通过CAN总线管理进行多单元通信工作。各并联运行的单元之间,采用数据包的方式进行通信。数据包中包含有一个数据包标志及若干个数据块。每个数据中又包含了参与并联单元的标识号、输出电流值等信息。通信模块就是负责管理数据包的发送和接收工作,它是独立工作的。它和并机均流模块采用通信的方式传送数据,并机均流模块计算出本机的输出电流后把它放在缓冲区内,并通知通信模块发送信号,当通信模块收到并机均流模块的发送信号后,等到数据包到达本机后,本机状态加入数据包中并发送出去,同时也向并机均流模块发送有效数据包信号。并机均流模块收到通信模块发送来的信号后就到缓冲区中取走数据。

本系统采用Motorola公司的MSCAN软件进行CAN通信软件的编程,方便快捷。

4.3 主程序清单

主程序框图见图7,主程序清单如下:

main ( )

{

Dsp_init ( ) ; /* 系 统 初 始 化 * /

adc_tans ( ) ; /* 输 入 电 压 采 样 * /

chech_VI _ IAI_TT( ); /* 检 查 输 入 电 压 是 否 合 适 * /

while ( 1 )

{

if ( PWMA_INT_F!=0 ) /* 是 否 有 PWM重 加 载 中 断 到 来 * /

{

adc_trans ( ) ; /* 把 A/D采 样 结 果 送 入 相 应 缓 冲 区 * /

bace_hot_protect( ); /* 送 出 脉 冲 调 宽 波 形 到 PWMA4 * /

if(OP_FLAG!=0 ) /* 判 断 是 否 过 零 * /

{

phase_Output_U2_Change ( ) ; /* 桥 式 开 关 倒 相 * /

Move_Buffers ( ) ; /* 将 第 一 级 缓 冲 区 内 容 转 存 到 第 二 级 缓 冲 区 * /

Multiple_count ( ); /* 计 算 有 功 功 率 P, 视 在 功 率 S、 电 压 有 效 值 、 电 流 有 效 值 * /

If ( STRAT_FLAG = 0 ) /* 是 否 刚 开 机 * /

{

Narmal_V2_corr_kh ( ); /* 正 常 计 算 脉 宽 * /

}

else

{

Start_V2_corr_kk ( ); /* 慢 起 动 , 计 算 脉 宽 * /

}

count_IACP ( ) ; /* 均 流 计 算 * /

count_power_compensate ( ) ; /* 功 率 因 素 补 偿 计 算 * /

check_VI_IAI_TT ( ); /* 检 测 输 入 电 压 是 否 异 常 , 是 否 过 载 , 温 度 是 否 过 高 * /

}

}

}

}



评论


相关推荐

技术专区

关闭