本部《Matlab与控制系统仿真》实验指导书

时间:2024.3.20

机 电 工 程 学 院

《Matlab控制系统仿真》实验指导书

                             

                        

                        

                        

温州大学机电工程学院 制


实验一  MATLAB语言基本命令

1 实验目的

1.  掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;

2.  掌握MATLAB的命令运行方式和M文件运行方式;

3.  掌握矩阵在MATLAB中的运用。

2 实验器材

计算机WinXP、Matlab7.0软件

3 实验内容

(1). 输入 A=[7  1  5;2  5  6;3  1 5],B=[1  1  1; 2  2  2;3  3 3],

在命令窗口中执行下列表达式,掌握其含义:

A(2, 3)                A(:,2)             A(3,:)              A(:,1:2:3)

A(:,3).*B(:,2)           A(:,3)*B(2,:)       A*B               A.*B

A^2                   A.^2             B/A                 B./A

(2).输入 C=1:2:20,则 C(i)表示什么?其中 i=1,2,3,…,10;

(3).查找已创建变量的信息,删除无用的变量;

(4). 试用 help命令理解下面程序各指令的含义:

clear

t =0:0.001:2*pi;

subplot(2,2,1);

polar(t, 1+cos(t))

subplot(2,2,2);

plot(cos(t).^3,sin(t).^3)

subplot(2,2,3);

polar(t,abs(sin(t).*cos(t)))

subplot(2,2,4);

polar(t,(cos(2*t)).^0.5)

4 实验步骤:

   打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。

5 实验报告要求

记录实验数据,理解其含义

实验二  MATLAB语言程序设计

1 实验目的

(1)掌握Matlab程序的编制环境和运行环境。

(2)掌握Matlab程序的编写方法。

(3)能编写基本的数据处理Matlab程序。

(4)能编写基本的数据可视化Matlab程序。

2 实验器材

计算机WinXP、Matlab7.0软件

3 实验内容

(1) Matlab脚本文件编写和执行

(2) Matlab 函数文件的编写和调用

(3) nargm和nargout函数使用方法

(4) 局部变量与全局变量使用

4 实验步骤

1、Matlab命令文件编写

(1) 建立自己工作目录,如/Mywork。

(2) 设置工作目录的搜索路径。

(3) 打开新的M文件编辑器中

(4) 在编辑器中完成(求小于2000且为2的整数次幂的正整数)的程序内容, 调试后,将其以test1.m形式保存在/Mywork中

2、Matlab函数文件编写

编写(求小于任何指定的正整数n且为2的整数次幂的正整数)的函数文件, 调试后,将其以tt.m形式保存在/Mywork中

3、nargm和nargout函数使用方法

利用nargm函数,编写函数文件testarg(a,b),从而实现因参数个数的不同,分别调用函数内部不同的的执行内容。

4. 全局变量使用

利用全局变量编写函数weight_add,实现将输入的参数加权相加

5 实验报告要求

把调试好的脚本文件和函数文件,清晰的写入报告中,并附加一些语句的解释。


实验三  典型数控机床建模

1 实验目的

(1) 了解数控机床进给系统的建模方法;

(2) 熟练M语言与simulink建模仿真方法

2 实验器材

计算机WinXP、Matlab7.0软件

3 实验内容

进给系统的精度是影响数控机床的精度主要因素,进给伺服系统根据数控装置发来的速度与位移指令信号,由伺服电路做一定的转换和放大后,经伺服驱动装置和机械传动机构等执行部件实现工件进给和运动,达到加工出所需的工件外形和尺寸。本实验以CK7815数控机床进给系统常用的步进电机、滚珠丝杠等构成的经典结构为对象,建立数控机床进给系统的数学模型(用系统方块图表示)。

4 实验步骤

按图1所示,分析CK7815数控机床进给部分的结构,由DC伺服电机通过一级减速齿轮和滚珠丝杠螺母机构驱动工作台运动。利用运动学原理构建出驱动电机和机械系统模型,从而获得整体进给系统的数学模型。

图1.直流伺服进给系统方块图

(1).对于永磁直流电动机,其微分方程式为

               (1)

式中:为电机输出力矩;为电机扭转刚度系数;为电枢回路的电感;为电枢回路的总电阻;为电枢回路的电流;为电枢回路的控制电压;为电机的反电动势;为测速电机系数;为电机输出转速;为折算到电机轴上的总转动惯量;B为折算到电机轴上的总粘性阻尼系数。若设功率放大器的增益为,电机的输出转角有关系,将式(1)进行拉氏变换,获得输出转角与输入电枢的控制电压间关系为:

           (2)

