计算机仿真实验3700字
各位同学:(1)这是计算机仿真实验内容,给出的实验过程已在matlab上运行,你们可以直接copy在matlab上运行,观察运行结果,对比学习。(2)实验要求写出实验报告,实验报告的内容就按照以下给出的内容来写。
实验一:MATLAB基础入门
实验目的:熟悉MATLAB环境,掌握一维数组的创建,二维数组的创建。
实验过程:
(1)一维数组的创建:
观察下列计算结果,理解数组运算的意义:
a=[1,2,pi,9,0]
b=0:2:10
c=linspace(1,2,10)
a(2) b(5) c(6)
(2)二维数组的创建:
a=[1,2,3,0;9,22,1,1];
观察下列计算结果,理解数组运算的意义:
a(1,2) a(2,3) a(:) a(:,:) a(:,1) a(2,:)
[1,2;3,4]+10
[1,2;3,4]*[0.1,0.2;0.3,0.4]
[1,2;3,4].\[20,10;9,2]
sin([1,2;3,4])
[a,b]=find([1,2;3,4]>=[4,3;2,1]) [a,b]
find([1,2;3,4]>=[4,3;2,1])
(3) 观察下列计算结果,理解这些命令的意义
Clear a ; Which ;clc的作用
实验二:MATLAB基础入门
实验目的:掌握MATLAB中基本的二维绘图
基本形式
plot(x,y);plot(x,y,string)
实验过程:
指出以下各个绘图命令的输出图形分别是什么,并上机验证 t=0:pi/20:2*pi;y=sin(t);plot(t,y)
t=[0 1]; x=[1 2]; y=[x;3 4]; z=[y;5 6];
plot(t,x,'r') plot(t,y, 'b') plot(t,y') plot(t,z) plot(t,z') 线型 -实线 :虚线 -.点划线 --间断线
点标记 .点 o小圆圈 x叉子符 +加号 *星号
s方格 d菱形 ^朝上三角 v朝下三 >朝右三角 <朝左三角 p五角星 h六角星
颜色 y黄色 m品红色 c青色 r红色 g绿色
b蓝色w白色
上机指出以下各个绘图命令的输出图形分别是什么
t=0:pi/20:2*pi; plot(t,sin(t) ,'r:>')
hold on;plot(t,cos(t),'b-.h')
title('sin(t),cos(t)的函数图形')
xlabel('t=0:pi/20:2*pi;')
ylabel('sin(t),cos(t)')
legend('sin(t)','cos(t)')
体验grid on /grid off;hold on/hold off;figure(2)的作用
利用 plot 函数在一个坐标系下绘制以下函数的图形:
y1=sin(x),y2=cos(x),y3=sin(2*x),x在0到2*pi区间
y1 用黑色间断线点标记为星号
y2 用红色实线点标记为小方格
y3 用蓝色虚线点标记为小圆圈
实验三:MATLAB编程入门
实验目的:掌握matlab编程的基本知识。
用matlab语言编写的程序称为M文件。
掌握input,disp,keyboard,return,pause的用法
掌握常用的顺序控制流程,循环控制流程,选择控制流程的用法。 M文件以.m为扩展名。
实验过程:
(1)上机实验
>> edit example 在弹出的编辑窗中输入
a=input('please input a number');a
disp(a), disp('b')
保存后在matlab窗口下输入example(即运行example.m)观察输出
结果。
(2)上机实验
>> clear;s=0;
>> for n=1:100
s=s+1/n/n;
end
>> s
s =1.6350体会程序运行过程
(3)上机实验:
edit exampleswitch
在弹出的编辑窗中输入
trig=input('please input a trigonometric function','s'); switch trig
case 'sin'
t=0:pi/100:2*pi;
plot(t,sin(t));
case 'cos'
t=0:pi/100:2*pi;
plot(t,cos(t));
otherwise
end
保存后在matla窗口下输入exampleswitch(即运行exampleswitch.m),
please input a trigonometric function在提示下输入sin,观察输出结果。
实验四:MATLAB编程入门
实验目的:掌握函数文件的编程方法、调用方法。
实验过程:
(1)上机实验
edit examplehanshu
在编辑窗口输入
function y=examplehanshu(x)
%y=examplehanshu(x)
%x为输入变量,y为输出变量。
%x>1时,输出值y=x^2;x<-1,输出值y=3+2*x;x在其他值时,%Revised 江风云
%Copyright 1986-2004 The MathWorks, Inc.
%Revision: 1.21 Date: 2012/03/20 10:25:50
y=zeros(size(x));
k1=find(x>1);y(k1)=x(k1).^2;
k2=find(x<-1);y(k2)=3+2*x(k2);
k3=find(x>=-1&x<=1);y(k3)=x(k3);
保存后在matlab窗口下输入
>> x=-2:0.5:2;
>> y=examplehanshu(x);[x',y']
根据输出结果,体会函数文件的运行。 y=x;
(2)上机实验
function [x,y]=naeuler(dyfun,xspan,y0,h)
%用途:Euler格式解常微分方程,y'=f(x,y),y(x0)=y0;
%格式[x,y]=naeuler(dyfun,xspan,y0,h)
%dyfun为函数f(x,y),xspan为求解区间[x0,xN],y0为初值y(x0),h为步长;
%x返回节点,y返回数值解。
%Revised 江风云
%Copyright 1986-2004 The MathWorks, Inc.
%Revision: 1.21 Date: 2012/03/20 10:25:50
x=xspan(1):h:xspan(2);
y(1)=y0;
for n=1:length(x)-1
y(n+1)=y(n)+h*feval(dyfun,x(n),y(n));
end
x=x';y=y';
保存后在matlab下运行
>> dyfun=inline('y-2*x/y');
>> [x,y]=naeuler(dyfun,[0,2],1,0.2); [x,y]
根据输出结果体会该函数文件的运行过程。
实验五:SIMULINK入门
实验目的:认识simulink中的基本模块,掌握简单建模的方法。
实验过程:认识Simulink Library Browser中Simulink中的模块;
实验六:SIMULINK入门
实验目的:掌握simulink建模和仿真的基本方法
实验过程:建立模型
非线性的下滑力和空气阻力分别由函数模块来计算。其中标签为Aero Force 的函数模块的对话框中的【Expression】区中应填写0。001*(u[1]+20*sin(0.01*u[2]))^2,标签为Hill Force的应填写30*sin(0.0001*u[1])。显示模块(Display)用作速度表,而示波器模块(Scope)则记录了速度变化曲线。
此模型也是一个轻度刚性问题的很好的例子,为了观察刚性的影响,先以解法0DE45l来运行模型,然后选择0DE15S再运行仿真,观察其区别。
第二篇:控制系统计算机仿真实验-完整版 2300字
MALTAB仿真实验指导书
实验题目:
数值积分方法的MATLAB实现
实验目的:
1.熟练掌握MATLAB的使用方法
2.牢记欧拉法、梯形法和龙格-库塔法的计算过程
3.熟悉欧拉法、梯形法和龙格-库塔法实现二阶动态响应的程序编写 实验内容:
已知被控对象的系数矩阵分别为
A=[-5 -2 -1 -0.5;4 0 0 0;0 2 0 0;0 0 1 0 ]
B=[1;0;0;0];
C=[0 0 0.25 0.5];
D=0;
根据欧拉法、梯形法和龙格-库塔法的递推公式,应用MATLAB语言编写相应的仿真程实验要求:
1.取计算步长h=0.65,初值均为零,输入为阶跃信号,取u=25,研究系统25秒的动态过程。
2.取计算步长h=0.01,初值均为零,输入为阶跃信号,取u=25,研究系统25秒的动态过程。
实验算法:
欧拉法递推公式:
yk+1=yk+hf(tk,yk)
梯形法的递推公式: 0yk+1=yk+hf(tk,yk)
h0yk+1=yk+[f(tk,yk)+f(tk+1,yk+1)]2
四阶龙格-库塔法的递推公式: h?=+yy(K1+2K2+2K3+K4)k?k+16??K1=f(tk,yk)
?hh?=++Kf(t,yK1)?2kk22?hh?=++Kf(t,yK2)3kk?22 ???K4=f(tk+h,yk+hK3)
实验方法:
利用所学过数值积分方法(欧拉法、梯形法和四阶龙格-库塔法),通过MATLAB语言对给定的系统进行仿真
实验步骤:
1
1.了解并掌握基本数值积分的方法,即欧拉法、梯形法、龙格-库塔法,并做比较,了解它们之间的联系与区别和优缺点,其中重点掌握梯形法和四阶龙格-库塔法。
2.通过给定的系统,利用欧拉法、梯形法和四阶龙格-库塔法编写相应MATLAB语言,实现仿真,得出相应的仿真曲线。
3.比较仿真实验结果,并得出结论。
4.撰写实验报告。
实验程序:
1.欧拉法
A=[-5 -2 -1 -0.5;4 0 0 0;0 2 0 0;0 0 1 0];
B=[1;0;0;0];
C=[0 0 0.25 0.5];
D=0;
x0=[0;0;0;0];% x0为状态变量的初值,此处以列向量表示;
u=25;% u为输入向量;
t0=0;% t0为仿真时间的起始时刻;
tf=15;% tf为仿真时间的结束时刻;
h=0.65;% h=0.01 h为仿真时所取的仿真步长;
m=(tf-t0)/h;
[r,c]=size(A);
for i=1:m
for j=1:r
x(j)=x0(j)+h*(A(j,:)*x0+B(j,:)*u);
end
y(i)=C*x';
x0=x';
t(i)=i*h;
end
plot(t,y)
grid on
title('useEuler')
2.梯形法
A=[-5 -2 -1 -0.5;4 0 0 0;0 2 0 0;0 0 1 0];
B=[1;0;0;0];
C=[0 0 0.25 0.5];
D=0;
x0=[0;0;0;0];% x0为状态变量的初值,此处以列向量表示;
u=25;% u为输入向量;
t0=0;% t0为仿真时间的起始时刻;
tf=15;% tf为仿真时间的结束时刻;
h=0.65;% h=0.01 h为仿真时所取的仿真步长;
m=(tf-t0)/h;
[r,c]=size(A);
for i=1:m
2
for j=1:r
x(j)=x0(j)+h*(A(