最近用PSIM仿真了一下零阶保持器,发现不同的仿真步长设置,可能会使仿真的结果不正确,步长较小的时候,即使逻辑正确,仿真的结果也会出现偏差,通过把步长调小就解决了,想问问大家,这种是只有通过调小步长才能解决吗,这是什么原因导致的,感觉会对判断程序是否正确造成干扰仿真一:仿真步长1e-5,简化C模块代码:
double T = 1/1000;//采样周期,每过这么多时间,就采样一次
static double ou = 0;
static int sum =100; //T/delt,执行T/delt次,采样一次,采样率1000HZ
sum = sum -1;
if(sum == 0)
{
ou = x1;
sum = 100;
}
y1 = ou;
仿真结果:可以很清楚看到和零阶保持器模块的结果有较大偏差
仿真二:
仿真步长改成5e-6,同时代码改成:
double T = 1/1000;//采样周期,每过这么多时间,就采样一次
static double ou = 0;
static int sum =200; //T/delt,执行T/delt次,采样一次,采样率1000HZ
sum = sum -1;
if(sum == 0)
{
ou = x1;
sum = 200;
}
y1 = ou;