(2)机械传动装置:设分别为机械传动装置折算到电机轴上的等效转动惯量、等效回转阻尼系数和等效扭转刚度系数。经过等效变换后,机械传动装置可简化为图2所示系统。为电机驱动转矩,为电机输入转角,为电机轴在负载作用下的实际转角。

图2. 等效机械传动装置简图

由图所示可以列出平衡方程

 (3)

则输入转角与工作台之间的传递函数为:

     (4)

式中:为齿轮1,2的齿数和丝杠导程,为进给系统的无阻尼固有频率,为进给系统的阻尼比。

在仿真时,据伺服驱动系统要求,取放大器增益,电机参数

z1/z2=0.5,  L=4mm,

(3) 检测装置:将编码器测得的实际位移量,以脉冲数直接反馈到输入端,设传递函数为1 。

(4) 比较转换装置

将指令与反馈脉冲比较,差值经过D/A转换,变为电压信号。该环节为比例环节增益为

(5) 根据永磁直流电动机的传函式(2)与机械传动装置的传函式(4),在实验报告中,编写系统闭环的的位置阶跃响应仿真的M脚本文件或者利用simulink构建方块图进行仿真。

(6) 观察所得到的结果进行分析

5 实验报告要求

(1)编写M脚本程序进行调试,完成进给系统的位置闭环仿真。

(2)构建进给系统的闭环simulink仿真,与脚本语言进行比较。

(3)根据仿真结果进行必要的说明。


实验四  SIMULINK的初步使用

1 实验目的

(1)熟悉Matlab中基本Simulink仿真环境;

(2)掌握simulink进行系统仿真设计的基本步骤。

(3)了解simulink 中各模块库;

(4)掌握仿真系统参数设置及子系统封装技术

2 实验器材

计算机WinXP、Matlab7.0软件

3 实验内容

(1) 在命令窗口输入simulink,观察其模块库的构成;

(2) 搭建一个简单的simulink二阶不稳定系统的阶跃响应仿真模型

(3) 设计PID控制器实现稳定阶跃响应

(4) 封装PID控制器

4 实验步骤

(1) 建立新的simulink模块编辑界面。

(2) 在simulink模块中的continue模块集中拉出Transfer Fun 模块,从Sink模块集中拉出阶跃信号模块,从Math operations模块集中拉出Sum模块,从Sink模块集中拉出Scope模块,构建二阶系统的阶跃响应的系统模块图.

(3) 通过设定Simulink 解法器的相关参数,进行仿真并从结果中判断说明系统的稳定性。

(4) 在原有系统模块的基础上,从continue模块集中拉出Derivative、Integrator以及从Math Operations模块集中拉出Gain模块,设计PID控制器,对原系统进行串联校正。

(5) 对PID控制器进行封装。

5 实验报告要求

(1)画出二阶系统的阶跃响应的系统模块图和结果,说明系统不稳定的理由。

(2)画出PID控制系统的在不同参数下的仿真曲线。


实验五  MATLAB控制系统工具箱使用

1 实验目的

(1)了解Matlab控制系统工具箱中常用函数.

(2)掌握模型转换方法以及奈氏图、伯德图的绘制。

(3)掌握系统脉冲、阶跃等响应的仿真方法

2 实验器材

计算机WinXP、Matlab7.0软件

3 实验内容

(1)利用residue函数求取传递函数的部分分式展开式

(2)利用tf函数构建系统传递函数

(3)利用impulse、step、lsim等函数仿真系统的单位脉冲、阶跃、速度响应。

(4)画出单位负反馈的开环传递函数的在频率0.01-100rad/s间的伯德图

(5)画出系统的乃奎斯特图

4 实验步骤

(1) 写出传递函数的部分展开式

a. 列些分子num、分母den的系数

 b. 利用residue(num,den) 求出零极点和余项

 c. 把部分展开式写入实验报告。

(2)对于系统

a.首先利用conv函数展开分母,获得各阶系数,此时num=[14 21];

den=conv(conv(conv([1 0 0], [3 1]),conv([1 2],[1 2])), [5 0 3 8])

b.再利用tf函数构建传递函数

c. 结果写入实验报告

(3)a. 用tf(num,den)函数构建高阶系统传递函数

b.构建时间向量t

