24小时热门版块排行榜    

查看: 1224  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lele_719

银虫 (小有名气)

[求助] MATLAB程序运行没有图出现已有3人参与

%位置跟踪问题
clear all
clc
%设置参数
alfa=500
beta=10
c=30
%初始状态
xx=[0 0]

k=0
for ti=0:0.1:20
    k=k+1
   
    s=1
    if s==1
        rin=1     
        drin=0
        ddrin=0
    elseif s==2
        rin=0.5*sin(6*pi*ti)
        drin=3*pi*cos(6*pi*ti)
        ddrin=-18*pi*pi*sin(6*pi*ti)
    end
   
    %系统状态方程中参数设置
    a=25+5*sin(6*pi*ti)
    b=133+50*sin(2*pi*ti)
    A=[0 1;0 -a]
    B=[0;b]
   
    e1(k)=rin-xx(1)
    e2(k)=drin-xx(2)
   

    s(k)=c*e1(k)+e2(k)
     

    u=(alfa*abs(e1(k))+beta*abs(e2(k)))*sign(s(k))

    %系统状态方程
    dx(1)=xx(2)
    dx(2)=-a*xx(2)+b*u
   
    %定义系统状态误差
    e1(k)=rin-xx(1)
    e2(k)=drin-xx(2)
    %系统闭环方程
    de1=e2
    e1=e1+0.1*de1
    de2=ddrin-dx(2)
    e2=e2+0.1*de2
   
    x1(k+1)=xx(1)
    x2(k+1)=xx(2)
end

figure(1)
plot(ti,e1,'r')
axis([0 20 -2 2])




上述程序运行后无错误报警但没有图出现,请高手讲解,金币重谢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anjing1230

铜虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
首先程序就有错误,最后在plot之前,你的ti已经是一个定值啦,你的plot(ti,e1)是不可能有图的,应该加一句
tt=0:0.1:20;
然后画tt与e1的图
figure(1)
plot(tt,e1,'r')
axis([0 20 -2 2])
这样就有啦。

» 本帖已获得的红花(最新10朵)

每一天都要学习
3楼2015-05-14 15:34:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

dfxhys

银虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
楼主,你的数据单位换算没处理好吧,最后的坐标轴范围太小,数据在这个范围外,显示不出来
2楼2015-05-14 15:33:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lele_719

银虫 (小有名气)

送红花一朵
引用回帖:
3楼: Originally posted by anjing1230 at 2015-05-14 15:34:05
首先程序就有错误,最后在plot之前,你的ti已经是一个定值啦,你的plot(ti,e1)是不可能有图的,应该加一句
tt=0:0.1:20;
然后画tt与e1的图
figure(1)
plot(tt,e1,'r')
axis()
这样就有啦。

修改了之后出现图,但是 图是一条竖直的线,且画e2的话没有图,这一部分 for ti=0:0.1:20 中定义了ti 的范围了 。

对MATLAB编程不是很熟,您能推荐本书吗?没有头绪
4楼2015-05-14 19:31:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lele_719

银虫 (小有名气)

引用回帖:
2楼: Originally posted by dfxhys at 2015-05-14 15:33:22
楼主,你的数据单位换算没处理好吧,最后的坐标轴范围太小,数据在这个范围外,显示不出来

这个跟坐标轴大小没关系吧?
5楼2015-05-14 19:44:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见