This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280049: DCL中的Direct Form 1 (Third Order) 和Direct Form 2 (Third Order) Compensators有什么不同

Part Number: TMS320F280049


在“C2000 Digital Control Library Version 3.4 User’s Guide”文中介绍了Direct Form 1 (Third Order) 和Direct Form 2(Third Order) 两种形式的3阶补偿器,

1)从他们的Z域的传递函数和差分表达式来看,都相同

2)从软件代码来看

Direct Form 1 (Third Order):

static inline float32_t DCL_runDF13_C4(DCL_DF13 *p, float32_t ek)
{
p->d4 = (ek * p->b0) + (p->d1 * p->b1) + (p->d2 * p->b2) + (p->d3 * p->b3) - (p->d5 * p->a1) - (p->d6 * p->a2) - (p->d7 * p->a3);
p->d3 = p->d2;
p->d2 = p->d1;
p->d1 = ek;
p->d7 = p->d6;
p->d6 = p->d5;
p->d5 = p->d4;

return(p->d4);
}

Direct Form 2(Third Order):

static inline float32_t DCL_runDF23_C4(DCL_DF23 *p, float32_t ek)
{
float32_t v7;

v7 = (ek * p->b0) + p->x1;
p->x1 = (ek * p->b1) + p->x2 - (v7 * p->a1);
p->x2 = (ek * p->b2) + p->x3 - (v7 * p->a2);
p->x3 = (ek * p->b3) - (v7 * p->a3);

return(v7);
}

执行的结果都为u(k) = e(k) * b0 + e(k-1) * b1 + e(k-2)* b2 + e(k-3) * b3  - u(k-1) * a1 - u(k-2) * a2) - u(k-3) * a3;

3 从CompDesigner GUI的设定来看Direct Form 1 (Third Order) 和Direct Form 2(Third Order) 两种补偿器设定时选的补偿器类型是同一个

我的问题是:为什么在“C2000 Digital Control Library Version 3.4 User’s Guide”中要把同一个3阶补偿器分Direct Form 1 (Third Order) 和Direct Form 2(Third Order) 两种形式,而且还是Direct Form 2 (Third Order) 的鲁棒性比Direct Form 1(Third Order) ,建议使用Direct Form 2(Third Order) ,他们的区别道理在哪里?