单神经元PID控制的simulink仿真的S函数怎么写?S函数模块我连的一个输入三个输出 10

functionsys=mdlOutputs(t,x,u)persistentzxitePxiteIxiteDwkpwkiwkderrorwaddw11w22w33wKz... function sys = mdlOutputs(t,x,u)

persistent z xiteP xiteI xiteD wkp wki wkd error wadd w11 w22 w33 w K

z=[0,0,0]'; %初始化神经元输入信号
xiteP=0.5;xiteI=0.6;xiteD=0.5; %初始化学习率参数
wkp(1)=0.1;wki(1)=0.1;wkd(1)=0.5; %初始化kp,ki,kd
error(1)=0; %初始化第一个单元的误差信号

for k=2:1:1000
error(k)=u(k);
wki(k)=wki(k-1)+xiteI*error(k)*u(k)*(2*error(k)-error(k-1));
wkp(k)=wkp(k-1)+xiteP*error(k)*u(k)*(2*error(k)-error(k-1));
wkd(k)=wkd(k-1)+xiteD*error(k)*u(k)*(2*error(k)-error(k-1));
K=0.12;
z(1)=error(k); %积分输入
z(2)=error(k)-error(k-1); %比例输入
z(3)=error(k)-2*error(k-1)+error(k-2); %微分输入
wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k));
w11(k)=wki(k)/wadd(k);
w22(k)=wkp(k)/wadd(k);
w33(k)=wkd(k)/wadd(k);
w=[w11(k),w22(k),w33(k)];
u(k)=u(k-1)+K*w*z; %控制律
sys(1)=w11(k);
sys(2)=w22(k);
sys(3)=w33(k);
error(k-1)=error(k);
end
% End of mdlOutputs.
这是我写的,但错误提示说Attempted to access u(2); index out of bounds because numel(u)=1
求大神指导
展开
 我来答
钺联昱M
2014-04-18 · TA获得超过706个赞
知道小有建树答主
回答量:1789
采纳率:33%
帮助的人:892万
展开全部
s函数需要重新写 不是把m文件复制过来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上海华然企业咨询
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步... 点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式