• 回答数

    2

  • 浏览数

    2264

  • 收藏数

    0

作者:一身傲娇味儿 发表于 2018-11-20 15:13:28
跳转到指定楼层
完全新手,照着书本abs系统的仿真案例敲的代码,提示“下标索引必须为正整数类型或逻辑类型”错误

代码如下,请大佬看看哪里出了问题
clear all
r=0.253;
u0=0.25;
w0=u0/r;
M=1534;
b=1.139;hg=1.236;L=2.4;
m=M*b/L/2;
I=12.16;
Tb=500;kd=6000;
smax=0.221;smin=0.185;s0=0.2;
u=u0;w=w0;
b=1.139;hg=1.336;L=2.4;
fh=0.82;fg=0.61;
tm=6;dt=0.01;
j=0;
for t=0:dt:tm;
    if u>0
       s=abs((u-r*w)/u);
    if s>smax
       Tb=abs(Tb-kd*dt);
    elseif s<smin
        Tb=abs(Tb+kd*dt);
    else Tb=abs(Tb);
    end
    if s<0.2
    f=fh/s0*s;
    elseif s<1&s>0.2
    f=(fh-fg*s0)/(1-s0)-(fh-fg)/(1-s0)*s;
    end
    G1=m*9.8*b/L;
    Fxb=G1*f;
    end
j=Fxb/m;
if u<1/3.6;
     Fxb=0;j=0;
end
alfa= (Fxb*r-Tb)/I;
u=u-j*dt;
w=w-alfa*dt;
uw=w*r;
i=i+1;
tb(:,i)=Tb;
st(:,i)=s;
ut(:,i)=u;
uwt(:,i)=uw;
Glt(:,i)=G1;
Fxbt(:,i)=Fxb;
jt(:,i)=j;
end
figure(1)
Grid on
t=0:dt:tm;
plot(t,st);
figure(2)
plot(t,ut,t,uwt,'+')
figure(3)
plot(t,Glt);
figure(4)
plot(t,Fxbt);

其中首行clear all 和Grid on以及plot(t,ut,t,uwt,'+')在脚本中都是粉紫色,应该也是有问题,请大佬指教

分享:
回复

使用道具

该用户从未签到

新手上路

Rank: 1

积分
49
极客币
117
主题
15
帖子
51
注册时间
2018-10-22
在线时间
2 小时
性别
保密
发表于 2018-11-20 15:13:46 | 显示全部楼层

i=i+1;这行有问题
循环开始之前没有定义i的话,这一行会导致i = 1(实部) + i (虚部)
变成复数以后就不能再作为索引值使用了
回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
40
极客币
99
主题
13
帖子
42
注册时间
2018-10-19
在线时间
2 小时
性别
保密
 楼主| 发表于 2018-11-20 15:13:54 | 显示全部楼层
回复

使用道具 举报

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录