课程名称:
学 院:
专 业:
班级学号:
姓 名:
指导教师:
前言
自动控制技术是生产过程中的关键环节,也是许多高新技术产品的核心技术。自动控制技术广泛应用于制造业、农业、交通、航空及航天等众多产业部门,极大的提高了社会劳动生产率,改善了人们的劳动条件,丰富和提高了人民的生活水平
研究分析系统有时域分析法和频率法。时域分析是通过求解系统的微分方程来研究和分析系统,而频率法可以直观的分析系统的稳定性,主要是改变系统开环对数幅频特性曲线的形状,使之具有合适的高频,中频,低频特性和稳定裕量,以达到满意的闭环品质。在此次课程设计中需要对系统进行频域分析,通过引入超前校正,利用超前校正网络的相位超前特性增大系统的相位裕量,以达到改善系统动态响应的目的。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB在自动控制理论诸多数据分析研究、数学模型的运算、数据的分析、模拟实验等过程中有着广泛的应用。怎样确定控制系统的性能指标是控.制系统的分析问题,怎样使自动控制系统的性能指标满足设计要求是控制系统的设计与改造问题。用MATLAB辅助计算可以大大节省时间,方便系统设计。
目录
前言.....................................................1
任务书...................................................3
1.未校正系统分析..........................................4
1.1编写M文件,作出系统在单位阶跃输入下的响应系统........4
1.2绘制根轨迹,分析未校正系统的性能......................4
1.3绘制开换系伯德图,利用频域分析法分析系统频域性能指标...5
2.画出串联校正结构图,分析并选择校正的类型.................5
3.确定校正装置传递函数....................................6
4.画出校正后的伯德图,校验系统性能指标.....................6
5.校正后的系统单位阶跃输入下的响应曲线....................6
6.对校正后的系统利用连续系统按环节离散化的数字仿真方法求阶跃输入下的动态响应........................................7
7.附录....................................................8
8.心得体会...............................................10
参考文献.................................................12
课程设计任务书
题 目: 转子绕线机控制系统的滞后校正设计。
初始条件:已知转子绕线机控制系统的开环传递函数是
G(S)=1/s(s+5)(s+10)
要求校正后系统的动态过程超调量小于等于3%,调节时间小于等于1.5s
要求完成的主要任务:
1.未校正系统分析
(1)编写M文件,作出系统在单位阶跃输入下的响应系统
(2)绘制根轨迹,分析未校正系统的性能
(3)绘制开换系伯德图,利用频域分析法分析系统频域性能指标
2.画出串联校正结构图,分析并选择校正的类型
3.确定校正装置传递函数
4.画出校正后的伯德图,校验系统性能指标
5.校正后的系统单位阶跃输入下的响应曲线
6.对校正后的系统利用连续系统按环节离散化的数字仿真方法求阶跃输入下的动态响应
7.附录
8.总结
1、 利用MATLAB进行未校正系统的频域分析
1.1编写M文件,作出系统在单位阶跃输入下的响应系统
num0=1;
den0=[1,15,50,0];
[num,den]=cloop(num0,den0);
t=0:0.1:800;
step(num,den,t);
title('Step Response');
%figure(1)%未校正的单位阶跃函数响应曲线
从图看其中调节时间很大,超调量也很大
1.2绘制根轨迹,分析未校正系统的性能
num1=1;
den1=[1,15,50,0];
rlocus(num1,den1);
title('校正前的根轨迹');
figure %校正前的根轨迹图形
分析得到:校正前系统传递函数有3个极点P1=0,P2=-5,P3=-10,没有零点。
起始点:分别为P1、P2、P3,终止点:无穷远
实轴上的根轨迹:(-1,0)、(,-10)
渐近线:,=-5
分离点:s1=-2.11,s2=7.89(不在根轨迹上面,舍)
1.3绘制开换系伯德图
num2=1;
den2=[1,15,50,0];
bode(num2,den2);
grid; %绘制网格
num3=1;
den3=conv([1,0],conv([1,5],[1,10]));
[gm,pm,wcg,wcp]=margin(num3,den3);
a=num2str(20*log10(gm))
b=num2str(20*log10(pm))
c=num2str(20*log10(wcg))
d=num2str(20*log10(wcp))
a=50.5012 b=39.0516 c=16.9797 d=-33.9795
2.画出串联校正结构图,分析并选择校正的类型
本系统要求调节时间小于1.5s 超调量小于3%,开始选择滞后校正,调节时间不满足,然后选择期望特性校正,超调量总是达到30%以上,调节时间很满足要求,总小于1.5s,综合以上经验
设超前校正装置传递函数G(s)=1+aTs/1+Ts
经过多次选择得到
3.确定校正装置传递函数
G(S)=2.9s+72/0.001s+0.9
4.画出校正后的伯德图,校验系统性能指标
num0=1;
den0=[1,15,50,0];
numc=[2.9,72];
denc=[0.001,0.9];
num=conv(num0,numc);
den=conv(den0,denc);
bode(num,den);
grid; %绘制网格
其中GM=27.022 PM=36.6376 WCP=20.8035 WCG=30.6175
5.校正后的系统单位阶跃输入下的响应曲线
figure %校正后的单位阶跃函数响应曲线
num0=1;
den0=[1,15,50,0];
numc=[2.9,72];
denc=[0.001,0.9];
num=conv(num0,numc);
den=conv(den0,denc);
[numb,denb]=cloop(num,den);
step(numb,denb);
从图得到调节时间为1.39s,超调量为1.94%。满足要求
6.对校正后的系统利用连续系统按环节离散化的数字仿真方法求阶跃输入下的动态响应
figure %离散的数字仿真
num4=1;
den4=[1,15,50,0];
T=0.001;
[numd,dend]=c2dm(num4,den4,T,'zoh');
num5=[2.9,72];
den5=[0.001,0.9];
[numdd,dendd]=c2dm(num5,den5,T,'zoh');
numddd=conv(numd,numdd);
denddd=conv(dend,dendd);
[num6,den6]=cloop(numddd,denddd);
dstep(num6,den6);
7.附录M文件
num0=1;
den0=[1,15,50,0];
[num,den]=cloop(num0,den0);
t=0:0.1:500;
step(num,den,t);
title('Step Response');
%figure(1)%未校正的单位阶跃函数响应曲线
figure %校正前的根轨迹图形
num1=1;
den1=[1,15,50,0];
rlocus(num1,den1);
title('校正前的根轨迹');
figure %校正前的根轨迹图形
num2=1;
den2=[1,15,50,0];
bode(num2,den2);
grid; %绘制网格
num3=1;
den3=conv([1,0],conv([1,5],[1,10]));
[gm,pm,wcg,wcp]=margin(num3,den3);
a=num2str(20*log10(gm))
b=num2str(20*log10(pm))
c=num2str(20*log10(wcg))
d=num2str(20*log10(wcp))
figure %校正后的伯德图
num0=1;
den0=[1,15,50,0];
numc=[2.9,72];
denc=[0.001,0.9];
num=conv(num0,numc);
den=conv(den0,denc);
bode(num,den);
grid; %绘制网格
figure %校正后的单位阶跃函数响应曲线
num0=1;
den0=[1,15,50,0];
numc=[2.9,72];
denc=[0.001,0.9];
num=conv(num0,numc);
den=conv(den0,denc);
[numb,denb]=cloop(num,den);
step(numb,denb);
figure %离散的数字仿真
num4=1;
den4=[1,15,50,0];
T=0.001;
[numd,dend]=c2dm(num4,den4,T,'zoh');
num5=[2.9,72];
den5=[0.001,0.9];
[numdd,dendd]=c2dm(num5,den5,T,'zoh');
numddd=conv(numd,numdd);
denddd=conv(dend,dendd);
[num6,den6]=cloop(numddd,denddd);
dstep(num6,den6);
8.体会与收获
这次的MATLAB课程设计比平时的练习复杂的多,难的多,同时也让我深深地体会到自己的不足,感到上课时其中许多东西都不太明白,才发现自己的理论知识有些薄弱,然后自己看书并在同学的帮助下后才真正掌握了一些上课学到但是不扎实的知识。
加之,我也学到了MATLAB软件的使用方法,刚开始使用这个软件时还真的不知所措,连图都画不出来,后来通过学习可以顺畅的使用其画图,这让我明白了做任何事都要用心,仔细才能做好,这不止是一次小小的课程设计,也是我人生过程中的一次历练,一次心理战,它让我使自己学到的知识得到进一步的巩固;也让我们的动手能力和独立思考及发现关键问题的能力进一步提高,更让我明白了自己身上的欠缺,容易紧张。课程设计需要刻苦耐劳,努力专研的精神,对于每一个事物都有第一次,所以一开始就要有能克服苦难挫折的决心,这期间可能需要连续几个小时,十几个小时的不断努力,最后出成果的瞬间是喜悦,轻松,松口气。
课程设计中出现的问题几乎都是过去学到的知识不牢靠,许多计算的方法和公式都忘光了。要不断的看书,翻资料和同学们探讨,虽然过程有点枯燥乏味,但是终究是把自己不会的知识全补上了,同时最后我们也顺利的完成了此次的课程设计。
参考文献
[1] 张建民.自动控制原理.高等教育出版社.20##年
[2] 胡寿松.自动控制原理.科学出版社.20##年
[3] 胡寿松.自动控制原理同步辅导及习题全解.中国矿业大学出版社.20##年
[4] 李国勇,谢克明。计算机仿真技术于CAD—基于MATLAB的控制系统。电子工业出版社。2008
[5] 楼顺天.基于MATLAB的系统分析与设计.西安电子科技大学出版社.1999年
第二篇:matlab课程设计
《MATLAB语言》课程论文
MATLAB绘图功能解决数学函数分析问题
姓名:
学号:
专业:电子信息工程
班级:1班
指导老师:汤全武
学院:物理电气信息学院
完成日期:20##-12-19
MATLAB绘图功能解决数学函数分析的问题
()
【摘要】
数学分析中有很多问题我们用计算的方法做会很麻烦,相反如果我们可以精确的画出函数图形,就可以很直观的观察出函数的特性,我们想要解决的,例如求函数单调性,函数的对称性,对称区间,函数的奇偶性等一些问题就会一目了然。而Matlab具有强大的绘图功能,并且Matlab用起来也特别方便,利用Matlab绘图功能我们可以绘制出各类曲线,这样我们就可以利用Matlab的绘图功能解决数学函数分析上的问题,避免了传统的手工绘图的麻烦和不确定性以及局限性。
【关键字】Matlab 绘图 二维曲线 函数 解决 问题
一﹑问题的提出
Matlab的绘图功能可以绘制各种曲线,包括二维图形和三维图形,还可以对图形进行修饰和控制,以增强图形的表现效果。Matlab提供了两个层次的绘图操作,一种是对图形句柄进行的底层绘图操作,另一种是建立在底层绘图操作上的高层绘图,而Matlab绘图用户不需要过多的考虑绘图细节,只需要给出一些基本的参数就可以绘制所需图形。利用Matlab的绘图功能我们在解决数学函数分析问题,就不用在麻烦的计算,也不用再手工画图,我们只需利用Matlab所给出的一些函数就可以轻松的绘制出各种曲线。那么利用Matlab绘图功能我们究竟可以解决哪些数学函数分析的问题呢?Matlab绘图功能怎么能很好的运用在数学上呢?
二﹑Matlab的二维绘图功能与数学函数分析。
1. Matlab绘制二维曲线的基本函数。
(1)plot函数
此函数用来绘制直角坐标系中的二维曲线
Plot函数的基本调用格:
Plot(x,y,linspec…)
其中x绘制以元素维横坐标,y为纵坐标的曲线,x,y具有相同的长度的向量。linspec指曲线的线性,标记,颜色。
例:在区间0≦x≦内,绘制曲线y=2e-0.5xsin(2x).
程序如下:
x=0:pi/100:2*pi
y=2*exp(-0.5*x).*sin(2*pi*x);
plot(x,y)
执行后,打开一个图形窗口,在其中绘出图图1所示曲线。
运行结果如图所示:
图1 的曲线
(2)含多个输入参数的plot函数。
Plot(x1,y1,x2,y2,…Xn,Yn)
此函数可以用开在同一坐标内绘制多条函数曲线。
①当输入参数都为向量时,X1和Y1,X2和Y2,…Xn和Yn分别组成一组向量对,每一组向量对可以绘制一条曲线,这趟可以在同一坐标绘制多条曲线。
②当输入参数有矩阵形式时,配对的X,Y按对应列元素的横纵坐标分别绘制曲线。曲线的条数等于矩阵的列数。
(3)线型,标记,颜色
利用这些绘图选项,我们在绘图时可以对不同函数曲线的线形,颜色进行设置,这样会使图形表现的更清晰、更明确。
含选项的plot函数调用格式如下:
Plot(X1,Y1,选项1,X2,Y2,选项2,…Xn,Yn,选项n)
(4)双坐标函数plotyy.
在matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以用plotyy.函数,这种图形能把函数具有不同量纲不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的比较分析。
调用格式:
plotyy.(x1,y1,x2,y2)
其中,x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对.
(5)图形标注
Title (图形说明)
Xlabel (X轴说明)
Ylabel (Y轴说明)
Text (X,Y,图形说明)
Legend (图例1,图例2,…
(6)坐标控制
Axis([Xmin Xmax Ymin Ymax Zmin Zmax ])
若只给出四个参数,则MATLAB按照X,Y轴的最大值和最小值选择坐标范围,以绘制出合适的二维曲线。
以下是AXIS常用的函数:
Axis equal : 纵,横坐标采用等长度。
Axis square : 产生正方形坐标系。
Axis auto : 使用默认设置。
Axis off : 取消坐标轴。
Axis on : 显示坐标轴。
(7)图形保持
Hold on
一般情况下,每执行一次绘图命令,就刷新一次当前窗口,图形原有的窗口将不存在,若希望在以存的图形上继续添加新的图形,可以使用图形保持命令,hold on/off命令控制时保持原有图形还是刷新原有图形,不带参数的hold的命令在两种状态之间切换。
(8)图形窗口分割函数。
Subplot(m,n,p)
该函数将当前图形窗口分成m×n个绘图区,即m行,每行n个区,且选定第p个区为当前活动区。
(9)fplot
此函数可以提高绘图的精确度,避免手工绘图等距取样的局限向。
调用格式
Fplot(filename,lims,tol,选项)
其中Filename为函数名,以字符形式出现,lims为x,y的取值范围,tol为相对容许误差。
以上我们介绍了matlab绘制二维曲线的一些函数的功能及其调用格式,下面我们分析一下如何用matlab绘图功能解决数学函数分析的问题,以及利用matlab解决数学问题具有那些优越性。
2.用matlab绘图功能可以解决的数学函数分析的问题。
(1)用matlab绘图功能求函数值遇问题。
例1. 求分段函数
Y=
的值域
下面我们用matlab绘图来解决这个问题。
Matlab程序:
X=linspace(0,10,100); %坐标轴取值范围
Y=[]; %从一个空矩阵开始
for X0=X %把X的值赋给X0
if X0>=8 %判断X取值范围
Y=[Y,1]; %将X0添加到Y中
elseif X0>=6 %判断X取值范围
Y=[Y,5-X0/2]; %将X0添加到Y中
elseif X0>=4 %判断X取值范围
Y=[Y,2];
elseif X0>=0
Y=[Y,sqrt(X0)];
end
end
plot(X,Y) %绘制函数图像
axis([0 10 0 2.5]) %坐标设置
title('分段函数曲线'); %加图形标题
xlabel('varible x'); %加x轴说明
ylabel('varible y'); %加y轴说明
text(2,1.3,'y=x6{1/2}'); %在指定位置添加图形说明
text(4.5,1.9,'y=2');
text(7.3,1.5,'Y=5-X/2');
text(8.5,0.9,'y=1');
运行结果如图所示:
图2 求分段函数值域的曲线
由于我们可以看出分段函数的值域在0到2之间
(2)用matlab绘图功能求函数最大值和最小值。。
例2.求函数的在定义域【-100,100】内的最大值和最小值。
用matlab绘图解决这个问题。
Matlab程序:
x=-100:0.01:100; %坐标控制
y=(x-9).^3+6*x.^2+9*x.^2;
subplot(1,1,1); %选择在1×1个区域内的1号区域
plot(x,y,'b') %绘制函数曲线
运行结果如图所示:
图3 求函数最大值和最小值的曲线
由图我们可以看出函数在定义域内单调递增,所以其最大值和最小值分别在端点处取得,我们只需将端点值带入即可。
得:
Ymax=903571
Ymin=-1445029
在计算时我们可以利用matlab程序算出结果,这里只用绘图功能。
如果用计算的方法我们还得先计算函数的导数,然后求极值点,在根据具体计算来判断,很麻烦,用matlab绘制出函数图形问题一目了然。
(3) 用matlab绘图功能求函数周期性和函数连续性。
例3.求函数y=的周期并且判断函数的连续性
首先对于这样一个函数我们很难用手工画出其图形来。下面我们用matlab来绘制函数图形。
程序如下:
x=0:pi/100:2*pi;
y=(cos(x).^2)/3;
plot(x,y)
运行结果如图所示:
图4 y=的曲线
用matlab编辑的函数很简单,就三句语句,我们就可以很容易的得到函数曲线,此函数在定义域内是连续的周期为2.
例4。试比较正弦函数和余弦函数的共同点和不同点。
用matlab作图
程序如下:
x=-3*pi:pi/100:3*pi; %坐标范围设置
y1=sin(x);
y2=cos(x);
plot(x,y1,'k:',x,y2,'b-') %绘制函数
axis([0,9,-5,5]) %设置坐标轴
text(1.4,0.3,'cos(x)'); %在指定位置添加说明
text(2.8,0.5,'sin(x)');
legend('sin(x)','cos(x)'); %加图例
运行结果:
图5 的曲线
Matlab绘图功能可以在同一个坐标系内绘制不同的函数图像,这样在一个坐标系内不同函数表现的相同点不同点就会一目了然。
(4)求函数间断点
例5.以下程序是一个分段函数的绘图程序
x=-10:0.1:1;
y=x.^3;
plot(x,y,'-g'); %绘制函数曲线
x=1:0.1:4;
y=x.^2;
hold on %设置图形保持状态
plot(x,y,'-r'); %绘制函数曲线
x=4:0.1:10;
y=2.^x;
plot(x,y,'-b'); %绘制函数曲线
图6 分段函数曲线
由图我们可以看出函数是连续的没有间断点
(5)用matlab绘图功能求函数单调性﹑极值点﹑拐点。
例6.求函数的单调区间,极值及拐点。
用计算的方法解:
①求单调区间
设f(x)=
x1>x2>0,f(x1)>f(x2)>0.
则f(x1)-f(x2)
=x13-x23
=(x12-x22)(x12+x1x2+x22)
因为x1>x2>0所以x12-x22>0.x12+x1x2+x22>0
所以f(x1)-f(x2)>0,x1=x2=0, f(x)=0。
所以在x>0时f(x)>0
函数y=x3单调递增,同理可得y=x3在x<0内也单调递增。
综上可得,y=x3在整个定义域内单调递增。
②求极值及拐点
Y′=3x2
令y′=0,得出:x1=x2=0.
y′>0,
所以函数没有极值点。
凹凸区间和拐点的问题就不在这计算了。
由上面计算过程可以看出计算法求函数的单调区间,极值点很麻烦,如果我们可以绘制处y=x3和导数Y′=3x2的函数图像,就可以很直观的看出函数在其定义域内的性质。
下面我们用matlab绘制二维函数曲线来解决这个问题。
Matlab 程序:
x=-10:0.01:10; %给出坐标取值区间
y1=x.^3-; %第一个曲线
y2=(3*x).^2; %函数一阶导数的曲线
y3=6*x; %函数二阶导数的曲线
plot(x,y1,x,y2,x,y3) %在同一个坐标内绘制原函数,一阶导数,二阶导数曲线
运行结果如图所示:
图7 求函数单调性的函数曲线
图中蓝线是原函数y=x3的曲线,由此图形我们可以看出函数在其定义域内是单调递增的趋势。
图中绿线是导数Y′=3x2的曲线,我们可以根据其在定义域内函数值的大小来判断原函数的单调性,我们知道如果函数一阶导数大于0,责其在此定义域内单调递增,相反如果一阶导数小于0则函数在此定义域内单调递减,由图中一阶导数曲线可以看出,此函数一阶导数在整个定义域内函数值都大于0,所以原函数y=x3在其定义域内单调递增。
(6)用matlab绘图功能还可以解决函数奇偶型,对称性等。
三、结论
1.通过比较用计算的方法和用matlab绘图解决数学函数分析的问题发现,传统的计算方法在解决函数分析时很复杂,也很麻烦,我们也希望可以用手工绘图来解决问题,但是用手工画图,图形本身是由表达式给出的,简单一点的还可以但是复杂一点的例如:logx类似这样的函数,常常越出我们的想象,根本不知其形。还有一些因为绘图能力不及,难以描绘。所以手工绘图也会有很多麻烦。我们在面对这些问题时,无疑选择matlab绘图时最简单的。
2.matlab的图形功能时多样化的,我们可以很简单的通过改变程序参数就可以改变图形的格式,直到达到自己所需要的形状为止。通过matlab绘图,我们也可以对坐标进行控制,可以在同一个坐标系内绘制不同的函数图像,这样有利于比较函数的性质,同时在分析问题上又进以步带来了方便。
3.利用matlab语言我们在求解函数问题时不止可以画图,matlab里的好多函数都可以进行数值计算,我们只需编辑相应的程序,就可以计算出结果,同时可以达到数形结合的效果使问题更简单化。
4.matlab语言的功能是多样话的,在我们解决数学问题时,方法都不是唯一确定的,通过自己对matlab的掌握程度,用户可以选择适合自己的简单的方法去解决问题呢。总而言之,在数学函数分析的问题上,利用matlab语言绘制图形就是最简单最具有可视化的方法,matlab绘图及其它功能将在数学教学上有很大帮助作用。
四、 课程体会
通过一学期学习matlab语言发现matlab语言博大精深,我们不可能全部学会,因为它是在不断开发不断更新的,但是就matlab任何一方面内容来说,只要掌握一些都会有很大用途,就像本论文中涉及到的绘图功能,因为我对matlab绘图方面了解也不是特别深,所以引出的用途可能也不够到位,但是就我学到的这些已经很奇妙了用途也很大了,尤其在数学教学方面会起到很大作用。而这次的论文写作过程中通过自己找资料重新学习matlab有关绘图方面的知识发现,matlab在绘图方面功能很强大也很神奇,不仅可以绘制平面图形还可以绘制立体图形,同样可以依据你的要求画出点状分布,直方图等,你能想到的都可以满足。在图书管找资料过程中发现matlab绘图功能已经广泛的应用与数学试验方面,尤其平时很让人头痛的函数积分问题,用matlab会出立体图形更让人感觉到奇妙。以后自己要好好学学matlab语言。
【参考文献】
【1】 刘卫国. Matlab程序设计与应用(第二版)[M].北京:高等教育出版社,2006
【2】 同济大学.高等数学 上册(第六版)[M].北京:高等教育出版社,20##年4月.
【3】 李尚志等.数学实验(第二版)高等教育出版社。20##年2月
【4】 周晓阳.数学实验与Matlab(第一版)华中科技大学出版社.20##年8月
【5】 www.cnki.net “用Matlab解决数学图形问题”.宁夏大学计算机学院.