中南大学
计算机控制系统仿真
实验报告
信息科学与工程学院
自动化0903班
实验一 MATLAB语言编程
一、 实验目的
1、熟悉Matlab语言及其环境,掌握编程方法。
2、要求认真听取实验指导老师讲解与演示。
二、具体实验内容、步骤、要求
1、运行交互式学习软件,学习MATLAB语言;
2、在MATLAB的命令窗口下键入如下命令:
INTRO(注意:intro 为一个用MATLAB语言编写的幻灯片程序,主要演示常用的MATLAB语句运行结果。)
然后,根据现实出来的幻灯片右面按钮进行操作,可按START——NEXT——NEXT按钮一步步运行,观察。
3、自编程序并完成上机编辑,调试,运行,存盘:
(1)用MATLAB命令完成矩阵的各种运算,例如:
求出下列运算结果,并上机验证。
解:实验程序如下:
function chengxu1
A=[11 12 13 14;21 22 23 24;31 32 33 34;41 42 43 44];
a1=A(:,1)
a2=A(2,:)
a3=A(1:2,2:3)
a4=A(2:3,2:3)
a5=A(:,1:2)
a6=A(2:3)
a7=A(:)
a8=A(:,:)
a9=ones(2,2)
a10=eye(2)
实验结果如下:
(1) A(:,1)= (2) A(2,:)=
(3) A(1:2,2:3)= (4) A(2:3,2:3)=
(5) A(:,1:2)= (6) A(2:3)=
(7) A(:)= (8) A(:,:)=
(9) ones(2,2)= (10) eye(2)=
(2)、绘制数学函数的图形,例如:
y(t)=1-2e-tsin(t) (0<=t<=8) 理解数组运算与矩阵运算功能。
解:根据题意编写MATLAB程序如下:
%绘图程序如下:
t=0:0.01:8;
y=1-2*exp(1)-t.*sin(t)
plot(t,y)
绘制函数图形如下图所示:
实验心得:
通过本次试验,熟悉了解了MATLAB的基本操作技巧,对MATLAB的基本运算单元—矩阵,有了详细的了解,并能够快速构造出自己想要的矩阵,为之后的学习打下了良好的基础。
同时,也熟悉了MATLAB的基本数组运算及画图功能,同样为之后对控制系统的仿真打下基础,对于相关传递函数图形的绘制有很大的帮助。
实验二 数值积分算法练习与函数调用
一、实验目的
1、理解数值积分法,熟练掌握MATLAB的函数调用。
二、实验题目
1、用Eular法求解初值问题的数值解:
设方程如下:
取步长,上机编写程序求出数值解。
解:用MATLAB编程求解如下:
%用Euler法求初值问题的数值解
function FZSYZ1
t0=0;
tf=1;
x0=1;
h1=0.1;
t=[t0:h1:tf];
n=length(t);
u=x0;
uu(1)=u;
for i=2:n
du=u-2*t(i-1)/u;
u=du*h1+u;
uu(i)=u;
end
uu
plot(t,uu)
得到的结果如下图所示:
2、编写MATLAB程序求解下列方程的数值解:
解:用MATLAB编程求解如下:
%用ode23法求初值问题的数值解
function xdot=fun21(t,x)
xdot=x-t^2;
function fzsy22
t0=0;tf=3;tol=1e-6;
x0=1;trace=1;
[t,x]=ode23('fun21',t0,tf,x0,tol,trace);
plot(t,x)
得到的实验结果如下图所示
3、试将(2-2)方程改为用Eular编程求解试比较用ode23求解结果
解:用MATLAB编程求解如下:
%改用Euler法求初值问题的数值解
function FZSYZ1
t0=0;
tf=3;
x0=1;
h1=0.1;
t=[t0:h1:tf];
n=length(t);
u=x0;
uu(1)=u;
for i=2:n
du=u-(t(i-1))^2;
u=du*h1+u;
uu(i)=u;
end
uu
plot(t,uu)
得到的实验结果如下图所示
4、试将(2-1)方程改为用ode23算法调用函数求解,并试比较结果。
解:用MATLAB编程求解如下:
function xdot=fun21(t,x)
xdot=x-2*t./x;
function fzsy22
t0=0;tf=1;tol=1e-6;
x0=1;trace=1;
[t,x]=ode23('fun21',t0,tf,x0,tol,trace);
plot(t,x)
得到的实验结果如下图所示:
5、利用ode23或ode45求解线性时不变系统微分方程,并绘制出曲线,式中
解:用MATLAB编程求解如下:
function xdot=fun21(t,x)
A=[-0.5 1;-1 -0.5];
xdot=A*x;
function fzsy22
t0=0;tf=4;tol=1e-6;
x0=[0;1];trace=1;
[t,x]=ode23('fun21',t0,tf,x0,tol,trace);
plot(t,x)
得到的实验结果如下图所示:
6、求出与的单位阶跃响应,并分别求出状态空间模型。
解:(1)的状态空间模型求解如下:
function shiyan2
b1=[2];
a1=[1 2 1];
sys=tf(b1,a1);
step(sys);
[A1,B1,C1,D1] = tf2ss(b1,a1)
求解可得:
实验仿真结果如下图所示:
(2) 的状态空间模型求解如下:
function shiyan2
b1=[1];
a1=[2 3 3 1];
sys=tf(b1,a1);
step(sys);
[A1,B1,C1,D1] = tf2ss(b1,a1)
求解可得:
实验仿真结果如下图所示:
7、选做题一:已知系统传递函数为,求对应的零极点模型,绘制系统阶跃响应。
解:由MATLAB编程求解如下:
function shiyan2
b1=[200 400];
a1=[1 11 52 42];
step(b1,a1);
[z,p,k] = tf2zp(b1,a1)
有上述程序求解可得:
实验仿真结果如下图所示:
实验心得:
通过本次试验,熟悉了解了MATLAB的在自动控制当中的应用,了解了相关的函数及操作,对于控制系统的建模有很大的帮助。
同时,学习了基本的输入函数,并求出对应的响应,对于实际中相关系统的分析有很大的帮助。
同时,也巩固了MATLAB的画图功能,同样为之后对控制系统的仿真打下基础,对于相关传递函数图形的绘制有很大的帮助。
实验三 控制工具箱与SIMULINK软件应用
一、实验目的
1、熟悉工具箱及其使用,进行系统仿真分析,通过仿真对系统进行校正校验。
二、实验预习要求
2、必须先复习教材及上课介绍的有关控制工具箱命令与SIMULINK仿真工具的使用,并对实验题目作好准备。
三、学会调出、运行已由SIMULINK建立的仿真模型
1、仿真模型如下:
仿真图形如下:
2、仿真模型如下:
仿真图形如下:
实验心得:
通过本次试验,熟悉了解了MATLAB中SIMULINK的应用,特别是在自动控制系统建模中,它非常的简便易操作,相比输入语句的建模来说,它来的更快一些,大大提高了仿真速度。
同时,也巩固了MATLAB的画图功能,同样为之后对控制系统的仿真打下基础,对于相关传递函数图形的绘制有很大的帮助。
实验四 数字控制系统仿真与综合应用
一、实验目的
1、掌握用于离散系统的Matlab命令及数字控制系统仿真系统方法。应用仿真对系统的设计进行分析比较。
二、实验内容
1、实验题目与要求
若,若使用零阶保持器将G(s)转换成G(z)。采用周期T=0.1s,用仿真方法得出G(s)与G(z)的阶跃响应图并进行比较。
解:将连续系统的传递函数用下面的零阶保持器法转换成离散系统传递函数程序清单如下:
function shiyan41
num=10;den=[1,7,10];ts=0.1;
i=[0:35];time=i*ts;
[n_zoh,d_zoh]=c2dm(nc,dc,ts);
yc=step(nc,dc,time);
y_zoh=dstep(n_zoh,d_zoh,36);
[xx,yy]=stairs(time,y_zoh);
plot(time,yc)
hold on;
plot(xx,yy)
程序结果如下:
实验仿真结果如下图所示:
2、仿真研究与系统分析:
,采样周期T=0.2s
1、采用零阶保持器,将W1(s)转换为W1(z),串接一个计算机调节模型D(z)组成一个典型的数字反馈系统,当采用最少拍设计原则设计出来的。
分别用仿真算法得到系统在单位阶跃输入作用下的响应,系统在单位速度输入是的输出响应。
解:(1)首先将W1(s)转换为W1(z),采样周期T=0.2s,程序清单如下:
function shiyan42
num=[10];den=[0.005 0.15 1 0];
ts=0.2;[nc,dc]=c2dm(num,den,ts)
实验结果如下:
(2)运行如下仿真程序可得结果如下:
3、思考题
解:(1)将被控对象的传递函数G(s)离散化的程序如下:
%将G(s)离散化的程序如下:
function shiyan43
num=[10];den=[1 1 0];
ts=1;[nc,dc]=c2dm(num,den,ts)
实验结果如下:
则离散化后的传递函数
(2)运行如下仿真程序可得结果如下:
实验心得:
通过本次试验,熟悉了解了MATLAB的在自动控制当中的应用,了解了相关的函数及操作,熟悉SIMULINK的操作,对于控制系统的建模有很大的帮助。
同时,学习了基本的输入函数,并求出对应的响应,对于实际中相关系统的分析有很大的帮助。
同时,也学习了MATLAB的画图功能,同样为之后对控制系统的仿真打下基础,对于相关传递函数图形的绘制有很大的帮助。
总之,本次试验使我对MATLAB在控制系统中的建模有了初步的了解,起到了敲门砖的作用,我也体会到了MATLAB在自动控制分析中的重要作用,一定会在日后用共多的经历来学习这个软件。
仿真程序:
>> x=0:0.1:2*pi;
>> plot(x,cos(x),':g',x,sin(x),'--y')
>> title('Figure example')
>> xlabel('This is x axis')
>> ylabel('This is y axis')
>> grid
仿真结果:
仿真结果:
图2-1
图2-2
图2-3
图2-4
图2-5
图2-6
图2-7
图2-8
实验二面向结构图的仿真四思考题1在未考虑调节阀饱和特性时讨论一下两个水箱液位的变化情况工业上是否允许讨论阀位的变化情况工业上是否能…
控制系统仿真实验报告一实验目的进一步掌握数值积分法进一步掌握MATLAB软件的使用方法二实验设备数字计算机MATLAB软件三实验预…
昆明理工大学电力工程学院学生实验报告实验课程名称控制系统仿真实验开课实验室年月日实验一电路的建模与仿真一实验目的1了解KCLKVL…
附件四学生实验报告表头格式昆明理工大学电力工程学院学生实验报告实验课程名称开课实验室年月日实验一电路的建模与仿真一实验目的1了解K…
MATLAB与控制系统仿真实验报告20xx20xx学年第1学期专业班级学号姓名实验三MATLAB图形系统一实验目的1掌握绘制二维图…
控制系统仿真实验报告一实验目的进一步掌握数值积分法进一步掌握MATLAB软件的使用方法二实验设备数字计算机MATLAB软件三实验预…
实验二面向结构图的仿真四思考题1在未考虑调节阀饱和特性时讨论一下两个水箱液位的变化情况工业上是否允许讨论阀位的变化情况工业上是否能…
昆明理工大学电力工程学院学生实验报告实验课程名称控制系统仿真实验开课实验室年月日实验一电路的建模与仿真一实验目的1了解KCLKVL…
机器人控制课程总结报告机器人控制仿真实验二数码管动态显示姓名李铃年级20xx级系别信息工程学院计科师学号1111000048同组人…
一、引言一个月的模拟实习时间已经结束了。在这短短的一个月中,我初步了解到了一间公司在一个模拟市场里面是如何进行运作的。虽然我们只用…