24小时热门版块排行榜    

查看: 1231  |  回复: 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的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

-o毛毛o-

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
lele_719: 金币+10, ★★★★★最佳答案 2015-05-18 19:04:49
把你的限定范围去掉 因为你的数值太大了 不在你限定的范围内
10楼2015-05-15 18:54:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

dfxhys

银虫 (初入文坛)

【答案】应助回帖

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

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的回帖

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()
这样就有啦。

原题大致如下,我把参考信号设为单一的,帮忙编一下
MATLAB程序运行没有图出现
IMG_20150514_210035.JPG

6楼2015-05-14 21:04:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anjing1230

铜虫 (正式写手)

引用回帖:
6楼: Originally posted by lele_719 at 2015-05-14 21:04:50
原题大致如下,我把参考信号设为单一的,帮忙编一下

IMG_20150514_210035.JPG
...

不知道什么是E啊
每一天都要学习
7楼2015-05-15 12:37:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lele_719

银虫 (小有名气)

引用回帖:
7楼: Originally posted by anjing1230 at 2015-05-15 12:37:21
不知道什么是E啊...

哦  e=x(1)-r;
8楼2015-05-15 17:24:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anjing1230

铜虫 (正式写手)

不知道
每一天都要学习
9楼2015-05-15 18:14:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lele_719 的主题更新
信息提示
请填处理意见