永发信息网

MATLAB 分数阶 PID 控制

答案:1  悬赏:80  手机版
解决时间 2021-07-31 11:44

PID控制的函数为:
u(k)=Kp*e(k)+Ki*[求和e(j)(j=0,1,...k)]*T+Kd*[e(k)-e(k-1)]/T

其控制器的初始化程序和代码部分程序如下:

初始化:
% Controller parameters
h = 0.010;
N = 100000;
Td = 0.02;
Ti= 20;
K = 1.5;
% Create task data (local memory)
data.u = 0.0;
data.K = K;
data.ai=K*h/Ti;
data.ad = Td/(N*h+Td);
data.bd = N*K*Td/(N*h+Td);
data.Dold = 0.0;
data.yold = 0.0;
data.Iold=0.0;

代码:
function [exectime, data] = ctrlcode(seg, data)
switch seg,
case 1,
y = ttGetMsg; % Obtain sensor value
r = ttAnalogIn(1); % Read reference value
P = data.K*(r-y);
I= data.Iold;
D = data.ad*data.Dold + data.bd*(data.yold-y);
data.u = P + I + D;
data.Dold = D;
data.yold = y;
data.Iold = data.Iold + data.ai*(r-y);
exectime = 0.0005;

现要将PID控制扩展为分数阶PID控制,分数阶控制的函数为:
u(k)=Kp*e(k)+Ki*T^gama*(求和q(j)*e(k-j),(j=0,1,...,k))+Kd*T^lambda*(求和d(j)*e(k-j),j=0,1,...,k)
其中gama和lambda为可调参数,q(0)=1,d(0)=1,q(j)=(1-(1+gama)/j)*q(j-1),
d(j)=(1-(1-lambda)/j)*d(j-1)

初始化和代码部分都要相应的怎么修改啊,已经改了大半个月了,出来的结果总是不对呢,求求大家帮帮忙吧……

最佳答案
你这个是用matlab工具箱求解吗,请问问题现在已经解决了吗,我现在也在研究分数阶PID,能把分数阶PID程序发我一份,1273769884@qq.com
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
原本很相爱的人!你失去了你的爱人!你该如何
江岸区武汉烧烤王地址在哪,我要去那里
獭兔出生后不知道哺乳是什么原因
情侣纹身的英语句子,情侣之间的留言 短句子英
为什么我秒个练狱BOOS就让我掉线??
那个流氓吻过我的唇在那里可以看到
我是1990年七月初九,阳历是1990年八月二十八
DNF出现DINPUT8.dll 的错误 怎么办啊?
现在CF什么战队厉害…我要怎么样才可以加入_
龙东专线到万祥北路还是芦杜专线到万祥北路?
虞城县商丘虞城县沙集乡马楼村村民委员会地址
俞灏明参加勇往直前有一期开场白跳舞蹈,放的
东方神起如果输掉、钱要赔多少
店长怎么去跟客户沟通,绩效面谈表怎么写
岳塘区湘潭彩虹窗帘地址在什么地方,想今天过
推荐资讯
现在韩国最新电影那部最好看
天下2 技能点
我国有哪些气候灾害?
你很想和一个人在一起可是不能你怎么办?
希澈的鈴聲收集~SJ都可以
远安县宜昌贤成电器地址在哪,我要去那里
说明中毒的机制及急救原则
北京一区qq交易群谁知道 告诉我一下 谢谢!!
腾讯游戏 丝路英雄 回收队起什么作用
我的男朋友一 次又一次的不守信用我该怎么对
西峡县南阳河南问鼎西峡律师事务所地址在哪,
不好意思是什么意思,“苦头”是什么意思?为
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?