matlab课程设计报告

时间:2024.3.27

MATLAB与仿真系统课程设计

班    级:     自动化20##-2班    

姓    名:        张   涛        

学    号:       1105130206      

指导教师:       崔  新  忠      

地    点: 电信实验中心第9实验室


    

一、  课程设计的目的与要求………………………………………………(1

二、  课程设计课题的分析…………………………………………………(1

三、  课程设计的内容与安排………………………………………………(1

四、  课程设计的步骤………………………………………………………(1

五、  课程设计的结果………………………………………………………(6

六、  课程设计的心得与体会………………………………………………(9

七、       参考文献………………………………………………………………(9

附录

图像与动画

一、           课程设计的目的与要求

 1、课程设计的目的

(1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。

(2)通过课程设计提高应用能力,为专业课程的学习打下基础。

(3)培养查阅资料的习惯,训练和提高独立思考和解决问题的能力。

(4)通过命令显示图像,完成简单动画的制作,结合程序设计培养知识综合运用能力和技巧。

2、课程设计要求

从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:

(1)能够正确理解课程设计的题目和意义,全面思考问题。

(2)运用科学合理的方法,认真按时完成。

二、  课程设计课题的分析

            动画制作的基本原理是把一些图形或图像快速逐帧播放,在人眼与人脑中产生连续的刺激,形成了动画。从计算机图形学上看,动画就是绘制的图形发生变化。这个变化不能太快,也不能太慢,要被人的视觉接受。在程序执行时,能够使图形变化达到视觉要求。

            三维动画主要是靠三维模型的变换实现的,这些变换包括平移、旋转、错切、比例变换,其它线性变换、非线性变换等。这些内容在此不做介绍。

            有时动画制作可以只凭借逐帧图像来完成,这些是基于图像的动画制作。 一般从制作动画所用素材、制作方法、制作工具等多个角度对动画进行分类,也可以从观赏者是否干预、场景是否运动等对动画进行分类。具体分类如下: 从动画制作所用素材可以分为图形动画与图像动画等;从动画的制作方法可以分为逐帧动画、形变动画与路径动画;从制作工具上可以分为语言制作动画与软件制作动画;从观赏者是否参与可以分为普通动画与虚拟现实动画;从动画的表现上可以分为真实感动画与非真实感动; 另外,从图形空间维数可以分为二维动画与三维动画。

           

三、  课程设计的内容与安排

          通过编程显示磁盘目录下图像文件(即把已有的图形文件调入通过MATLAB命令窗口调用显示);编程实现不断变化的图形,该图为自己编程绘制而成。具体如下:

        (1)首先设计一个图形用户界面(GUI),在界面上可以应用菜单栏修改界面的背景颜色、可以触动动画运行。

        (2)编写一个程序首先生成一个立方体,通过逐次改变它的坐标来显示动画的形式。然后在编写程序实现它的转动和移动。

        (3)下面是对课程设计的具体的时间安排:周一  查阅资料、翻阅参考文献,对图像与动画相关的内容和函数了解;周二、周三具体的进行课程设计;周四 对编写的程序进行仿真与模拟,并对程序进行改进使得动画的效果更好;周五 写实验报告。

四、  课程设计的步骤

       1、设计图形用户界面(GUI)

             在MATLAB的命令窗口键入guide,然后回车,或者在主窗口中,打开File菜单中的New子菜单,再选择其中的GUI命令,就可以显示图形用户界面的设计模板了。

          图形如下:

GUI设计模板

       选择新创建一个GUI,就会出现GUI的设计窗口:

     

      为了添加控件,可以从GUI设计窗口的控件工具栏中选择一个对象,然后以拖拽的方式在对象设计区建立该对象,其对象创建方式方便、快捷、简单。在GUI设计窗口创建对象后,通过双击该对象,就会显示该对象的属性查看器,通过它可以设置该对象的属性值。

       利用菜单编译器,可以创建、设置、修改下拉式菜单和快捷菜单。从GUI设计窗口的工具栏上选择Mene

Editor命令按钮,或者选择tools菜单下的Mene Editor命令,就可以打开菜单编译器了。菜单编译器的左上角第一个按钮时创建一级菜单项,第二个是二级菜单。

图形如下:

 

菜单编译器

设计的最终界面如图所示:

2、设计三维动画

   (1)产生一个立方体,让其绕z轴转动从而形成一个圆柱体。具体程序如下:

             for i=-2*pi:0.5:2*pi;

R=[cos(i) sin(i) 0;-sin(i) cos(i) 0;0 0 1];                vert=[1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1 2];

vert=vert*R;

fac=[1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8];

pause(0.1)

patch('faces',fac,'vertices',vert,'FaceVertexCData',hsv(8),'FaceColor','interp');

view(3);

end

(2) 编写程序让其逆时针旋转

axis off

for i=1:36

              camorbit(10,0,'data',[0 1 0])

              pause(0.2)

end

(3) 编写程序让其垂直于桌面里外运动

              axis vis3d off

for x=-200:2:200

                    campos([x,0,0])

                    drawnow

end

(4) 图片的调用

ha=axes('units','normalized','position',[0 0 1 1]);

uistack(ha,'down')

x=imread('f:\q.jpg');

image(x)

colormap gray

set(ha,'handlevisibility','off','visible','off')

五、  课程设计的结果

1、动画设计的总程序

function Uqingse_Callback(hObject, eventdata, handles)

% hObject    handle to Uqingse (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(gcf,'color','c')

function lanse_Callback(hObject, eventdata, handles)

% hObject    handle to lanse (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(gcf,'color','b')

function huangse_Callback(hObject, eventdata, handles)

% hObject    handle to huangse (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(gcf,'color','y')

function meijingxinshang_Callback(hObject,eventdata,handles)

% hObject handle to meijingxinshang (see GCBO)

% eventdata reserved to be defined in a future version ofMATLAB

% handles structure with handles and user data(see GUIDATA)

ha=axes('units','normalized','position',[0 0 1 1]);

uistack(ha,'down')

x=imread('f:\111.jpg');

image(x)

colormap gray

set(ha,'handlevisibility','off','visible','off')

function donghua_Callback(hObject, eventdata, handles)

% hObject    handle to donghua (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)  for i=-2*pi:0.5:2*pi

R=[cos(i) sin(i) 0;-sin(i) cos(i) 0;0 0 1];  

vert=[1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1 2];

vert=vert*R;

fac=[1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8];

pause(0.1)

patch('faces',fac,'vertices',vert,'FaceVertexCData',hsv(8),'FaceColor','interp');

view(3);

end

axis off

for i=1:36

                camorbit(10,0,'data',[0 1 0])

                pause(0.2)

end

                axis vis3d off

for x=-200:2:200

                campos([x,0,0])

                drawnow

end

2、运行的瞬间效果

六、  课程设计的心得与体会

          MATLAB课程设计让我体会颇多。首先就matlab的特点我想说,matlab真是用处多多,不仅可以绘制二维视图、三维视图,而且可以制作动画等。就我们学习的这点知识无非九牛一毛、冰山一角,远没有真正触碰到它的核心。如果要是真是学的精通,我想matlab应该是无所不能的。

虽然实验成功了,但是通过实验让我们意识到了自己对于matlab方面和编程方面的知识还有很多的不足,同时此次实验也留给我们的是很多的疑问,怎样能让在运动的动画停止,然后又接着运动,当然,关闭再运行不是我们想要的,我们想要的是随时控制动画的运动,然后可否形成别的动画等等

            在没有课程设计以前,总觉的课程matlab没有多大的用处,也没什么好学的。可是当真正的深入进去了之后才知道,知识是浩瀚无边的,自己是渺小的。这也深深的给我敲了个警钟,让我知道所有的事情都要自己亲身经历之后才会知道它的真正面目。别人给你传达的东西永远没有自己身临其境感受到的深刻,而且某些东西也是没法传达的,只能自己去亲身经历。我从来没有见过参照别人的人生而大彻大悟的人,只有那些亲自经历一些事情的人才会顿悟。

通过本实验,我们学习到需要一定的毅力和能力去完成一件事;通过查阅纵多资料,了解并学习到matlab软件的一些基本知识,在老师的带领以及大家的努力下,完成了此次动画的制作,学习的过程是很重要的,结果也一样。每件事只有通过自己动手后才能让记忆更深刻,像本次实验一样,亲手做了之后才能发现自己的成果,以己度人,才会去珍惜和爱护别人的结晶

七、  参考文献

【1】       刘卫国、陈昭平、张颖主编的《MATLAB程序设计与应用》。北京:高等教育出版社,20##年。

【2】       薛定宇主编的《控制系统计算机辅助设计——MATLAB语言及应用》。北京:清华大学出版社,1996年。

【3】       崔新忠主编的《MATLAB与仿真系统实验指导书》。自编教材,20##年。

【4】       张志涌主编的《精通MATLAB6.5》。北京:北京航空航天大学出版社,20##年。

【5】       苏金明、王永利主编的《MATLAB7.0基础与提高》。北京:电子工业出版社,20##年。

附录


第二篇:MATLAB课程设计报告


目录

一、课程设计目的. 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课程设计报告

至诚学院MATLAB实践课程设计学生姓名学号专业班级2指导教师页MATLAB课程设计第1页共1二一四年四月三十日目录1设计目的第3页2题目分析第3页3总体设计第3页4具体设计第4页5小结和心得第15页页MATL...

Matlab课程设计报告

课程设计报告设计题目专业班级学号姓名指导教师水准网平差程序设计测绘工程测绘100206束蝉芳起屹日期20xx年7月1日20xx年7月8日南京工业大学测绘学院目录1课程设计目的意义12课程设计任务和内容13程序代...

Matlab课程设计报告

MATLAB实践课程设计学生姓名学号专业班级电子信息工程3班指导教师郑晓明二一一年6月26日目录1设计目的12题目分析13总体设计24具体设计35结果分析106心得体会101设计目的运用MATLAB实现MATL...

matlab课程设计报告书

课程设计题目学院专业班级姓名指导教师Matlab应用课程设计信息工程学院电子信息工程桂林20xx年12月13日Matlab应用课程设计任务书学生姓名专业班级指导教师桂林工作单位信息工程学院题目Matlab运算与...

matlab课程设计报告

电子信息系统仿真设计课程设计报告课题电子信息系统仿真设计姓名学号成绩班级指导教师开课时间20xx20xx学年第1学期目录一设计题目二主要内容三具体要求四进度安排五成绩评定六正文1三维绘图2信号的时域和频域表示3...

matlab仿真课程设计报告

一、课程设计内容此次课程设计的主要内容是2ASK调制信号仿真。二、设计原理及步骤:(一)设计原理2ASK是利用代表数字信息0或1的基带矩形脉冲去键控一个连续的载波,使载波时断时续的输出。有载波输出时表示发送1,…

一个matlab课程设计报告例子

目录目录1第1章课程设计的目的和意义2一引言3二课程设计的意义3三课程设计的要求4第2章需求分析和总体设计4一任务描述41课程设计目标42功能描述43性能描述4二任务设计51计算器52画图5第3章编码7一代码编...

武汉理工大学Matlab课程设计报告书

武汉理工大学Matlab课程设计说明书课程设计题目学院专业班级姓名指导教师年月日武汉理工大学Matlab课程设计说明书课程设计任务书学生姓名胡健指导教师李景松祝立华题目Matlab运算与应用设计1初始条件1Ma...

matlab课程设计报告

MATLAB仿真软件的使用姓名专业班级学号指导老师时间用Mtlab编程实现句柄图形应用摘要本文利用Mtlab的算法设计和程序设计的原理和方法着重介绍了句柄图形的实际运用根据提出的实际问题即画出沿曲线移动的小球给...

至诚Matlab课程设计报告

至诚学院MATLAB实践课程设计学生姓名李志航学号210991026专业班级电子信息工程指导教师郑晓明二一二年四月二十日1目录1设计目的32题目分析33总体设计34具体设计45小结和心得1621设计目的MATL...

matlab设计报告

武汉理工大学Matlab应用实践课程设计说明书课程设计任务书学生姓名尹龙剑专业班级电信1005班指导教师祝立华阙大顺工作单位信息工程学院课程设计名称Matlab应用课程设计课程设计题目Matlab运算与应用设计...

matlab实验报告

重庆交通大学学生实验报告实验课程名称专业综合实验开课实验室交通运输工程实验教学中心学院交通运输年级二年级专业班交通运输1班学生姓名学号63120xx20开课时间20xx至20xx学年第2学期

matlab课程设计报告(11篇)