第一篇:基于无碳小车前轮运动关系的MATLAB运动轨迹仿真
基于无碳小车前轮运动关系的MATLAB运动轨迹仿真
clear all;clc;R=50;r=15;L=150;k=1/5;e=12.5;arf0=0;
fx1=@(sita)(cos(arf0-R*r*r/k/L/e/e*sin(sita)-atan(r*cos(sita)/e))*R/k./cos(atan(r*cos(sita)/e)));
fx2=@(sita)(sin(arf0-R*r*r/k/L/e/e*sin(sita)-atan(r*cos(sita)/e))*R/k./cos(atan(r*cos(sita)/e)));sita=0:0.05:4*pi;
for ii=1:length(sita)sita0=sita(ii);
x(ii)=quadl(fx1,0,sita0);y(ii)=quadl(fx2,0,sita0);end
plot(x,y);
基于无碳小车转弯半径计算方法的MATLAB运算
clc;clear all;a=100;b=50;L=150;sita=0.9;arf=0.9;B=100;A=a*cos(sita)/b;beta=atan(sin(arf)/(A+cos(arf)));Rg=b/sin(beta)Rq=Rg*cos(beta)/cos(sita)Of=sqrt(Rg*Rg+b*b-2*Rg*b*sin(beta))Rw=sqrt(Of*Of+B*B/4+B*Of)
clc;clear all;a=100;
b=50;L=150;sita=-0.9:0.01:0.9;arf=sita;B=100;A=a*cos(sita)/b;beta=atan(sin(arf)./(A+cos(arf)));Rg=b./sin(beta);Rq=Rg.*cos(beta)./cos(sita);Of=sqrt(Rg.*Rg+b*b-2*Rg*b.*sin(beta));Rw=sqrt(Of.*Of+B*B/4+B*Of);plot(sita,Rg,sita,Rq,sita,Of,sita,Rw);axis(-0.9,0.9)
第二篇:无碳小车Matlab轨迹仿真及路径图
无碳小车Matlab仿真程序及路径图
1.仿真程序
clear clc tic
%符号定义
%重物下降的高度h %驱动轴转过角度sd2 %驱动轴传动比i %转向轮轴心距b %转向杆的长c %转向轮转过的角度af %驱动轮半径R
%驱动轮A与转向轮横向偏距a1 %驱动轮B与转向轮横向偏距a2 %驱动轴与转向轮的距离d %小车行驶的路程s %小车x方向的位移x %小车y方向的位移y %轨迹曲率半径rou %曲柄半径r1 %绳轮半径r2 %参数输入 n=1000;
h=linspace(0,0.4,n);i1=0.5;i2=1.05;R=0.16;
%驱动轮A与转向轮横向偏距a1 a1=0.08;
%驱动轮B与转向轮横向偏距a2 a2=0.08;%曲柄半径r1 r1=0.02;%绳轮半径r2 r0=0.006;
%驱动轴与转向轮的距离d d=0.2;
%连杆与转向轮的距离c c=0.04;%算法 g=-10;sd0=h/r0;sd1=sd0/i1;sd2=sd0/i2;
af=atan(r1.*sin(sd2)/c);format long
rou=a1+(d)./(tan(af));s=sd1*R;ds=s(2)-s(1);dy=ds*cos(af);dx=-ds*sin(af);x=cumsum(dx);y=cumsum(dy);xb=x-(a1+a2).*cos(af);yb=y-(a1+a2).*sin(af);xc=x-a1*cos(af)-d*sin(af);yc=y-a1*sin(af)+d*cos(af);
plot(x,y,'b',xb,yb,'b',xc,yc,'r');hold on grid on for i=1:20 t=0:0.01:2*pi;xy=0.01.*cos(t)-0.23;yy=0.01.*sin(t)+i;plot(xy,yy);hold on
end
2.仿真路径
第三篇:桥式吊车小车运动控制系统的建模及MATLAB仿真(附程序)
桥式吊车运动控制系统的建模及MATLAB仿真(附程序)
简介
桥式起重机是横架于车间、仓库及露天堆场的上方,用来吊运各种物体的机械设备,通常称为“天车”或
“吊车”。它是机械工业、冶金工业和化学工业中应用最广泛的一种起重机械。实际生产中的桥式吊车(天车)类似,是一个MIMO复杂控制系统。
桥式吊车系统由三部分组成:桥架驱动系统,车体驱动系统和重物装吊系统。其工作流程为:先将重物起吊至预先设定好的高度,然后吊车运动将重物运到想要放置的位置上方,最后把重物下放到想要放置的位置上。
确定要研究的系统为桥式吊车运动控制系统
桥式吊车系统工作示意图见下图1:
p
M
m
x
z
F
θ
mg
图1
桥式吊车工作示意图
对于如上桥式吊车控制系统,首先做如下假设:
1)
吊车的行走运动仅限于吊车一个自由度,即假设桥架不运动,只有吊车在桥架上行走。
2)
吊车行走时吊装重物的绳索长度不变。
图中,x坐标为水平方向,z坐标为垂直方向。重物的摆动是由吊车与重物的运动产生的,可以根据动力学有关规律建立吊车及重物的运动方程式。
1)
在水平方向,吊车和重物整体受力为F(t),由牛顿第二定律得
(1)
2)
在垂直于绳索方向,重物受力为,由牛顿第二定律得
(2)
由吊车在行走时吊装重物的绳索长度不变的假设可得出下面两个关系式:
(3)
(4)
式中,为绳索长度。
由(3)可得
(5)
(5)代入(1)得:
(6)
同样由式(4)可得:
(7)
将(5)(7)代入(2)得
(8)
又尽量小,所以有如下近似式:,将(6),(8)线性化可得:
(9)
(10)
由(9)和(10)计算得
(11)
和
(12)
3)
吊车驱动装置的方程式。吊车由电动机驱动,简化的认为电动机是一个时间常数为的一阶惯性环节,即它产生的驱动力F(t)与其控制电压v(t)之间满足方程式:
(13)
其中K为放大系数。
选择系统的输入、输出变量和状态变量
选择5个状态变量分别为:,,;
输入变量为:;
两个输出变量为:。
建立状态空间描述
根据(11)(12)(13)式可得出描述吊车运动系统的状态空间表达式为:
选取适当参数:对一个实际的桥式吊车吊车运动系统,假定具有如下各具体参数:M=1000kg,m=4000kg,l=10m,K=100N/V。将它们代入上面的状态空间表达式得:
分析系统的稳定性
用特征值法。在MATLAB中输入以下程序:
eig(A)
ans
=
0
0
0
+
2.2136i
0
2.2136i
系统的5个开环特征值不全位于S左平面上,有4个位于虚轴上,所以系统为临界不稳定。
系统输出仿真波形如下图所示:
判断系统的能控性
使用MATLAB判断系统的能控性,输入以下程序:
A=[0
0
0
0;0
0
-39.2
0
0.001;0
0
0
0;0
0
-4.9
0
0.0001;0
0
0
0
-1];
B=[0;0;0;0;100];
C=[1
0
0
0
0;0
0
0
0];
rct=rank(ctrb(A,B))
rct
=
根据判别系统能控性的定理,该系统的能控性矩阵满秩,所以该系统是能控的。
采用状态反馈进行系统综合因为系统是能控的,所以,可以通过状态反馈来任意配置极点。例如将极点配置在:s1=-0.16-j0.16
s2=-0.16+j0.16
s3,s4,s5=-1。
在MATLAB中输入:
P=[-0.16+0.16i,-0.16-0.16i,-1,-1,-1];
K=acker(A,B,P)
求出状态反馈矩阵K:
K
=
0.52245
4.8327
-1420.7
-137.21
0.0232
在MATLAB中输入
A-B*K
ans
=
0
0
0
0
0
0
-39.2
0
0.001
0
0
0
0
0
0
-4.9
0
0.0001
-52.245
-483.27
1.4207e+005
13721
-3.32
因此综合后系统的状态空间描述为:
采用MATLAB编写m文件进行仿真。
运行仿真程序,得到仿真曲线如下图:
将极点配置在:s1=-0.2
s2=-0.2
s3,s4,s5=-1。计算出K=[0.40816
5.3061
-1438.1
-119.06
0.024]此时输出y的仿真曲线如下:
将极点配置在:s1=-0.16+0.16i
s2=-0.16-0.16i
s3=-1
s4=-2
s5=-3。计算出K=[3.1347
25.339
-2145.4
553.73
0.0532]此时输出y的仿真曲线如下:
实验结论
通过比较3组不同的极点配置下状态反馈系统的输出响应曲线和原系统的输出响应曲线可以看出,不同的极点配置对系统性能有一定的影响,但只要极点都配置在S左平面,就可以保证系统具有一定的动态和稳态性能。
附录:程序
%*******************************************
%桥是吊车运动控制系统极点配置设计及仿真
2015.12.30
lwd
%*******************************************
%建立状态空间表达式
A
=
[0,1,0,0,0;0,0,-39.2,0,10^(-3);0,0,0,1,0;0,0,-4.9,0,10^(-4);0,0,0,0,-1]
B
=
[0;0;0;0;100]
C
=
[1,0,0,0,0;0,0,1,0,0]
D
=
[0;0]
%分析系统稳定性
eig(A)
%求A的特征值,通过特征值在S平面分布判断系统稳定性
%系统仿真输出波形
[num,den]
=
ss2tf(A,B,C,D);
sys1
=
tf(num(1,:),den);
sys2
=
tf(num(2,:),den);
figure
step(sys1)
figure
step(sys2)
%判断系统的能控性
rct
=
rank(ctrb(A,B))
obs
=
rank(obsv(A,C))
%如果能空则进行极点配置设计
if
==
rct
%第一次极点配置设计
P
=
[-0.16+0.16*i,-0.16-0.16*i,-1,-1,-1];
K
=
acker(A,B,P)
A1
=
A-B*K
[num,den]
=
ss2tf(A1,B,C,D);
sys1
=
tf(num(1,:),den);
sys2
=
tf(num(2,:),den);
figure
step(sys1)
figure
step(sys2)
%第二次极点配置设计
P
=
[-0.2,-0.2,-1,-1,-1];
K
=
acker(A,B,P)
A1
=
A-B*K
[num,den]
=
ss2tf(A1,B,C,D);
sys1
=
tf(num(1,:),den);
sys2
=
tf(num(2,:),den);
figure
step(sys1)
figure
step(sys2)
%第三次极点配置设计
P
=
[-0.16+0.16*i,-0.16-0.16*i,-1,-2,-3];
K
=
acker(A,B,P)
A1
=
A-B*K
[num,den]
=
ss2tf(A1,B,C,D);
sys1
=
tf(num(1,:),den);
sys2
=
tf(num(2,:),den);
figure
step(sys1)
figure
step(sys2)
end