本部《Matlab与控制系统仿真》实验指导书Word下载.docx
- 文档编号:17576387
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:18
- 大小:205.52KB
本部《Matlab与控制系统仿真》实验指导书Word下载.docx
《本部《Matlab与控制系统仿真》实验指导书Word下载.docx》由会员分享,可在线阅读,更多相关《本部《Matlab与控制系统仿真》实验指导书Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
(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)掌握Matlab程序的编制环境和运行环境。
(2)掌握Matlab程序的编写方法。
(3)能编写基本的数据处理Matlab程序。
(4)能编写基本的数据可视化Matlab程序。
(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,实现将输入的参数加权相加
把调试好的脚本文件和函数文件,清晰的写入报告中,并附加一些语句的解释。
实验三典型数控机床建模
(1)了解数控机床进给系统的建模方法;
(2)熟练M语言与simulink建模仿真方法
进给系统的精度是影响数控机床的精度主要因素,进给伺服系统根据数控装置发来的速度与位移指令信号,由伺服电路做一定的转换和放大后,经伺服驱动装置和机械传动机构等执行部件实现工件进给和运动,达到加工出所需的工件外形和尺寸。
本实验以CK7815数控机床进给系统常用的步进电机、滚珠丝杠等构成的经典结构为对象,建立数控机床进给系统的数学模型(用系统方块图表示)。
按图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)观察所得到的结果进行分析
(1)编写M脚本程序进行调试,完成进给系统的位置闭环仿真。
(2)构建进给系统的闭环simulink仿真,与脚本语言进行比较。
(3)根据仿真结果进行必要的说明。
实验四SIMULINK的初步使用
(1)熟悉Matlab中基本Simulink仿真环境;
(2)掌握simulink进行系统仿真设计的基本步骤。
(3)了解simulink中各模块库;
(4)掌握仿真系统参数设置及子系统封装技术
(1)在命令窗口输入simulink,观察其模块库的构成;
(2)搭建一个简单的simulink二阶不稳定系统的阶跃响应仿真模型
(3)设计PID控制器实现稳定阶跃响应
(4)封装PID控制器
(1)建立新的simulink模块编辑界面。
(2)在simulink模块中的continue模块集中拉出TransferFun模块,从Sink模块集中拉出阶跃信号模块,从Mathoperations模块集中拉出Sum模块,从Sink模块集中拉出Scope模块,构建二阶系统
的阶跃响应的系统模块图.
(3)通过设定Simulink解法器的相关参数,进行仿真并从结果中判断说明系统的稳定性。
(4)在原有系统模块的基础上,从continue模块集中拉出Derivative、Integrator以及从MathOperations模块集中拉出Gain模块,设计PID控制器,对原系统进行串联校正。
(5)对PID控制器进行封装。
(1)画出二阶系统的阶跃响应的系统模块图和结果,说明系统不稳定的理由。
(2)画出PID控制系统的在不同参数下的仿真曲线。
实验五MATLAB控制系统工具箱使用
(1)了解Matlab控制系统工具箱中常用函数.
(2)掌握模型转换方法以及奈氏图、伯德图的绘制。
(3)掌握系统脉冲、阶跃等响应的仿真方法
(1)利用residue函数求取传递函数的部分分式展开式
(2)利用tf函数构建系统传递函数
(3)利用impulse、step、lsim等函数仿真系统的单位脉冲、阶跃、速度响应。
(4)画出单位负反馈的开环传递函数的在频率0.01-100rad/s间的伯德图
(5)画出系统的乃奎斯特图
(1)写出传递函数
的部分展开式
a.列些分子num、分母den的系数
b.利用residue(num,den)求出零极点和余项
c.把部分展开式写入实验报告。
(2)对于系统
a.首先利用conv函数展开分母,获得各阶系数,此时num=[1421];
den=conv(conv(conv([100],[31]),conv([12],[12])),[5038])
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)了解数控机床的位置与速度反馈控制。
(2)提高控制器设计能力并进行仿真验证。
(3)熟练SImulink仿真操作方法。
基于实验3数控机床的进给系统,根据其电机以及机械部分的关系,参考推导出的传递函数,用simulink构建完整的进给系统的控制仿真方块图。
并对速度回路进行PI控制,并对所设计好的PD控制器进行封装。
同时对位置回路进行PID控制。
比较控制前后的仿真结果。
(1)利用M脚本编辑器,完成数控机床进给部分的参数设定。
(2)完成Simulink的系统模块构建。
(3)为速度回路与位置回路分别设计PI和PID控制器。
(4)设定仿真求解器的参数,进行仿真
(5)调节PID控制器参数,使进给过程快速、稳定。
(1)画出调试好的数控机床进给系统的PI速度控制和PID位置控制的Simulink模块图。
(2)比较分析仿真结果。
实验七MATLAB数字控制器设计初步
(1)掌握离散信号z变换和z逆变换的matlab方法
(2)掌握离散系统的系统函数零极点分布与系统频率特性的matlab实现方法
(3)掌握matlab计算差分方程的方法。
(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。
(1).已知序列
,求其z变换。
解:
在命令窗口中输入如下命令,即可完成f(k)的z变换
>
symsk
f=sym('
2^(-k)'
);
%定义序列
F=ztrans(f)%求z变换
在实验报告中,写出程序并写出其结果
(2)已知一离散系统的系统函数
,求其冲激响应h(k)。
运行如下M文件,
symskz
H=sym('
z/(z^2+3*z+2)'
h=iztrans(H,k)%求逆z变换
(3)MATLAB的zplane函数用于系统函数的零极点图的绘制,调用方式为:
zplane(b,a)其中,b、a分别为系统函数分子、分母多项式的系数向量
例.已知一离散系统的系统函数
,试绘制其零极点图。
在MATLAB的命令窗口中输入如下命令,即可得到其零极点图(图15-1)。
a=[132];
b=[1-0.70.1];
zplane(b,a)%绘制其零极点图
在实验报告中,写出程序并画出其结果
(4)若描述离散系统的差分方程为
,已知激励
,初始状态y(-1)=1,y(-2)=0,求系统的零输入响应,零状态响应。
【解】将差分方程两边取z变化的
,进整理,得
,前一部分为零输入响应,后一部分为零状态响应。
将y(-1)=1,y(-2)=0代入第一部分,则零输入响应的表达式为
,因此经过z的逆变化得,
同理,则零状态激励响应响应的表达式为
,
如果直接利用iztrans函数进行编程求解如下
clc
symsz
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)%部分分式展开
对应部分分式分解结果为:
剩余部分在实验报告中完成
(1)按照要求,写出程序及相应结果
实验八MATLAB数字控制器设计
(1)了解数字PID控制器的结构和控制原理。
(2)掌握连续系统的数字PID控制仿真。
(3)掌握离散系统的数字PID控制仿真。
(a).计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量。
因此连续PID控制算法不能直接使用,需要离散化成数字PID控制器。
这里以一系列的采样时刻电KT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分。
即对于连续控制系统中PID的控制律
,改写为离散形式如下
,其中,To为采样时间
(附注:
因此,PID控制器的脉冲传递函数如下所示:
式中,
(b).练习连续系统与离散系统的数字控制方正
【连续系统与数字控制器】
【例】采用Matlab语句进行仿真。
被控对象为一电机模型
输入指令信号为r=0.5sin(2*pi*t),采用PID控制方法设计控制器,其中
,求其正弦波的跟踪结果。
【解法1】如图建立系统的仿真图,模块的采样时间都设定为1ms,其中电机系统为连续系统,控制器采用simulink模块与M函数相结合的形式。
(点开chap_3.mdl即可,会同时打开MATL与SIM)
(M文件为Pidsimf.M)
解法1的scope仿真结果
function[u]=pidsimf1(u1,u2)
persistentpidmaterrorierror_1
ifu1==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)
%DiscretePIDcontrolforcontinuousplant[]
clearall;
closeall;
ts=0.001;
%Samplingtime
xk=zeros(2,1);
e_1=0;
u_1=0;
fork=1:
1:
2000
time(k)=k*ts;
rin(k)=0.50*sin(1*2*pi*k*ts);
%构造正弦输入信号
para=u_1;
tSpan=[0ts];
[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);
%Controllimit
ifu(k)>
10.0
u(k)=10.0;
end
ifu(k)<
-10.0
u(k)=-10.0;
u_1=u(k);
e_1=e(k);
figure
(1);
plot(time,rin,'
r'
time,yout,'
b'
xlabel('
time(s)'
),ylabel('
rin,yout'
figure
(2);
plot(time,rin-yout,'
error'
functiondy=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=[187.5104700]
sys=tf(num,den)
dsys=c2d(sys,1e-3,'
z'
)
[num1den1]=tfdata(dsys,'
v'
%离散控制器函数
function[u]=pidsimf(u1,u2)
%persistentpidmaterrorierror_1
errori=0
kp=1.5;
ki=1.0;
kd=0.01;
error=u2;
errori=errori+error*ts;
u=kp*error+kd*errord+ki*errori;
(1)画出连续和离散系统的simulink模块图
(2)画出两种方式的仿真结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab与控制系统仿真 本部 Matlab 控制系统 仿真 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)