第一部分判别系统稳定性的方法。
方法一:代数稳定判据法。
如已知系统的单位负反馈系统开环传递函数为,下面用代数稳定判据法判别其稳定性。
在matlab中输入以下程序:
n1=[1 7 24 24];
d1=[1 10 35 50 24];
g=tf(n1,d1);
g1=feedback(g,1);
roots(
执行以上程序得到如下结果:ans=
2.0000+1.4142i
2.0000-1.4142i
所以由于系统闭环极点全部为负实部,因此系统稳定。
法方二:根轨迹法。
假设系统的单位负反馈开环传递函数为,下面用根轨迹法判别其稳定性。
在matlab中输入以下程序:
k=1;z=[5;-4];
p=[0;-1;-3];
g=zpk(z,p,k);
rlocus(g)
g1=feedback(g,1);
step(g1)
方法三:bode图法。
设系统单位负反馈系统前向通道的传递函数为:,下面用频域法判别其稳定性。
在matlab中输入以下程序:
num=8*[1 1];
den=conv(conv(conv([1 0],[1 0]),1 15]),1 6 10]);
sys=tf(num,den);
bode(sys)
margin(sys)
gm pm wcp wcg]=margin(sys)
法方四:nyquist稳定判据法。
设系统单位负反馈系统前向通道的传递函数为:,下面用nyquist曲线法判别系统的稳定性。
在matlab中输入以下程序:
g=tf(5*[1 2],conv([1 10],[1 3 2 5]))
roots(
执行以上程序由得到的结果可知,开环传递函数在右半s平面的极点个数p=0.
nyquist(g)
执行此命令可得到nyquist曲线如下图,由图可以看出,nyquist曲线包围临界点的圈数r=0。所以 z=p-r=0,系统稳定。
hf=figure('name','曲柄滑块机构');
set(hf,'color','g');
hold on
axis([-6,6,-4,4]);
gridon
axis('off');
xa0=-5;%活塞左顶点坐标。
xa1=-2.5;%活塞右顶点坐标。
xb0=-2.5;%连杆左顶点坐标。
xb1=2.2;%连杆右顶点坐标。
x3=3.5;%转轮坐标。
y3=0;%转轮坐标。
x4=xb1;%设置连杆头的初始位置横坐标。
y4=0;%设置连杆头的初始位置纵坐标。
x5=xa1;
y5=0;x6=x3;%设置连轴初始横坐标。
y6=0;%设置连轴初始纵坐标。
a=0.7;
b=0.7c=0.7
a1=line([xa0;xa1],[0;0],'color','b','linestyle','linewidth',40); 设置活塞。
a3=line(x3,y3,'color',[0.5 0.6 0.3],'linestyle','markersize',300);%设置转轮。
a2=line([xb0;xb1],[0;0],'color','black','linewidth',10);%设置连杆。
a5=line(x5,y5,'color','black','linestyle','markersize',40);%设置连杆活塞连接头。
a4=line(x4,y4,'color','black','linestyle','markersize',50);%设置连杆连接头。
a6=line([xb1;x3],[0;0],'color','black','linestyle','linewidth',10);
a7=line(x3,0,'color','black','linestyle','markersize',50);%设置运动中心。
a8=line([-5.1;-0.2],[0.7;0.7],'color','y','linestyle','linewidth',5);%设置汽缸壁。
a9=line([-5.1;-0.2],[0.72;-0.72],'color','y','linestyle','linewidth',5);%设置汽缸壁。
a10=line([-5.1;-5.1],[0.8;0.75],'color','y','linestyle','linewidth',5);%设置汽缸壁。
a11=fill([-5,-5,-5,-5],[0.61,0.61,-0.61,-0.61],[a,b,c]);设置汽缸气体。
len1=4.8;%连杆长。
len2=2.5;%活塞长。
r=1.3;%运动半径。
dt=0.015*pi;
t=0;while 1
t=t+dt;
if t>2*pi
t=0;end
lena1=sqrt((len1)^2-(r*sin(t))^2);%连杆在运动过程中横轴上的有效长度。
rr1=r*cos(t);%半径在运动过程中横轴上的有效长度。
xaa1=x3-sqrt(len1^2-(sin(t)*r)^2)-(r*cos(t));活塞在运动过程中的右顶点坐标位置。
xaa0=xaa1-2.5;%%活塞在运动过程中的左顶点坐标位置。
x55=x3-cos(t)*r;%连杆在运动过程中横坐标位置。
y55=y3-sin(t)*r;%连杆在运动过程中纵坐标位置。
set(a4,'xdata',x55,'ydata',y55);%设置连杆顶点运动。
set(a1,'xdata',[xaa1-2.5;xaa1],'ydata',[0;0]);设置活塞运动。
set(a2,'xdata',[xaa1;x55],'ydata',[0;y55]);
set(a5,'xdata',xaa1);%设置活塞与连杆连接头的运动。
set(a6,'xdata',[x55;x3],'ydata',[y55;0]);
set(a11,'xdata',[5,xaa0,xaa0,-5]);设置气体的填充。
set(gcf,'doublebuffer','on');消除震动。
drawnow;
end输出为:
第三部分学习体会。
经过短短的十周对matlab的学习,我开始对这门课程以及这个是用的软件有了一个初步的认识。
我们在画一个系统结构框图时,通过运用软件里的simulink工具,很快捷的找到所需要的模块以及各种连接符号。而且模块的函数参数很方便的修改成我们所希望的数字,然后,可以通过虚拟的示波器很快的得到输出曲线,从而可以判别系统稳定与否。
当然,还可以通过编写程序,求出系统的传递函数,通过根轨迹法、bode图法等函数功能来判别系统的稳定性。
最后,经过大实验的认真思考与实践,使我更加熟练地掌握了这个软件,这是一个非常有用且方便的软件,给我们的学习与生活打来很大的方便。经过这学期对matlab的学习,为我今后更深一步的学习它奠定了良好的基础,因此,我将会在今后的学习中继续不断巩固与更深刻的学习它。
matlab作业
2011029170002王柳。a 一个问题的病态性如何,与求解它的算法有关系。错 b 无论问题是否病态,好的算法都会得到它好的近似解。错 c 计算中使用更高的精度,可以改善问题的病态性。错 d 用一个稳定的算法计算一个良态问题,一定会得到它好的近似解。对 e 浮点数在整个数轴上是均匀分布。错 f ...
matlab作业
matlab语言 第3次作业 字符串,单元数组和结构体 专业 海洋技术 海洋测绘方向 姓名 张体强学号 1026222 1 如何将一个char 数据类型的向量转化为相应的double 型数据类型的数据向量。从式1 到8,判断这些语句是否正确。如果它们正确,那么将产生什么结果?这题不要在电脑中做。1....
matlab作业
电子与通信工程学院。通信系统 实验报告。2013 2014 学年第1学期。调频 fm 系统调制解调 专业 通信工程。班级 通信111 班。学号 姓名 指导教师姓名陈多瑜。2013年 11 月日。1.频率调制或调频 fm 1 设调制信号为m t 调频信号的数学表达式为。例如 m t 的时域波形为。m ...