辽工大仿真技术综合设计_Matlab

上传人:优*** 文档编号:33888591 上传时间:2021-10-19 格式:DOCX 页数:26 大小:1.02MB
返回 下载 相关 举报
辽工大仿真技术综合设计_Matlab_第1页
第1页 / 共26页
辽工大仿真技术综合设计_Matlab_第2页
第2页 / 共26页
辽工大仿真技术综合设计_Matlab_第3页
第3页 / 共26页
点击查看更多>>
资源描述
传播优秀Word版文档 ,希望对您有帮助,可双击去除!课程设计仿真技术综合设计报告题 目: Matlab报告 班 级: 姓 名: 学 号: 指导教师: 成 绩: 电子与信息工程学院信息与通信工程系23 / 261 求最大值和最小值1.1 题目输入10个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。1.2 用到的函数input:请求用户输入 max:取数组中的最大值min:取数组中最小值1.2 流程图图1-1求最大值最小值流程图1.4 运行截图图1-2调用max和min函数运行截图图1-2运用循环方法运行截图2 求Fibonacci数列2.1 题目求Fibonacci数列。(1)大于4000的最小项.(2)5000之内的项数2.2什么是Fibonacci数列即斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n=2,nN*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。(百度百科)2.2 用到的函数length 取得一个对象的长度2.3 流程图图2-1 2求Fibonacci数列流程图2.4 运行截图图2-2 Fibonacci运行截图3 用求逆解法和直接解法解方程组3.1 题目解方程组Axb,分别用求逆解法与直接解法求其解3.2 用到的函数inv 矩阵求逆3.3 流程图图3-1用求逆解法和直接解法解方程组流程图3.4 运行截图图3-2用求逆解法和直接解法解方程组运行截图4 求N阶方阵A的行列式4.1 题目编一个m程序,求N阶方阵A的行列式的值。4.2 用到的函数size(A): 获取矩阵的行数和列数,当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是数组的行数,第二个元素是数组的列数(多维,而length是取最大的那一维)。4.3流程图图4-1求N阶方阵A的行列式流程图4.4 运行截图图4-2求N阶方阵A的行列式运行截图5 计算xi=0.2*i各点上的P(xi)5.1 题目 今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,5)值。用到的函数poly2sym: 把系数数组转换为符号多项式.5.2 流程图图5-1 计算xi=0.2*i各点上的P(xi)流程图5.3 运行截图图5-2 计算xi=0.2*i各点上的P(xi)运行截图一维数组倒序6.1 题目 试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为:x= 1 3 5 7 9 而经过颠倒处理后x中数据的次序应该为:x= 9 7 5 3 1 用到的函数rot90:旋转数组90(倒序).6.2 流程图图6-1 一维数组倒序流程图6.3 运行截图图6-2 一维数组倒序运行截图7 绘制二维曲线7.1 题目 在0 2范围内绘制二维曲线图y=sin(x)*cos(5x)。用到的函数plot: 二维曲线绘图。7.2 流程图图7-1绘制二维曲线流程图7.3 运行截图图7-2绘制二维曲线运行截图名字转二进制再以脉冲绘图输出5.1 题目 把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来。用到的函数double: 用double强制转换后得到的是ASCII值.dec2bin: dec2bin把ASCII转换成一个字符串形式表示的二进制数. str2num: string转number.stem: stem画出来是离散函数,杆图。 plot是连续函数.流程图图8-1名字转二进制再以脉冲绘图输出流程图7.4 运行截图图8-2名字转二进制再以脉冲绘图输出运行截图图5-2 5计算xi=0.2*i各点上的P(xi)运行截图8 GUI与SIMULINK9.1 题目设计一个第七章提到的GUI界面、第八章提到的SIMULINK模型的设计。8.2 流程图图9-1 GUI与SIMULINK流程图9.3设计思路总因为题目要求是设计需要结合GUI界面以及Simulink,所以决定尝试运用GUI来控制Simulink中的参数,实现两者的结合,首先要在Simulink中设计了一个简单的仿真电路,接着进行GUI的设计,最后是编写脚本,通过get函数获取相应参数,再运用set_param更改相应Simulink中的参数,最后用sim函数运行,再通过axes和plot讲结果显示到GUI上即完成了一个GUI结合Simulink的简单设计。9.4 运行截图图9-2 GUI与SIMULINK运行截图9.5 不足及改进首先是界面上,由于水平有限以及时间的仓促,没有设计出比较科学的界面,界面不够美观,同时有个很大的问题,就是脚本将scope的前十个数显示在坐标上时,可能会因为不够十个数而发生数组越界的报错,如果是大于了10个数,没有什么问题,这是不行的,在日后还要改进,另外就是结束按钮的功能,因为水平有限,研究了半天,还是没整出来,还需更加努力。10 拉普拉斯变换10.1 题目 求信号f(t)=t*(e-3)*u(t)的拉普拉斯变换.用到的函数laplace:进行拉普拉斯变换.10.2 流程图图10-1拉普拉斯变换流程图10.3 运行截图图10-2拉普拉斯变换运行截图11 拉普拉斯逆变换11.1 题目 求F(s)=(s3+5s2+9s+7)/(s2+3s+2)的拉普拉斯反变换。用到的函数ilaplace:进行拉普拉斯反变换.11.2流程图图11-1拉普拉斯反变换流程图11.3运行截图图11-2拉普拉斯反变换运行截图12 傅里叶变换12.1 题目 求信号f(t)=u(t+1)-u(t-1)的傅里叶变换用到的函数fourier:傅里叶变换函数.12.2 流程图图12-1傅里叶变换流程图12.3 运行截图图12-2傅里叶变换运行截图13 实验心得通过这次学习,我对matlab这个软件有了更加熟悉的认识,特别是学到了交互式的GUI编程,感觉很方便,也很容易上手。对于matlab语言,感觉和其他语言比较起来,也是十分类似,在有了其他几门编程语言的基础上,基本上没有什么难度,并且matlab内置了许多函数,在解决某些问题方面,只需要一个函数就可以搞定了,很方便。14 附件14.1 求最大值最小值代码for i=1:10a(i)=input(please input a number:);endmaxa=max(a);mina=min(a);maxamina%运行后会在命令窗出现for i=1:10 a(i)=input(请输入10个数字:);endmaxa = a(1);mina = a(1);for i=2:10; if maxaa(i) mina=a(i); endendmaxamina14.2 质求Fibonccif(1) = 1;f(2) = 1;for i=3:30;%猜 f(i) = f(i-1)+f(i-2);endfx=fy= length(x);for i=1:y if x(i)4000&x(i)5000 b = x(i); disp(min=),disp(b(1) disp(i=),disp(i)%肯定只有一个了 endend14.3用求逆解法和直接解法解方程组源代码A=2 -1 0 0 0;-1 2 -1 0 0;0 -1 2 -1 0;0 0 -1 2 -1;0 0 0 -1 2; b=1;0;0;0;0;x=inv(A)*bx=Ab14.4 位数求和源代码function s=mydet(A)n=size(A);if (n(1)=n(2)%行不等于列,也就不是方阵return;endn=n(1);if (n=1)%只有一行的也不用算了s=A;return;ends=0;for i=1:ns=s-(-1)i*A(1,i)*mydet(A(2:n,1:i-1 i+1:n);%1:i-1 表示一个行向量: 1,2,3,.,i-1%i+1:n 表示另一个行向量:i+1, i+2, ., n%逗号用于按行连接上述两个行向量,得到 1,2,3,.,i-1, i+1, i+2, ., n%A(2:n,1:i-1 i+1:n)取这一列的所有元素%行列式的值:现将左下部分等价转换为零,然后对角线上的各数的积即为其值。end14.5 计算xi=0.2*i各点上的P(xi)源代码p1=1.0 0.0 0.0 -2.0 1.0; p2=0.0 0.0 1.0 4.0 -0.5; p1x=poly2sym(p1);%把系数数组转换为符号多项式。 p2x=poly2sym(p2);%第二个参数没有就是默认用x。 disp(p1x);disp(p2x);p=p1x+p2x disp(p);14.6 一位数组倒序源代码x= 1 3 5 7 9 xx=rot90(rot90(x)14.7 绘制二维曲线源代码x = 0:pi/10:2*pi; %单调递增的数列0 pi/10 pi/10*2 . 2*pi pi就是圆周率y = sin(x).*cos(5*x);%y中的每一个值都是通过x中对应位置的值算出来的;plot(x,y)14.8 名字转二进制再以脉冲绘图输出源代码name=lugang; % b=dec2bin(int8(s) b=double(name) %用double强制转换后得到的是ASCII值c=dec2bin(b) %dec2bin把ASCII转换成一个字符串形式表示的二进制数 c=c%转置%转置格式不一样:A中的A是m x n的矩阵;A.中的A是n x 1的向量stem(str2num(c(:)%string转number%stem画出来是离散函数,杆图。 plot是连续函数14.9 GUI与SIMULINKfunction varargout = LG(varargin)%LG M-file for LG.fig% LG, by itself, creates a new LG or raises the existing% singleton*.% H = LG returns the handle to a new LG or the handle to% the existing singleton*.% LG(Property,Value,.) creates a new LG using the% given property value pairs. Unrecognized properties are passed % varargin to LG_OpeningFcn. This calling syntax produces a% warning when there is an existing singleton*.% LG(CALLBACK) and LG(CALLBACK,hObject,.) call the% local function named CALLBACK in LG.M with the given input% arguments.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help LG % Last Modified by GUIDE v2.5 25-Jun-2016 19:43:29 % Begin initialization code - DO NOT EDITgui_Singleton = 1;%你第一次运行gui的时候,没有关闭 %第二次再运行的时候,matlab不会新开一个gui,而是把第一次那个gui拿到前面。gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, LG_OpeningFcn, . gui_OutputFcn, LG_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1)%必须有输入且输入的变量中的第一个必须是字符! gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before LG is made visible.function LG_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin unrecognized PropertyName/PropertyValue pairs from the% command line (see VARARGIN) % Choose default command line output for LGhandles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes LG wait for user response (see UIRESUME)% uiwait(handles.figure1);if isempty(find_system(Name,LG_mdl), open_system(LG_mdl); figure(handles.figure1)end %initial the GUIset(handles.edit1,String,1);set(handles.edit2,String,1); % - Outputs from this function are returned to the command line.function varargout = LG_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; % - Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Pushbutton4是ok按键的TAG;str=get(handles.edit1,string);%edit1是输入框Gain的tag,从 string属性中读取输入值;该值的大小就是增益大小;str1=get(handles.edit2,string); %edit2是输入框Simulink的tag,从 string属性中读取输入值;该值的大小就是仿真运行时间; load_system(LG_mdl); %LG_mdl.mdl. set_param(LG_mdl/Gain,Gain,str); %将参数Gain值设为str; %LG_mdl/Gain指明所要设置的Block的路径和名字;第2个Gain为参数名。sim(LG_mdl,str2num(str1); %运行simulink,运行时间为str2num(str1)axes(handles.axes1);plot(predata.signals.values(1:10,1)%有个bug数组越界,暂时不知道怎么解决%取SCOPE的前10个数,并将其显示在在坐标上,predata为Struct类型:axes(handles.axes2);plot(postdata.signals.values(1:10,1)save_system(LG_mdl); %保存,不保存的话会弹出错误; % - Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)disp(这功能还没整!); function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,String) returns contents of edit1 as text% str2double(get(hObject,String) returns contents of edit1 as a double % - Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,String) returns contents of edit2 as text% str2double(get(hObject,String) returns contents of edit2 as a double % - Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end % - Executes on button press in togglebutton1.function togglebutton1_Callback(hObject, eventdata, handles)% hObject handle to togglebutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% togglebutton1为按键SCOPE的TAGnum=get(hObject,Value)if num=1 open_system(LG_mdl/Scope);else close_system(LG_mdl/Scope);end; % Hint: get(hObject,Value) returns toggle state of togglebutton114.10拉普拉斯变换源代码syms s t ;%定义符号% u = syms(Dirac(t); % heaviside(t) 阶跃函数u; Dirac冲激函数 u = sym(heaviside(t); LF = laplace(t*exp(-3*t)*u)14.11拉普拉斯逆变换源代码syms s t ;ft = ilaplace(s3+5*s2+9*s+7)/(s2+3*s+2)% ft = (t) + 2(t) + (-e(-2t) + 2e(-t)*u(t)14.12傅里叶变换源代码syms u t ;%定义符号% u = syms(Dirac(t); % heaviside(t) 阶跃函数u; Dirac冲激函数 u = heaviside(t+1)-heaviside(t-1); FLY = fourier(u) 温馨提示:最好仔细阅读后才下载使用,万分感谢!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!