IQ15格式下面的准PR和PI的离散化后的算法为什么结果出的不对?仿真却是正确的!

2019-07-18 15:50发布


在网上看见一种准PR+PI的控制算法!我用的是28035!程序是这样的:

Kp = _IQ(1.6);
Kr = _IQ(10);
Ki = _IQ(0.14);
A0 = _IQ(0.0002499);
A1 = _IQ(-2.9992535);
A2 = _IQ(2.9987536);
A3 = _IQ(0.9995002);
D1 = _IQ(-0.9992535);
D2 = _IQ(-0.9997533);
temp = _IQmpy(Kr,A0);
B0 = Kp + Ki + temp;
B1 = _IQmpy(Ki,D1);
B1 = B1 + _IQmpy(Kp,A1);
B1 = B1 - temp;
B2 = _IQmpy(Ki,D2);
B2 = B2 + _IQmpy(Kp,A2);
B2 = B2 - temp;
B3 = _IQmpy(Ki,A3);
B3 = B3 - _IQmpy(Kp,A3);
B3 = B3 + temp;
temp1 = _IQmpy(B0,error);
temp2 = _IQmpy(B1,error1);
temp3 = _IQmpy(B2,error2);
temp4 = _IQmpy(B3,error3);
temp5 = _IQmpy(A1,out_pre);
temp6 = _IQmpy(A2,out_pre1);
temp7 = _IQmpy(A3,out_pre2);
out = temp1 + temp2 + temp3 + temp4 - temp5 - temp6 + temp7;
error3 = error2;
error2 = error1;
error1 =error;
out_pre2 = out_pre1;
out_pre1 = out_pre;
out_pre = out;
为什么数据会溢出?求出的值很大?不知道三阶的离散不是这样运算的?求论坛的大神们帮们分析解答下,谢谢啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
zhangmangui
1楼-- · 2019-07-18 20:19
不懂   大神来解答  PR不知是什么
chenci2013
2楼-- · 2019-07-18 23:51
不清楚,帮顶的。
bennik
3楼-- · 2019-07-19 02:26
chenci2013 发表于 2013-9-23 23:55
不清楚,帮顶的。

可能因为是系数的问题!大于1的系数可能在累加的时候会溢出
vivilzb1985
4楼-- · 2019-07-19 04:59
不清楚这的,我帮着顶一下的啊
zhangmangui
5楼-- · 2019-07-19 07:49
 精彩回答 2  元偷偷看……
bennik
6楼-- · 2019-07-19 09:36
没有解决,还是会溢出!

一周热门 更多>