24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2652  |  回复: 6

ygj2015

新虫 (小有名气)

[求助] 离散时滞系统的matlab实现已有1人参与

离散时滞系统
x(k+1)=Ax(k)+Bx(k-d(k))

matlab实现:
A1=[-0.4 -0.3;0.1 0.15];
A2=[0.1 0.25;-0.9 -0.1];
N=150;
x=zeros(2,N+1);
x(:,1)=[-0.1;0.1];
for k=1:N
        d=[k-(0.1-0.1*sin(k))]
        x(:,k+1)=A1*x(:,k)+A2*x(:,k-d);
    end
figure
    tout=0:N;
    x1=x(1, ;
   x2=x(2, ;
    plot(tout,x1,tout,x2)  
     xlabel('t');
    ylabel('x(t)');
    legend('x_1(t)','x_2(t)','location','northeast')
运行报错如下:
位置 2 的索引无效。数组索引必须为正整数或逻辑值。

出错 delayUntitled2 (line 44)
    x(:,k+1)=A2*x(:,k)+Ad2*x(:,k-d)

该如何修改此程序,望高人指点。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hrbnu0828

木虫 (正式写手)

k-d一定是个大于0的整数?

发自小木虫IOS客户端
人不能因为担心不能够永远而拒绝开始
2楼2018-10-15 01:11:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

googon

木虫 (著名写手)


【答案】应助回帖

感谢参与,应助指数 +1
你的这个问题一看就清楚明白,d不可能都是正整数,因为你用了sin,建议你用四舍五入法处理此问题,还有d不能大于k,索引值不能为负,需要更精细的解答,请Q搜matlab编程爱好者

发自小木虫Android客户端
3楼2018-10-16 07:09:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ygj2015

新虫 (小有名气)

引用回帖:
3楼: Originally posted by googon at 2018-10-16 07:09:36
你的这个问题一看就清楚明白,d不可能都是正整数,因为你用了sin,建议你用四舍五入法处理此问题,还有d不能大于k,索引值不能为负,需要更精细的解答,请Q搜matlab编程爱好者
...

感谢回复,明白了,谢谢啊
4楼2018-10-16 08:28:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ygj2015

新虫 (小有名气)

引用回帖:
3楼: Originally posted by googon at 2018-10-16 07:09:36
你的这个问题一看就清楚明白,d不可能都是正整数,因为你用了sin,建议你用四舍五入法处理此问题,还有d不能大于k,索引值不能为负,需要更精细的解答,请Q搜matlab编程爱好者
...

按照四舍五入处理后,运行通了,但是图中的初值和理论对不上,不知道什么原因?
5楼2018-10-16 23:14:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

googon

木虫 (著名写手)


【答案】应助回帖

引用回帖:
5楼: Originally posted by ygj2015 at 2018-10-16 23:14:18
按照四舍五入处理后,运行通了,但是图中的初值和理论对不上,不知道什么原因?...

加群详谈,把相关文献发给我

发自小木虫Android客户端
6楼2018-10-17 06:51:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ygj2015

新虫 (小有名气)

引用回帖:
6楼: Originally posted by googon at 2018-10-17 06:51:24
加群详谈,把相关文献发给我
...

已经运行通过了,谢谢你。
7楼2018-10-18 10:05:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ygj2015 的主题更新
信息提示
请填处理意见