c 用函数impulse及step仿真系统的单位脉冲响应、单位阶跃响应

d. 用lism函数仿真系统速度响应

e. 程序调试成功后,写入实验报告

(4)绘制单位负反馈的开环传递函数的伯德图。

a. 写出num,den

b. 用logspace函数设定频率范围

c  利用bode函数输入幅值增益、相位

d. 把增益值转换为分贝值

e. 添加网格线,并生成二行一列的图表

f. 用semilogx在两个图标中分别生成幅值频率和相频特性曲线。

g. 用margin函数获取开环的幅值裕量和相位裕量。

h. 程序调试后写入实验报告


实验六  数控机床SIMULINK仿真

1 实验目的

(1) 了解数控机床的位置与速度反馈控制。

(2) 提高控制器设计能力并进行仿真验证。

(3) 熟练SImulink仿真操作方法。

2 实验器材

计算机WinXP、Matlab7.0软件

3 实验内容

基于实验3数控机床的进给系统,根据其电机以及机械部分的关系,参考推导出的传递函数,用simulink构建完整的进给系统的控制仿真方块图。并对速度回路进行PI控制,并对所设计好的PD控制器进行封装。同时对位置回路进行PID控制。比较控制前后的仿真结果。

4 实验步骤

(1)利用M脚本编辑器,完成数控机床进给部分的参数设定。

(2)完成Simulink的系统模块构建。

(3)为速度回路与位置回路分别设计PI和PID控制器。

(4)设定仿真求解器的参数,进行仿真

(5)调节PID控制器参数,使进给过程快速、稳定。

                                           (2)

5 实验报告要求

(1)画出调试好的数控机床进给系统的PI速度控制和PID位置控制的Simulink模块图。

(2)比较分析仿真结果。


实验七  MATLAB数字控制器设计初步

1 实验目的

(1)掌握离散信号z变换和z逆变换的matlab方法

(2)掌握离散系统的系统函数零极点分布与系统频率特性的matlab实现方法

(3)掌握matlab计算差分方程的方法。

2 实验器材

计算机WinXP、Matlab7.0软件

3 实验内容

(1)找到matlab的符号运算工具箱提供的z变换函数ztrans与反变换函数iztrans,通过help理解其用法,并掌握符号表达式的构建和应用。

F=ztrans(f)    %求符号函数f的z变换,返回函数的自变量为z;

F=ztrans(f,w)  %求符号函数f的z变换,返回函数的自变量为w;

F=ztrans(f,k,w) %对自变量为k的符号函数f求z变换,返回函数的自变量为w。

f=iztrans(F)   %对自变量为z的符号函数F求逆z变换,返回函数的自变量为n;

f=iztrans(F,k)  %对自变量为z的符号函数F求逆z变换,返回函数的自变量为k;

f=iztrans(F,w,k) %对自变量为w的符号函数F求逆z变换,返回函数的自变量为k。

4 实验步骤

(1).已知序列,求其z变换。

解:在命令窗口中输入如下命令,即可完成f(k)的z变换

>> syms  k

>> f=sym('2^(-k)');    %定义序列

>> F=ztrans(f)        %求z变换

在实验报告中,写出程序并写出其结果

(2)已知一离散系统的系统函数,求其冲激响应h(k)。

解:运行如下M文件,

syms k z

H=sym('z/(z^2+3*z+2)');

h=iztrans(H,k)       %求逆z变换

在实验报告中,写出程序并写出其结果

 (3) MATLABzplane函数用于系统函数的零极点图的绘制,调用方式为:

zplane(b,a)   其中, ba分别为系统函数分子、分母多项式的系数向量

.已知一离散系统的系统函数,试绘制其零极点图。

解:MATLAB的命令窗口中输入如下命令,即可得到零极点图(图15-1)。

>> a=[1 3 2];

>> b=[1 -0.7 0.1];

>> zplane(b,a)   %绘制其零极点图

在实验报告中,写出程序并画出其结果

(4) 若描述离散系统的差分方程为,已知激励,初始状态y(-1)=1,y(-2)=0,求系统的零输入响应,零状态响应。

【解】将差分方程两边取z变化的

,进整理,得

,前一部分为零输入响应,后一部分为零状态响应。

将y(-1)=1,y(-2)=0代入第一部分,则零输入响应的表达式为

,因此经过z的逆变化得,

同理,则零状态激励响应响应的表达式为

如果直接利用iztrans函数进行编程求解如下

clc

