目录
一、课程设计目的. 1
二、课程设计任务. 1
三、课程设计题目. 1
3.1、画出分段函数图: 1
3.2、信号的产生与变换. 2
3.3、财经问题. 3
3.4、计算平均学分积GPA 4
3.5、供煤量分配问题. 6
四、课程设计结论及分析. 7
五、心得体会. 7
六、参考文献. 7
一、课程设计目的
1. 熟悉MATLAB的工作环境;
2. 熟悉并练习MATLAB的命令;
3. 掌握MATLAB的基本操作;
4. 熟练掌握MATLAB的基本应用。
二、课程设计任务
1.熟练掌握MATLAB的基本用法以及实际应用;
2.将课程设计题目解答完毕,完成一下内容:
(1)、画出分段函数图;
(2)、信号的产生与变换;
(3)、财经问题;
(4)、计算平均学分积GPA;
(5)、供煤量分配问题。
三、课程设计题目
3.1、画出分段函数图:
(1)程序:
x=-3:0.1:3;
y=-3:0.1:3;
length_of_x=length(x);
length_of_y=length(y);
for i=1:length_of_x
for j=1:length_of_y
if (x(i)+y(j))>1
z(i,j)=0.5457*exp(-0.75*y(j)^2-3.75*x(i)^2-1.5*x(i));
elseif ((x(i)+y(j))>-1)&&((x(i)+y(j))<=1)
z(i,j)=0.7575*exp(-y(j)^2-6*x(i)^2);
else
z(i,j)=0.5457*exp(-0.75*y(j)^2-3.75*x(i)^2+1.5*x(i));
end
end
end
mesh(x,y,z)
(2)运行结果:
3.2、信号的产生与变换
数字信号处理中y(n)=x(-n)的画图实现;其中
(1)程序:
n=-4:4;
for i=1:9
if abs(n(i))>3
x(i)=0;
else x(i)=2*n(i)+1;
end
end
y=fliplr(x);
stem(n,y);
(2)运行结果:
3.3、财经问题
一笔100000元的贷款要按每月等额偿付d元的方式付清。利息是在未付余额的基础上以每年10%的利率按月计入(如第一个月之后总债等于100000+(0.1/10)*100000)。
求每月的偿付额d,使得这笔贷款10年还清,并求在10年期间付款的总数目。
(1)分析:
第1月后本息和: S1=(1+0.1/10)*(100000-d)=1.01*(100000-d)
第2月后本息和: S2=((1.01*(100000-d))-d)*1.01
第3月后本息和: S3=(S2-d)*1.01
第4月后本息和: S4=(S3-d)*1.01
……
第119月后本息和: S119=(S118-d)*1.01
由于需10年还清,故第120月只需还d元就全还清了,即S119=d
由于采用每月等额偿付d元的方式,故10年付款总数目为120d
(2)程序:
syms d
y=(100000-d)*1.01;
for i=1:119
y=(y-d)*1.01;
end
f=1.01*y/2.01;
digits(8)
x=vpa(solve(f));
digits(12)
s=vpa(120*x);
disp('每月偿付额d:');disp(x);
disp('10年期间付款总数目:');disp(s);
(3)运行结果:
每月偿付额d:
1420.5044
10年期间付款总数目:
170460.5280
3.4、计算平均学分积GPA
大学某班,第一学期若干学生各科成绩存在一个EXCEL文件中,文件名为score.xls要求:matlab编程读取这个EXCEL文件并求出各个学生的平均学分积,最后将平均学积分按名字写入每个同学后面。
成绩文件的位置如下: \score.xls-Sheet1
各科的学分分配如下:高数:5英语:4物理:3.5德育:2电路:4数字电路:3.5体育:2
平均学分积计算公式:(∑成绩×学分)/∑学分
(1)程序:
[num,txt,data]=xlsread('D:\score.xls')
for i=1:30
d(i,1)=(num(i,3)*5+num(i,4)*4+num(i,5)*3.5+num(i,6)*4+num(i,7)*3.5+num(i,8)*2+num(i,9)*2)/(5+4+3.5+4+3.5+2+2)
end
b={'平均学分积'};
xlswrite('D:\score.xls', round(d*1000)/1000,'sheet1','J2:J31')
xlswrite('D:\score.xls',b,'sheet1','J1')
winopen('D:\score.xls');
(2)运行结果:
原表格:
运行后表格:
3.5、供煤量分配问题
某两个煤厂A1和A2,每月进煤量分别为60吨和l00吨,联合供应3个居民区B1,B2和B3,每个居民区每月对煤的需求量依次分别为50吨,70吨,40吨。煤厂A1离3个居民区B1,B2和B3的距离分别为10km,5km和6km,煤厂A2离3个居民区B1,B2和B3的距离分别为4km, 8km和12km,问如何分配供煤量使得运输量(即吨×km)达到最小?
(1)分析:
fmin=10x1+5x2+6x3+4x4+8x5+12x6
x1+x2+x3≤60
x4+x5+x6≤100
x1+x4≤50
x2+x5≤70
x3+x6≤40
x1,x2,x3,x4,x5,x6≥0
(2)程序:
f=[10;5;6;4;8;12];
aeq=[1 1 1 0 0 0;0 0 0 1 1 1;1 0 0 1 0 0;0 1 0 0 1 0;0 0 1 0 0 1];
beq=[60;100;50;70;40];
lb=[0 0 0 0 0 0];
[x,fval]=linprog(f,[],[],aeq,beq,lb,[]);
disp('A1运往B1小区的煤量:'),disp(round(x(1)));
disp('A1运往B2小区的煤量:'),disp(x(2));
disp('A1运往B3小区的煤量:'),disp(x(3));
disp('A2运往B1小区的煤量:'),disp(x(4));
disp('A2运往B2小区的煤量:'),disp(x(5));
disp('A2运往B3小区的煤量:'),disp(round(x(6)));
disp('运输量最小为:'),disp(fval);
(3)运行结果:
A1运往B1小区的煤量:
0
A1运往B2小区的煤量:
20.0000
A1运往B3小区的煤量:
40.0000
A2运往B1小区的煤量:
50.0000
A2运往B2小区的煤量:
50.0000
A2运往B3小区的煤量:
0
运输量最小为:
940.0000
四、课程设计结论及分析
详见各题目后的解析
五、心得体会
经过两星期的课程设计,使我理解了理论与实际相结合是多么的重要,只学习书本上的理论知识是远远不够的,只有把所学的理论知识和实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考能力。在设计过程中也遇到了很多问题,同时也发现了自己的很多不足,对以前自己所学过的知识理解得还不够深刻,掌握得还不够牢固。然而随着对matlab的学习的不断深入,我对其了解也更加深入,在这个过程中更是我对所学的知识的一种升华,所以整个实习过程并没有想象中那么令人烦恼,反而更加能激起心中那股不服输的精神。
虽然MATLAB软件我是刚刚接触,刚开始使用还不是太熟练,但是通过老师上课的讲解、教导和自己翻阅大量的关于MATLAB的资料,终于对其有所了解。在学习过程中我进一步对MATLAB编程中常用的语句、过程已经初步掌握。由于平时练习过多次matlab程序,所以此次课程设计并没有那么生疏。尽管过程中遇到了些许问题,通过自己的查阅资料以及同学的讨论,使自己茅塞顿开,从而解决了问题。有时尽管这些问题很小,但是也会导致结果出不来的问题,因此不论什么样的问题,都不能忽略,都要小心翼翼,直至解决它。在这次实习中我知道了合作的重要性,在和同学的讨论中,可以知晓同一道题的不同解答方法,进而扩充了自己的知识面。
总的来说,我了解了一个非常强大的软件——Matlab,一个能够改变你一生的软件。以后还要不断的学习,不断丰富自己的知识。
这次课程设计最大的收获就是不管做什么都不能放弃,要坚持到底,就像编程一样,无论错了多少次都要做好它,最终改正就行了,尽管课程设计结束了,但是这一次也给我留下了深刻印象,过程充满了乐趣,收获也很大!
六、参考文献
[1] 薛山.matlab基础教程[M].北京:清华大学出版社,2007:213-297.
[2] 王正林.matlab7.0[M].北京:电子工业出版社,2007.
[3] 张志勇等.matlab与仿真(2010a)[M].北京:北京航空航天大学出版社,2010.
[4] 薛定宇,陈阳泉.基于MATLAB/Simulink的系统仿真技术与应用[M].北京:清华大学出版社,2002.
[5] 王正林,MATLAB7.0[M].北京:电子工业出版社.
第二篇:MATLAB课程设计报告.doc
机 电 工 程 学 院
MATLAB课程设计
题 目: RL并联电路分析
专 业: 机械设计制造及其自动化
班 级: 08机械单
姓 名: 刘芬 学号: 20080612305
学 院: 机电工程学院
成 绩:
( 20##年12月15日 )
目录
摘要. Ⅰ
1 理论分析. 1
1.1 Matlab6.5版学习. 1
1.1.1 Matlab简介. 1
1.1.2 MATLAB的优势.. 2
1.2 RL并联电路. 4
1.3 RL并联电路分析. 5
2程序设计. 6
2.1程序设计方框图. 6
2.2编写程序代码. 7
3 程序运行结果. 8
4 图表分析及总结. 9
参考文献. 9
1 理论分析
1.1 Matlab6.5版学习
1.1.1 Matlab简介
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。
1.1.2 MATLAB的优势
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
(2)简单易用的程序语言
Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能方面更加完善,而且对于一些其他软件所没有的功能,MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等。
(6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
1.2 RL并联电路
如图所示电路,已知I0=2A,R=4Ω,L=3H,当t=0-时,开关 S至1闭合,当t=0+时,开关 S至2闭合,求uL(t),iL(t),并画出波形。
1.3 RL并联电路分析
如图1-1所示电路在开关S动作之前电流已恒定不变,电感中有电流I0=i(0-)=2A,在t=0时开关由1合到2,具有初始电流2A的电感L=3H和电阻R=4Ω相连接,构成一个闭合回路,如图所示。在t>0时,根据KVL,有
uR+uL=0
uR=Ri,uL=L,电路的微分方程为:
L+Ri=0
令方程的特解为i=Aept,可以得到相应的特征方程为:Lp+R=0
其特征根为
p=-
故电流为
i=Ae
根据i(0+)=i(0-)=I0,代入上式可得A=i(0+)=I0,从而
i=i(0+)e-t=I0 e
所以电感上的电压为
uL(t)= L=-RI0 e
电流为
i=I0 e
令T=,称为RL电路的时间常数。则所求的为
uL(t)=-RI0e,iL(t)=I0 e
2程序设计
2.1程序设计方框图
图2-1 程序设计方框图
2.2编写程序代码
clear,format compact
R=4;
L=3;
Io=2;
T=L/R;
t=0:0.001:10;
i=Io*exp(-t/T);
u=R*Io*exp(-t/T);
P=-R*Io*Io*exp(-2*t/T);
figure(1) plot( t,i)
figure(2),plot( t,u)
3 程序运行结果
图3-1 程序运行结果——i
图3-2 程序运行结果——U
4 图表分析及总结
由图中可以看出uL.iL始终不改变方向,由大到小,最后趋近零,电压与电流i按照同样的指数规律衰减,它们衰减的快慢取决于R/L的大小。由于p=-R/L,这是电路特征方程的特征根,仅取决于电路的结构和元件参数。而且有uL>=0,iL>=0,当t=0时,i(0+)=2A。当t→∞时放电过程结束,i(∞)=0,此过程中电感释放的能量全部让电阻以热能的形式放出,直至原来储存在电感中的磁场能全部为电阻吸收转化为热能。
参考文献
[1]邱关源,《电路》,高等教育出版社,1998
[2]唐昌建,《Matlab编程基础及应用》,四川大学网络教育学院, 2003.5
[3]吴锡龙,《电路分析》,高等教育出版社,2004
[4]张志涌,《MATLAB教程》,北京航天航空大学出版社,2005
[5]曹弋,《MATLAB教程及实例》,机械工业出版社,2008