标题:matlab程序不能实现转弯??
只看楼主
jinanzht
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-11-17
结帖率:0
已结贴  问题点数:10 回复次数:1 
matlab程序不能实现转弯??
T=0.1;
N=188/T;%采样点数
M=100;%仿真次数
O4=zeros(3,3);

f_ca=[1,T,T^2/2;0,1,T;0 0 1];
F_ca=[f_ca O4;O4 f_ca];% 状态转移矩阵
Tao_cv=[T^2 0 0;T 0 0;0 T^2 0;0 T 0;0 0 T^2;0 0 T];%过程噪声矩阵
syms w;%用到符号变量
f_ctr=[1 sin(w*T)/w (1-cos(w*T))/w^2;0 cos(w*T) sin(w*T)/w;0 -w*sin(w*T) cos(w*T)];
F_ctr=[f_ctr zeros(3,3);zeros(3,3) f_ctr];
tao_ctr=[w*T/w^3-sin(w*T)/w^3,(1-cos(w*T))/w^2,sin(w*T)/w]';
Tao_ctr=[tao_ctr;tao_ctr];
H=[1 0 0 0 0 0;0 0 1 0 0 0;0 0 0 0 1 0];%观测矩阵

X=zeros(9,N);%三维空间的位、速度、加速度
v=426;
r1=72000;
z1=1550;
x1=66000;
y1=sqrt(r1^2-z1^2-x1^2);
X(:,1)=[x1,-426,0,y1,0,0,z1,0,0]';%初始位置
TEHTA=zeros(1,N);
t1=30;
k1=t1/T;
v1_x=-426;
for i=2:k1;%前30秒匀速运动
    X(7,i)=z1;
    X(1:6,i)=F_ca*X(1:6,i-1);
end

%做个7g的转弯机动
a1=7*9.8;%向心加速度
r1=v^2/a1;%转弯半径
w=sqrt(a1/r1);%角速度
t2=2*pi/(w*4);%转弯90°的时间
k2=k1+ceil(t2/T);%转弯90°,时间为周期的四分之一

for i=k1+1:k2;
    X(7,i)=z1;
    X(1:6,i)=eval(F_ctr)*X(1:6,i-1);%%????????????前面的公式中w是符号!!
end

%匀速30秒
k3=k2+30/T;
%v1_y=X(5,k2);
X(6,k2)=0;
X(3,k2)=0;
for i=k2+1:k3;
   %X(1:6,i)=[X(1,i-1),0,0,X(4,k2)+v1_y*(i-k2)*T, v1_y 0];
   X(1:6,i)=F_ca*X(1:6,i-1);
   X(7,i)=X(7,i-1);
end
i=1:k3;
plot(i,X(3,i));
plot(X(1,i),X(4,i));



以上是本人编写的一小段程序,正常结果是要实现一个90°的转弯,然后在匀速,可是我画出来的却是,直线,还有加速度的图像也不正确。请高手指点一下。
搜索更多相关主题的帖子: matlab 
2009-11-18 10:25
anbcjys
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:110
专家分:861
注 册:2007-6-8
得分:10 
matlab是一个数学工具 它的实现是基于我们给的公式上面 如果不能达到所需要的功能 要么是公式错误 要么是程序有问题不能反映公式

qq604443022
2009-11-22 09:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-292697-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.211640 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved