预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共36页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于MATLAB_Simulink的机电一体化系统的仿真分析一、实验目的和要求 目的: 机电一体化系统建模是进行机电一体化系统分析与设计的基础,通过对系统的简化分析建立描述系统的数学模型,进而研究系统的稳态特性和动态特性,为机电一体化系统的物理实现和后续的系统调试工作提供数据支持,而仿真研究是进行系统分析和设计的有利方法。 本实验目的在于通过实验使同学对机电一体化系统建模方法和仿真方法有初步的了解,初步掌握在MATLAB/SIMULINK环境下对机电一体化系统数学模型进行仿真的方法。 (1)掌握机电一体化系统数学建模的基本方法; (2)掌握对机电一体化系统进行数学仿真的基本方法和步骤; (3)在初步掌握在MATLAB/SIMULINK环境下对机电一体化系统数学模型进行仿真的方法。 要求: 每个同学能独立完成本仿真实验(多次练习)二、实验内容 1控制对象建模 1.1PID控制系统的建模 PID(Proportional,IntegralandDifferemial)控制器是一种基于“过去”,“现在”和“未来”信息估计的简单算法。常规PID控制系统原理框图如下图所示,系统主要由PID控制器和被控对象组成。作为一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制偏差e(t),将偏差按比例、积分、和微分通过线性组合构成控制量u(t),对被控对象进行控制。二、实验内容 PID控制器各校正环节的作用如下: 1.比例环节:成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减少偏差。 2.积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之越强。 3.微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。 从根本上讲,设计PID控制器也就是确定其比例系数Kp、积分系数Ti和微分系数Td,这三个系数取值的不同,决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下,适当选择控制器的参数使控制仪表的特性和控制对象的特性相配合,从而使控制系统的运行达到最佳状态,取得最好的控制效果。本文介绍基于Ziegler-Nichols整定方法的PID控制器设计。二、实验内容 1.2被控对象的建模 在实际的过程控制系统中,有大量的对象模型可以近似地由带有延迟的一阶传递函数模型来表示,该对象的模型可以表示如下:二、实验内容 2PID控制系统的设计 Ziegler-Nichols法是一种基于频域设计PID控制器的方法。此法首先通过实验获取控制对象单位阶跃响应,获得K、L和T参数。令a=KL/T,我们可以通过下表给出的Ziegler-Nichols经验公式确定P、PI和PID控制器的参数。二、实验内容 3PID控制系统MATLAB/Simulink仿真分析 3.1在MATLAB下实现PID控制器的设计与仿真 根据Ziegler-Nichols法,这里编写一个MATLAB函数ziegler,该函数的功能实现由Ziegler-Nichols公式设计PID控制器,在设计过程中可以直接调用。其源程序如下: function[Gc,Kp,Ti,Td,H]=ziegler(key,vars) Ti=[];%PID控制器积分时间常数 Td=[];%PID控制器微分时间常数 H=1; iflength(vars)==4,K=vars(1);L=vars(2);T=vars(3);N=vars(4);%接收系统传递函数Gp=K/(Ts+1)*exp(-L*s)中的系数 a=K*L/T;%令a=K*L/T(表示ziegler-Nichols法中比例环节系数的倒数) ifkey==1,Kp=1/a;%key=1表示系统P校正 elseifkey==2,Kp=0.9/a;Ti=3.33*L;%key=2表示系统PI校正 elseifkey==3|key==4,Kp=1.2/a;Ti=2.2*L;Td=L/2;%key=3,4表示系统PID校正 end二、实验内容 3PID控制系统MATLAB/Simulink仿真分析 3.1在MATLAB下实现PID控制器的设计与仿真 elseiflength(vars)==3,K=vars(1);Tc=vars(2);N=vars(3); ifkey==1,Kp=0.5*K; elseifkey==2,Kp=0.4*K;Ti=0.8*Tc; elseifkey==3|key==4,Kp=0.6*K;Ti=0.5*Tc;Td=0.12*Tc; end elseiflength(vars)==5