Matlab与Simulink系统仿真学习心得.docx
- 文档编号:27328860
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:10
- 大小:456.20KB
Matlab与Simulink系统仿真学习心得.docx
《Matlab与Simulink系统仿真学习心得.docx》由会员分享,可在线阅读,更多相关《Matlab与Simulink系统仿真学习心得.docx(10页珍藏版)》请在冰豆网上搜索。
Matlab与Simulink系统仿真学习心得
Matlab与Simulink系统仿真学习心得
班级:
07610学号:
072019姓名:
马楠
第一部分:
Matlab学习心得以及实践
Matlab是迄今为止我所见到过的功能最为强大实用范围宽广的软件。
的确Matlab适用于教学,航天,网络仿真等等。
而且提供了很多功能强大的工具箱,并且最为突出的是它自带的很全面细致的帮助文档,无论你是初学者还是老手都会惊叹于此,你也不必去花很多时间去熟悉那些繁杂的命令,并且很容易通过这些帮助文档得到关于这些函数最精准的用法。
Matlab是一个建立在矩阵操作上的软件,我想要想真正懂得并理解Matlab与一般的语言比如C或者java的区别,那么你就应该真正理解矩阵的思想。
而且要熟悉Matlab对矩阵存储的方式(在下文中我会详细解释与之相关的内容),这样对提高你的代码执行效率与易懂性都有很大的帮助。
但是Matlab究竟应该怎么定位呢一个编程软件,一个数学工具,一个工具箱,一个开发引擎,一个仿真工具,一个虚拟现实软件……的确要精准的说出Matlab的作用很难,或许去定义这个东西到底是用来干什么的并不重要,Itisjustatool。
关于Matlab的学习方法,我想与别的语言有很大不同,对于汇编或者C,我们应当很注重底层的一些操作,比如栈或者队列存储数据的方式,int或者double类型转换的时候产生的数据丢失,或者指针方面很头疼的一些东西,但是对于Matlab你根本不必去注重这些东西,也不必去清除的记得那个函数的具体调用方式,那个函数的内容与结构等等。
你需要的只是相当用一个笔记本写下你一步一步实现目标的步骤而已。
一种草稿纸式的语言。
你所学的东西很大部分都是为你要做的目标来服务的,也许这就是当初面向对象式语言产生的原因,但是Matlab就是这种语言的一个代表。
好了,就说到这里了,接下来是我自己学习中对Matlab的一些应用中所遇到的问题以及思考方式和解决办法。
1离散信号卷积:
N1=input('N1=');%输入N1
N2=input('N2=');%输入N2
k1=0:
(N1-1);%定义序列f1的对应序号向量
k2=0:
(N2-1);%序列f2的对应序号向量
f1=ones(1,N1);%f1为阶跃序列
f2=*k2;%f2为斜坡序列
[f,k]=dconv(f1,f2,k1,k2)%求离散卷积
其中dconv函数的代码为:
function[f,k]=dconv(f1,f2,k1,k2)
%Thefunctionofcomputef=f1*f2
%f:
卷积和序列f(k)对应的非零样值向量
%k:
序列f(k)的对应序号向量
%f1:
序列f1(k)非零样值向量
%f2:
序列f2(k)的非零样值向量
%k1:
序列f1(k)的对应序号向量
%k2:
序列f2(k)的对应序号向量
f=conv(f1,f2)%计算序列f1与f2的卷积和f
k0=k1
(1)+k2
(1);%计算序列f非零样值的起点位置
k3=length(f1)+length(f2)-2;%计算卷积和f的非零样值的宽度
k=k0:
k0+k3%确定卷积和f非零样值的序号向量
subplot(2,2,1)
stem(k1,f1)%在子图1绘序列f1(k)时域波形图
title('f1(k)')
xlabel('k')
ylabel('f1(k)')
subplot(2,2,2)
stem(k2,f2)%在图2绘序列f2(k)时波形图
title('f2(k)')
xlabel('k')
ylabel('f2(k)')
subplot(2,2,3)
stem(k,f);%在子图3绘序列f(k)的波形图
title('f(k)f1(k)与f2(k)的卷积和f(k)')
xlabel('k')
ylabel('f(k)')
h=get(gca,'position');
h(3)=*h(3);
set(gca,'position',h)%将第三个子图的横坐标范围扩为原来的倍
2一次物理实验中的数据处理,关于非线性电阻。
x=[0];
y=[]
p1=polyfit(x(1:
11),y(1:
11),1);
p2=polyfit(x(11:
31),y(11:
31),1);
p3=polyfit(x(31:
end),y(31:
end),1);
Y1=vpa(poly2sym(p1,'x'),6)
Y2=vpa(poly2sym(p2,'x'),6)
Y3=vpa(poly2sym(p3,'x'),6)
x1=min(x(1:
11)):
:
max(x(1:
11));
x2=min(x(11:
31)):
:
max(x(11:
31));
x3=min(x(31:
end)):
:
max(x(31:
end));
y1=polyval(p1,x1);
y2=polyval(p2,x2);
y3=polyval(p3,x3);
plot(x,y,'o',x1,y1,x2,y2,x3,y3);
xlabel('电压值U/v');
ylabel('电流值I/mA');
title('非线性电阻伏安特性曲线');
gridon
3:
三维立体图形灯光效果
[x,y]=meshgrid(-8:
:
8);
R=sqrt(x.^2+y.^2)+eps;
z=sin(R)./R;
surf(x,y,z,'FaceColor','interp','EdgeColor','none','FaceLighting','phong');
axistight;
daspect([551]);
camlightleft
view(-50,30)
4:
地形模拟:
A=[
001234567891011121314151617181920
20
19
181
171
16111
151111
1411
131
121
1111
101111
9111
811111
711
611
51
4
3
2
1
0];
z=A(2:
end,2:
end)
[x,y]=meshgrid(0:
20,20:
-1:
0);
surf(x,y,z)
xlabel('x')
[X,Y]=meshgrid(0:
:
20,20:
:
0);
Z=interp2(x,y,z,X,Y,'spline')
figure
surf(X,Y,Z)
第二部分:
Simulink学习心得以及实践
Simulink是Matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
最开始的仿真是没有图形化输入的,所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。
现在来想其实要用Simulink去仿真一个系统不是很麻烦,只是实现一些拖拽或者参数设置什么的,但是要真正的去设计完善一个系统的确需要很多知识以及精力。
我们必须了解这个系统的每一个步骤以及需要什么样的组件与之匹配。
而且在仿真出现错误之后去分析也是很麻烦的一件事情,我们必须有对系统详细的分析和充分了解以及对Simulink每个组件充分的了解才能真正找到错误所在并且修正。
所以学好计算机仿真重在理论知识。
接下来是一些自己做的Simulink仿真。
1:
阶跃信号的积分
仿真图
仿真结果:
2房屋产热的一个实例
该问题是模拟一个户外条件下一所房屋能够产生的热量的例子
这是仿真结果图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab Simulink 系统 仿真 学习心得
![提示](https://static.bdocx.com/images/bang_tan.gif)