syms z

y=0.5*(1/z-1)/(1+1/2*z-1/2*z^2)

y=iztrans(y)

结果:1/2*charfcn[1](n)-3/4*charfcn[0](n)+1/12*2^n+2/3*(-1)^n

(5)已知,通过部分分式展开法求F(z) 。

F=sym('(s+2)/(s*(s+1)^2*(s+3))');%传递函数F(s)进行符号定义

[numF,denF]=numden(F) ;%提取分子分母

pnumF=sym2poly(numF) ;%将分子转化为一般多项式

pdenF=sym2poly(denF) ;%将分母转化为一般多项式

[R,P,K]=residue(pnumF,pdenF)%部分分式展开

对应部分分式分解结果为:

剩余部分在实验报告中完成

5 实验报告要求

(1)按照要求,写出程序及相应结果


实验八  MATLAB数字控制器设计

1 实验目的

(1)了解数字PID控制器的结构和控制原理。

(2)掌握连续系统的数字PID控制仿真。

 (3)  掌握离散系统的数字PID控制仿真。

2 实验器材

计算机WinXP、Matlab7.0软件

3 实验内容

(a). 计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量。因此连续PID控制算法不能直接使用,需要离散化成数字PID控制器。这里以一系列的采样时刻电KT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分。即对于连续控制系统中PID的控制律

,改写为离散形式如下

,其中,To为采样时间

