PSIM作为一款非常便捷的电力电子仿真软件,主要是得益于其丰富的功能模块,下面我主要讲解一下C-block模块的使用;
1、首先打开软件,新建文件,然后找到C-block模块;
2、C-Block模块功能介绍如下:
3、为什么要学习C-Block模块,我们举个列子,比如我们有三相正弦信号a\b\c,我们需要求取a\b\c三个信号的最大值与最小值之和的一半;o={min(a,b,c)+max(a,b,c)}/2;如果我们用硬件电路去搭建的话仿真图会比较复杂,这时候C-Block模块就体现出它的优势出来了;
运算结果如下:
从上面的应用你可能也开始意识到了C-Block的功能了,是的在我们做数字电源控制的时候,C-Block模块就可以进行编程,实现我们模块的数字控制;
下面我们通过一个简单的Buck电路,引入C-Block数字控制:
1、简单BUCK电路,电压环控制,输入50V,输出10V;
2、先搭接好电路,控制环路;
3、调用PID模块调试合适的PID参数(只用了P和I);
4、将调试好的参数转换成C语言;
//********************PID参数*********************//
double PWM_PID=0;
const double PID_K1=0.0525; //k1=kp*(1+Ts/ki)
const double PID_K2=0.05; //k2=kp (Kp=0.05 Ki=1/1000 Ts=1/20000) Ts控制采样频率
double PID_Error_0=0;double PID_Error_1 =0;
//*************************************************//
/***************输入量获取**************/
Vref=in[0];V1=in[1];
/*************比例积分运算**************/
PID_Error_1 = PID_Error_0; //存储当前偏差
PID_Error_0 = Vref-V1; //偏差计算(积分)
PWM_PID+=( PID_K1 * PID_Error_0- PID_K2 * PID_Error_1 );
/***************PID输出限幅**************/
if(PWM_PID<0) PWM_PID=0;
if(PWM_PID>1) PWM_PID=1;
out[0]= PWM_PID;
5、硬件模块和C语言控制效果对比;