212900381 发表于 2007-5-16 23:03

仿真阶跃响应抖动很大怎么解决??


我的毕业设计题目是模糊控制在电动机节能技术中的应用,我用模糊PID控制,P=50,出来的图形抖动很大,怎么解决啊????~~~~~

212900381 发表于 2007-5-16 23:06

补充说明

图中的传递函数是直流电机的模拟传递函数

cdwxg 发表于 2007-5-17 16:09

把你的模型传来看看
另外,你的抖动很大是指得曲线很多波动那个?
加个滤波函数
不过我疑问的是,你的纵坐标很小时候才看得到吧,如果是正常状态能看到波动么?
当然要看你的要求.

212900381 发表于 2007-5-18 06:07

模糊控制器的输入就如图是偏差e和偏差的变化率ec了,输出是KP,KI,KD,直流电机的参数如下:Ra=1.75;La=2.83e-3;J=30.e-6;B=5.0e-3;Kt=0.0924;Kv=0.093;

我就是觉得完美的阶跃响应曲线的结果是趋向与一条直线的嘛,但我的结果是偏差e和输出结果都是很“粗”的一条直线,就是那波动了,我问了我的师兄,他说可能是我的模糊规则有问题,大家认为呢???还请各位大侠多多赐教:handshake

212900381 发表于 2007-5-18 06:09

还有,加个滤波函数是指加积分环节吗?那要在哪加啊:@L 在PID模块里,还是在传递函数前?后??:@Q

cdwxg 发表于 2007-5-18 08:57

原帖由 212900381 于 2007-5-18 06:09 发表 http://www.chinavib.com/forum/images/common/back.gif
还有,加个滤波函数是指加积分环节吗?那要在哪加啊:@L 在PID模块里,还是在传递函数前?后??:@Q
你的PID模块搭建和你的系统搭建表面看来是不存在任何问题的
但要注意的是参数,你的PID参数,PI调节已经恼火,PID就更恼火
你的P那里为什么*50,你的三个参数不是直接由模糊控制器得到的么?
但是这样的模糊PI的缺陷就是每时每刻都要计算一个KP,KI,KD出来,不知道波动是否由此产生,这个是一。
你可以考虑用一个分情况,当什么时候用PI,什么时候用模糊(或者模糊+pi)
当然这上面只是一个可能,原理来说你这个方法是行得通的
那么此时主要就是隶属度,模糊规则,量化因子三大块了。
如果你的e和e的微变量是对称的就好办多了,对量化因子的计算就简单的多,但好象你这个系统的量化因子没什么要求,都为1,
那么主要就是模糊规则,当然,因子也可以考虑下,主要是输出因子。三大因子的作用是不同的。
模糊规则方面,你参照先进PID控制及其matlab仿真这本书,有很类似你的这个模糊PID搭建的,你可以参考下,只是他用的程序,但原理一样的。
参考下。

212900381 发表于 2007-5-18 15:55

那我打算在e大时用P模块,e小时用模糊控制模块,e接近0时用PI模块,怎么用开关判断呢?用什么开关?switch模块?

cdwxg 发表于 2007-5-18 17:07

可以啊,当e>5时候用P,否则通过的是另外一个信号
而这个另外的信号前面也有个开关,开关设置为e>3时候通过模糊,否则通过0
不过这个好像有负的,可以考虑编程来实现。
当然另外有些开关也可以。
不过说下,e大时候用P,e小时候用模糊,但e接近0为什么用PI?
好像应该开始用PI,后来小时才用模糊就可以了吧

212900381 发表于 2007-5-18 23:25

普通模糊控制器相当于PD(比例微分)控制器,对输入量的处理是离散的,而且没有积分环节,所以本身无法消除系统的稳态误差,控制精度不高。模糊控制器将误差信号转化为论域上的整数值[ ,即:
a=int(k e 1+O.5)                        (2)
其中:
a为误差转化到论域上的整数值;
e 1为某一时刻输入的误差;
k 为误差量化因子;
当a=0时,系统进入稳态,此时有:
int(k e 1+0.5)=0,即:
l e1 l<0.5/k ,                              (3)
设误差实际变化范围为{一e,e},误差的模糊论域为
{一n,一n-1,...,一1,0,l......n-1,n},将量化因子
k=n/e代入(3)式中,有:
| e 1|<0.5e/n                              (4)
随着n值增加,控制精度就会提高,但是模糊语言值相应的增加就会导致控制规则更为复杂,所
以,一般规范化的论域形式通常取n=6,此时有:|e1|<8%e               (5)
由此可知模糊控制器对| e|I<8%e的稳态误差无法消除。



这是某篇论文的内容,我之前的e的抖动是不是就因为这???那最后用什么消除那稳态误差?还是用PID吧?那选择开关不是要很多了??

cdwxg 发表于 2007-5-18 23:49

如果说是稳态误差当然用PID的I即积分消除,但是你这个不属于吧,毕竟你这个还没有稳定。
而且是小幅度波动,更属于类似毛刺的形象。
不过我不敢肯定,你可以用PID试验一下
至于开关少用为好,先整理思路。

212900381 发表于 2007-5-22 01:04

我用的直流电机的传递函数是书上的G(s)=wa(s)/Va(s),是转动角速度和输入电压的比,我转化成的是电流和电压的比值G(s)=Ia(s)/Va(s),带入上边列的参数,结果得G(s)=(1.1779e+007)/(S2+785.0412s+2.0428e+005),S2表示S的平方,能不能用划简成简单点的传递函数代替?

212900381 发表于 2007-5-22 11:18

有没有简单点的直流电机的模拟传递函数模型给我参考~~~~~要输入是电压,输出是电流的~~
我是要调节电压来节能~~~

212900381 发表于 2007-5-22 16:55

头晕了~~~

还是解决不了问题啊~~~~
:@Q 斑竹帮我看看我的模型到底什么地方有问题了,改用开关来选择调节都还没原先的效果好:@L
到底要改哪里才能消除那波动啊:'(

参数是:Ra=1.75;La=2.83e-3;J=30.e-6;B=5.0e-3;Kt=0.0924;Kv=0.093;

212900381 发表于 2007-5-22 17:03

怎么不支持fis啊???

fis文件上传不了:@L
只能传图片了~~~
ec,Kp,Ki,Kd的隶属度都和 e的一样,就不传了~~
还请斑竹看看我的控制系统怎么消除那波动啊:'(

cdwxg 发表于 2007-5-22 20:22

原帖由 212900381 于 2007-5-22 01:04 发表 http://www.chinavib.com/forum/images/common/back.gif
我用的直流电机的传递函数是书上的G(s)=wa(s)/Va(s),是转动角速度和输入电压的比,我转化成的是电流和电压的比值G(s)=Ia(s)/Va(s),带入上边列的参数,结果得G(s)=(1.1779e+007)/(S2+785.0412s+2.0428e+005),S2表 ...
传递函数方面我没有经验,不知道能否换,只是觉得这个是个数学模型,一般问题不在这里。
但也有可能,因为滤波的也只是一个传递函数而已
所以这个你可以作为一个思路,寻找下能否更换个传递函数,如果可以更换,那么看下效果上是否波动会变化
如果有,那么可以在这里做下文章。
页: [1] 2
查看完整版本: 仿真阶跃响应抖动很大怎么解决??