快捷搜索:  汽车  科技

setblock和fill教学:教你如何使用C-block

setblock和fill教学:教你如何使用C-block2、先搭接好电路,控制环路;1、简单BUCK电路,电压环控制,输入50V,输出10V;运算结果如下:从上面的应用你可能也开始意识到了C-Block的功能了,是的在我们做数字电源控制的时候,C-Block模块就可以进行编程,实现我们模块的数字控制;下面我们通过一个简单的Buck电路,引入C-Block数字控制:

PSIM作为一款非常便捷的电力电子仿真软件,主要是得益于其丰富的功能模块,下面我主要讲解一下C-block模块的使用;

1、首先打开软件,新建文件,然后找到C-block模块;

setblock和fill教学:教你如何使用C-block(1)

2、C-Block模块功能介绍如下:

setblock和fill教学:教你如何使用C-block(2)

setblock和fill教学:教你如何使用C-block(3)

3、为什么要学习C-Block模块,我们举个列子,比如我们有三相正弦信号a\b\c 我们需要求取a\b\c三个信号的最大值与最小值之和的一半;o={min(a b c) max(a b c)}/2;如果我们用硬件电路去搭建的话仿真图会比较复杂,这时候C-Block模块就体现出它的优势出来了;

setblock和fill教学:教你如何使用C-block(4)

运算结果如下:

setblock和fill教学:教你如何使用C-block(5)

从上面的应用你可能也开始意识到了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语言控制效果对比;

setblock和fill教学:教你如何使用C-block(6)

setblock和fill教学:教你如何使用C-block(7)

setblock和fill教学:教你如何使用C-block(8)

猜您喜欢: