实验二 控制系统的数学模型、转换及连续系统的数字仿真
- 格式:doc
- 大小:63.23 KB
- 文档页数:5
《MATLAB 语言及其应用》实验报告学院:电气与信息工程学院班级:自动化1004姓名:甘显豪学号:10401701305指导老师:张满生《MATLAB 语言及其应用》实验指导书目录实验一Matlab 使用方法和程序设计........................实验二控制系统的模型及其转换.............................实验三控制系统的时域、频域和根轨迹分析...........实验四动态仿真集成环境-Simulink...........................实验五直流电机拖动系统控制器设计………………实验一Matlab使用方法和程序设计一、实验目的1、掌握Matlab软件使用的基本方法;2、熟悉Matlab的数据表示、基本运算和程序控制语句3、熟悉Matlab绘图命令及基本绘图控制4、熟悉Matlab程序设计的基本方法二、实验内容:1、帮助命令使用help命令,查找 sqrt(开方)函数的使用方法;2、矩阵运算(1)矩阵的乘法已知A=[1 2;3 4]; B=[5 5;7 8];求A^2*B(2)矩阵除法已知 A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];A\B,A/B,运行结果如下:(3)矩阵的转置及共轭转置已知A=[5+i,2-i,1;6*i,4,9-i]; 求A.', A'(4)使用冒号表达式选出指定元素已知: A=[1 2 3;4 5 6;7 8 9];求A中第3列前2个元素;A中所有列第2,3行的元素;方括号[]用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列3、多项式(1)求多项式4xxp的根=x-2)(3-(2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征多项式把矩阵A作为未知数代入到多项式中;4、基本绘图命令(1)绘制余弦曲线 y=cos(t),t∈[0,2π](2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]5、基本绘图控制绘制[0,4π]区间上的x1=10sint曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)坐标轴控制:显示范围、刻度线、比例、网络线(3)标注控制:坐标轴名称、标题、相应文本;6、基本程序设计(1)编写命令文件:计算1+2+…+n<2000 时的最大n值;(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。
实验一控制系统的模型转换、数据处理与曲线拟合(2学时)一.实验目的:掌握控制系统的微分方程、状态方程、传递函数、零极点增益、部分分式描述及转换;掌握常用数据拟合与插值方法。
二.实验方法及预习内容:1.利用Matlab工具箱中常用的五种模型转换命令进行模型描述和转换;2.利用Matlab工具箱中的多项式拟合命令polyfit对实验数据进行拟合。
三.实验内容:1.用Matlab语言求下列系统的状态方程、传递函数、零极点增益、和部分分式形式的模型参数,并分别写出其相应的数学模型表达式:(1)G(s)=32432144848207010048s s ss s s s+++++++(2).X=2.25 -5 -1.25 -0.542.25 -4.25 -1.25 -0.2520.25 -0.5 -1.25 -121.25 -1.75 -0.25 -0.75 0X⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦u y=[0 2 0 2] X2.已知元件的实验数据如下,拟合这一数据,并尝试给出其特性方程。
X 0.0100 1.0100 2.0100 3.0100 4.0100Y 2.5437 7.8884 9.6242 11.6071 11.9727X 5.0100 6.0100 7.0100 8.0100 9.0100y 13.2189 14.2679 14.6134 15.4045 15.0805四.实验总体要求:1.每次实验前应做好预习和准备;2.实验后应及时提交仿真程序Word文档(包括:程序、实验结果和图示、实验分析与总结);3.重点检查Matlab中M文件的运行;4.请认真撰写实验报告,实验结果可贴在报告相应位置。
注:格式不符合要求、或字迹潦草的一律退回重写。
五.本次实验要求:1.熟悉五种连续系统控制模型的Matlab转换命令,并得出相应数学模型表达式;2.熟悉常用数据拟合方法。
(1)G(s)=32432144848207010048s s ss s s s+++++++程序den=[1,20,70,100,48];num=[1,14,48,48];[A,B,C,D]=tf2ss(num,den)[z,p,k]=ss2zp(A,B,C,D)[R,P,H]=residue(num,den)结果>>A =-20 -70 -100 -481 0 0 00 1 0 00 0 1 0B =1C =1 14 48 48D =z =-9.4641-2.5359-2.0000p =-16.0051-1.5269 + 0.9247i -1.5269 - 0.9247i -0.9412k =1.0000R =0.3892-0.0932 - 0.3754i -0.0932 + 0.3754i0.7973P =-16.0051-1.5269 + 0.9247i -1.5269 - 0.9247i -0.9412H =[](2).X=2.25 -5 -1.25 -0.542.25 -4.25 -1.25 -0.2520.25 -0.5 -1.25 -121.25 -1.75 -0.25 -0.75 0X⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦u y=[0 2 0 2] X程序A=[2.25,-5,-1.25,-0.5;2.25,-4.25,-1.25,-0.25;0.25,-0.5,-1.25,-1;1.25,-1.75,-0.25,-0.75];B=[4;2;2;0];C=[0,2,0,2];D=[0];[num,den]=ss2tf(A,B,C,D)[z,p,k]=ss2zp(A,B,C,D)[R,P,H]=residue(num,den)>> 结果>>num =0 4.0000 14.0000 22.0000 15.0000 den =1.0000 4.0000 6.2500 5.25002.2500z =-1.0000 + 1.2247i-1.0000 - 1.2247i-1.5000p =-0.5000 + 0.8660i-0.5000 - 0.8660i-1.5000-1.5000k =4.0000R =4.0000-0.00000.0000 - 2.3094i0.0000 + 2.3094iP =-1.5000-1.5000-0.5000 + 0.8660i-0.5000 - 0.8660iH =[]>>实验二基于Matlab的微分方程数值解法(2学时)一.实验目的:掌握欧拉法、四阶龙格库塔法的程序编制方法。
第二部分控制系统仿真实验实验一MATLAB软件操作练习一、实验目的1.熟悉MATLAB软件的基本操作;2. 学会用MATLAB做基本数学计算3. 学会矩阵的创建。
4.熟悉利用MATLAB计算矩阵。
二、实验内容1. 帮助命令使用help命令,查找sqrt(开方)函数的使用方法;2.在命令窗口输入矩阵A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3]3. 矩阵运算(1)矩阵的乘法已知A=[1 2;3 4]; B=[5 5;7 8];求A^2*B(2)矩阵除法已知A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];A\B,A/B(3)矩阵的转置及共轭转置已知A=[5+i,2-i,1;6*i,4,9-i];求A.', A'(4)使用冒号选出指定元素已知:A=[3 2 3;2 4 6;6 8 10];求A中第3列前2个元素;A中所有列第2,3行的元素;三、实验步骤1. 熟悉MATLAB的工作环境,包括各菜单项、工具栏以及指令窗口、工作空间窗口、启动平台窗口、命令历史窗口、图形文件窗口和M文件窗口。
2.在指令窗口中完成实验内容中规定操作并记录相关实验结果,并撰写实验报告。
实验二 M 文件编程及图形处理一、实验目的1.学会编写MATLAB 的M 文件;2.熟悉MATLAB 程序设计的基本方法;3. 学会利用MATLAB 绘制二维图形。
三、实验内容1.基本绘图命令(1)绘制余弦曲线y=cos(t),t ∈[0,2π](2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5), t ∈[0,2π]2.基本绘图控制绘制[0,4π]区间上的x1=10sint 曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)给横坐标标注’t ’,纵坐标标注‘y(t)‘,3.M 文件程序设计(1)编写程序,计算1+3+5+7+…+(2n+1)的值(用input 语句输入n 值);(2)编写分段函数⎪⎩⎪⎨⎧≤≤-<≤=其它021210)(x x x x x f的函数文件,存放于文件ff.m 中,计算出)2(f ,)3(-f 的值二、实验要求1. 预习实验内容,按实验要求编写好实验程序;2. 上机调试程序,记录相关实验数据和曲线,并撰写实验报告。
控制系统仿真实验报告班级:测控1402班姓名:王玮学号:072018年01月实验一经典的连续系统仿真建模方法一实验目的:1 了解和掌握利用仿真技术对控制系统进行分析的原理和步骤。
2 掌握机理分析建模方法。
3 深入理解阶常微分方程组数值积分解法的原理和程序结构,学习用Matlab编写数值积分法仿真程序。
4 掌握和理解四阶Runge-Kutta法,加深理解仿真步长与算法稳定性的关系。
二实验内容:1. 编写四阶 Runge_Kutta 公式的计算程序,对非线性模型(3)式进行仿真。
(1)将阀位u 增大10%和减小10%,观察响应曲线的形状;(2)研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定(3)利用 MATLAB 中的ode45()函数进行求解,比较与(1)中的仿真结果有何区别。
2. 编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真(1)将阀位增大10%和减小10%,观察响应曲线的形状;(2)研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定(4)阀位增大10%和减小10%,利用MATLAB 中的ode45()函数进行求解阶跃响应,比较与(1)中的仿真结果有何区别。
三程序代码:龙格库塔:%RK4文件clccloseH=[,]';u=; h=1;TT=[];XX=[];for i=1:h:200k1=f(H,u);k2=f(H+h*k1/2,u);k3=f(H+h*k2/2,u);k4=f(H+h*k3,u);H=H+h*(k1+2*k2+2*k3+k4)/6;TT=[TT i];XX=[XX H];end;hold onplot(TT,XX(1,:),'--',TT,XX(2,:)); xlabel('time')ylabel('H')gtext('H1')gtext('H2')hold on水箱模型:function dH=f(H,u)k=;u=;Qd=;A=2;a1=;a2=;dH=zeros(2,1);dH(1)=1/A*(k*u+Qd-a1*sqrt(H(1)));dH(2)=1/A*(a1*sqrt(H(1))-a2*sqrt(H(2)));2编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真:1 阀值u对仿真结果的影响U=;h=1; U=;h=1;U=;h=1;2 步长h对仿真结果的影响:U=;h=5; U=;h=20;U=;h=39 U=;h=50由以上结果知,仿真步长越大,仿真结果越不稳定。
实验二 控制系统的数学模型、转换及连续系统的数字仿真
1、实验目的与基本要求
(1)利用MA TLAB 描述控制系统的各种数学模型; (2)利用MA TLAB 实现系统数学模型间的相互转换;
(3)利用MA TLAB 实现控制系统的串联、并联和反馈连接。
(4)掌握面向系统微分方程的连续系统的数字仿真方法及程序; (5)掌握面向系统结构图的连续系统的数字仿真方法及程序; (6)连续系统的快速仿真。
2、实验环境
(1) 微机一台
(2) MATLAB6.5或者MATLAB7软件
3、实验内容
1、MA TLAB 描述控制系统的各种数学模型 例1 若给定系统的传递函数为
将其用MATLAB 语句表示。
num=4*conv([1,2],[1,6,6])
den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5])))) printsys(num,den)
num/den =
4 s^3 + 32 s^2 + 72 s + 48
----------------------------------------------------- s^7 + 6 s^6 + 14 s^5 + 21 s^4 + 24 s^3 + 17 s^2 + 5 s
例2 设系统的状态空间表达式为 将其用MATLAB 语句表示。
>> a=[0 0 1;-3/2 -2 -1/2;-3 0 -4];b=[1 1;-1 -1;-1 -3];c=[1 0 0;0 1 0]; >> a=[0 0 1;-3/2 -2 -1/2;-3 0 -4],b=[1 1;-1 -1;-1 -3],c=[1 0 0;0 1 0],d=zeros(2,2)
)
523()1()
66)(2(4)(2332+++++++=
s s s s s s s s s G ⎪⎪⎪
⎩⎪⎪⎪⎨⎧⎥⎦
⎤⎢⎣⎡=⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡----+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=)(01000
1)()(311111
)(4032/122/3100)(t x t y t u t x t x
a =
0 0 1.0000
-1.5000 -2.0000 -0.5000
-3.0000 0 -4.0000
b =
1 1
-1 -1
-1 -3
c =
1 0 0
0 1 0
d =
0 0
0 0
>>
2、利用MATLAB实现系统数学模型间的转换
将例2状态空间表达式转换为传递函数;[num,den]=ss2tf(a,b,c,d,1)
num =
0 1.0000 5.0000 6.0000
0 -1.0000 -5.0000 -6.0000 den =
1 6 11 6
>> [num,den]=ss2tf(a,b,c,d,2)
num =
0 1.0000 3.0000 2.0000
0 -1.0000 -4.0000 -3.0000
den =
1 6 11 6
3、利用MATLAB实现控制系统的串联、并联和反馈连接
图2-7
已知系统的方框图如图2-7所示,求系统的传递函数。
num1=[1];den1=[2 0.5];num2=[10];den2=[1 1];num3=[0.1];den3=[1];num4=[540];den4=[1];num5=[1];den5=[1];
>> [n1,d1]=series(num2,den2,num1,den1);[n2,d2]=feedback(n1,d1,num3,den3);
>> [n3,d3]=series(num4,den4,n2,d2);[n4,d4]=feedback(n3,d3,num5,den5);
>> printsys(n4,d4)
num/den =
5400
----------------------
2 s^2 + 2.5 s + 5401.5
例3假设单变量系统如教材图3-5所示。
试根据四阶龙格库塔法,熟悉MATLAB仿真程序,求输出量y的动态响应曲线。
r=2;num=8;den=[1 3 0];num2=[1];den2=[1];
[no,do]=feedback(num,den,num2,den2);
[a,b,c,d]=tf2ss(no,do);
tf=input('仿真时间tf: ');h=input('计算步长h: ');
x=zeros(length(a),1);y=0;t=0;
for i=1:tf/h
k1=a*x+b*r;
k2=a*(x+h*k1/2)+b*r;
k3=a*(x+h*k2/2)+b*r;
k4=a*(x+h*k3/2)+b*r;
x=x+h*(k1+2*k2+2*k3+k4)/6;
y=[y;c*x];
t=[t;t(i)+h];
end
plot(t,y)
00.51 1.52 2.53 3.54 4.55
0.5
1
1.5
2
2.5
例4 假设某一系统由四个典型环节组成,如图3-11所示。
1、给出典型环节的参数矩阵P
2、给出连接矩阵W 、W 0和W c ;
3、熟悉 MATLAB 仿真程序,求输出量y 的动态响应曲线。
%ex3_2.m r=10;
p=[0.1 1 0.5 1;0 1 1 0;2 1 2 0;10 1 10 0]; W=[0 0 0 -1;1 0 0 0;0 1 0 0;0 0 1 0]; W0=[1;0;0;0];Wc=[0 0 0 1];
Tf=input('仿真时间Tf = ');h=input('计算步长h = ');
A1=diag(p(:,1));B1=diag(p(:,2));C1=diag(p(:,3));D1=diag(p(:,4)); H=B1-D1*W;Q=C1*W-A1; A=inv(H)*Q;B=inv(H)*C1*W0;
x=[zeros(length(A),1)];y=[zeros(length(Wc(:,1)),1)]; t=0;
for i = 1:Tf/h
K1=A*x+B*r;
K2=A*(x+h*K1/2) + B*r; K3=A*(x+h*K2/2) + B*r;
r
图3-11
Ⅰ
Ⅱ
Ⅲ
Ⅳ
K4=A*(x+h*K3) + B*r;
x=x+h*(K1+2*K2+2*K3+K4)/6;
y=[y,Wc*x];t=[t,t(i)+h];
end
plot(t,y)。