matlab 画z域传函图,DCL库函数输出不正常的问题

用28335做数字控制器,调节器计算用到了controlSuite包含的DCL库中的DCL_runDF23()函数,但是输出结果与仿真和MATLAB计算结果不符,请用过的大神不吝赐教!

为添加和使用该库,代码中做了以下几处修改:

1.添加头文件:

#include "DCL.h"

#include "DCL_fdlog.h"

2.在main函数前,创建实体:

DF23 VolPR=DF23_DEFAULTS;

3.在main函数中,初始化实体:

VolPR.a1=-2.92f;

VolPR.a2=2.84f;

VolPR.a3=-0.92f;

VolPR.b0=5.77e-06f;

VolPR.b1=5.77e-06f;

VolPR.b2=-5.77e-06f;

VolPR.b3=-5.77e-06f;

4.在调用频次为150kHz的AD中断服务函数中调用实体:

SinVal=VP*sin(Kn*xn);

xn++;

if (xn==ModRatio) {xn=0.0f;}

Uc=DCL_runDF23(&VolPR,SinVal);

DCL_writeLog(&rBuf,Uc);

DCL_writeLog(&rBuf1,SinVal);

以简单验证此函数的输出。

其中,Kn=2*pi/3000,ModRatio=3000,即产生一个幅值为85,频率为50Hz,采样率为150kHz的正弦信号,直接给VolPR调节器,观察输出信号。用DCL_fdlog库记录输出数据Uc,并用CCS的graph功能画出波形:

0120219ac87f0209ed1938aea3b05e54.png

其中,上图为调节器输出Uc,下图为调节器输入SinVal。

用PSIM仿真,搭建的原理图如下:

58a5b19da90a95ee091b29ddb8dd5212.png

仿真波形如下:

03085a23ce840c2be9c51e628eb0b5c6.png

为确保准确,又在MATLAB中利用上述VolPR调节器对应的时域离散表达式算出时域离散数列,画出波形如下:

9dade151d43ee2369a4bf8e5758a6a2d.png

可见,PSIM与MATLAB结果一致。

那么,DCL库计算错在哪了呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值