(附注:因此,PID控制器的脉冲传递函数如下所示:

式中,

(b). 练习连续系统与离散系统的数字控制方正

4 实验步骤

【连续系统与数字控制器】

】采用Matlab语句进行仿真。被控对象为一电机模型

式中,,输入指令信号为r=0.5sin(2*pi*t),采用PID控制方法设计控制器,其中,求其正弦波的跟踪结果。

解法1】如图建立系统的仿真图,模块的采样时间都设定为1ms,其中电机系统为连续系统,控制器采用simulink模块与M函数相结合的形式。(chap_3.mdl)

function [u]= pidsimf1(u1,u2)

persistent pidmat errori error_1

 if u1==0

   error_1=0

end  

 ts=0.001;

kp=20;

kd=0.5;

 error=u2;

errord=(error-error_1)/ts;

 u=kp*error+kd*errord;

error_1=error;

解法2】直接编写M脚本文件和M函数,当系统的数学模型以微分方程给出时,利用ODE45的方法求解连续对象方程。(chap1_2.m)

%Discrete PID control for continuous plant[]

clear all;

close all;

ts=0.001;  %Sampling time

xk=zeros(2,1);

e_1=0;

u_1=0;

for k=1:1:2000

time(k) = k*ts;

rin(k)=0.50*sin(1*2*pi*k*ts);  %构造正弦输入信号

 

para=u_1;

tSpan=[0 ts];

[tt,xx]=ode45(' PlantModel ',tSpan,xk,[],para); %前面的输入为t,x,后面的为参数a,b,c。一定要在t,x与参数间写[].

xk = xx(length(xx),:);

yout(k)=xk(1);

e(k)=rin(k)-yout(k);

de(k)=(e(k)-e_1)/ts;

u(k)=20.0*e(k)+0.50*de(k);

%Control limit

if u(k)>10.0

   u(k)=10.0;

end

if u(k)<-10.0

   u(k)=-10.0;

end

u_1=u(k);

e_1=e(k);

end

figure(1);

plot(time,rin,'r',time,yout,'b');

xlabel('time(s)'),ylabel('rin,yout');

figure(2);

plot(time,rin-yout,'r');

xlabel('time(s)'),ylabel('error');

function dy = PlantModel(t,y,flag,para)

u=para;

J=0.0067;B=0.1;

dy=zeros(2,1);

dy(1) = y(2);

dy(2) = -(B/J)*y(2) + (1/J)*u;

【离散系统与数字控制器】

】采用Simulink仿真。被控对象为三阶传递函数,采用Simulink模块与M函数相结合的形式,利用ODE45的方法求解连续对象方程,主程序由Simulink模块实现,控制器由M函数实现。输入指令信号为采样周期为1ms的正弦信号。采用PID方法设计控制器,其中Kp=1.5,Ki=2,Kd=0.05。偏差的初始化是通过时钟功能实现的,从而在M函数中实现偏差的积分和微分

解法1】建立simulink仿真图,首先对连续系统进行离散(利用c2d函数)文本框:

%连续系统离散化,保存为lisanpid.m

num=523500

den=[1 87.5 10470 0]

sys=tf(num,den)

dsys=c2d(sys,1e-3,'z')

[num1 den1]=tfdata(dsys,'v')

%离散控制器函数

function [u]=pidsimf(u1,u2)

% persistent pidmat errori error_1

 if u1==0

   errori=0

   error_1=0

end  

ts=0.001;

kp=1.5;

ki=1.0;

kd=0.01;

error=u2;

errord=(error-error_1)/ts;

errori=errori+error*ts;

 u=kp*error+kd*errord+ki*errori;

error_1=error;

5 实验报告要求

(1)画出连续和离散系统的simulink模块图

(2)画出两种方式的仿真结果

更多相关推荐:
matlab仿真实验报告

Matlab仿真实验报告1实验一数字信号的FFT分析大概在第10周1实验内容及要求1离散信号的频谱分析设信号xn0001cos045nsin03ncos0302n4此信号的03pi和0302pi两根谱线相距很近...

matlab仿真实验报告

20xx211208班08211106号史永涛班内序号01MatLab仿真试验报告实验一数字信号的FFT分析一实验目的通过本次实验应该掌握1用傅立叶变换进行信号分析时基本参数的选择2经过离散时间傅立叶变换DTF...

MM1排队系统仿真matlab实验报告

MM1排队系统实验报告一实验目的本次实验要求实现MM1单窗口无限排队系统的系统仿真利用事件调度法实现离散事件系统仿真并统计平均队列长度以及平均等待时间等值以与理论分析结果进行对比二实验原理根据排队论的知识我们知...

《机械工程控制基础》Matlab仿真实验报告单(实验二) - 副本

红河学院工学院实验报告单机械工程控制基础Matlab仿真实验报告单课程名称机械工程控制基础实验姓名日期20xx126成绩年级专业20xx级机械工程学号20xx01030415实验场地任美福楼222实验二一阶二阶...

Matlab综合实验报告

重庆交通大学学生实验报告实验课程名称开课实验室学院20xx年级通信工程专业2班学生姓名周丙相学号MATLAB编程与系统仿真评分标准目录实验一随机信号峰均功率的求法及其比较4一实验内容及要求4二程序仿真流程图4三...

《Matlab与机电系统仿真》实验报告三

Matlab与机电系统仿真实验报告三班级电气121姓名李凡学号20xx06010116一实验名称Simulink建模与仿真4一实验目的1掌握Simulink建模与仿真的基本方法2熟悉Simulink基本模块库及...

北邮数字信号处理Matlab仿真实验

数字信号处理Matlab实验一离散信号的FFT分析知识点利用FFT对信号频谱进行分析用DFT进行信号分析时基本参数的选择以及信号经过离散时间傅立叶变换DTFT和有限长度离散傅立叶变换DFT后信号频谱上的区别实验...

《机械工程控制基础》Matlab仿真实验报告单(实验三)

红河学院工学院实验报告单机械工程控制基础Matlab仿真实验报告单课程名称机械工程控制基础实验姓名日期成绩年级专业20xx级机械工程学号实验场地任美福楼222实验三二阶线性系统时域性能指标的Matlab仿真实验...

东南大学自控实验五:MatlabSimulink仿真实验 - 副本

实验五MatlabSimulink仿真实验一实验目的1学习系统数学模型的多种表达方法并会用函数相互转换2学习模型串并联及反馈连接后的系统传递函数3掌握系统BODE图根轨迹图及奈奎斯特曲线的绘制方法并利用其对系统...

北邮MATLab仿真实验报告DSP

北京邮电大学MATLAB仿真实验报告实验日期20xx年12月实验一数字信号的FFT分析1实验内容及要求1离散信号的频谱分析设信号xn0001cos045nsin03ncos0302n4此信号的03pi和0302...

东南大学自控实验报告 Matlab-Simulink_仿真实验

东南大学仪器科学与工程学院学院实验报告课程名称自动控制原理实验名称MatlabSimulink仿真实验院系仪器科学与工程学院专业测控技术与仪器姓名刘XX学号220xxXX实验室机电实验平台实验组别同组人员实验时...

matlab实验报告

重庆交通大学学生实验报告实验课程名称专业综合实验开课实验室交通运输工程实验教学中心学院交通运输年级二年级专业班交通运输1班学生姓名学号63120xx20开课时间20xx至20xx学年第2学期

matlab仿真实验报告(13篇)