Matlab 编程方法及仿真实验
自动控制原理MATLAB仿真实验报告

实验一 MATLAB 及仿真实验(控制系统的时域分析)一、实验目的学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点1、 系统的典型响应有哪些2、 如何判断系统稳定性3、 系统的动态性能指标有哪些 三、实验方法(一) 四种典型响应1、 阶跃响应:阶跃响应常用格式:1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。
2、),(Tn sys step ;表示时间范围0---Tn 。
3、),(T sys step ;表示时间范围向量T 指定。
4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。
2、 脉冲响应:脉冲函数在数学上的精确定义:0,0)(1)(0〉==⎰∞t x f dx x f其拉氏变换为:)()()()(1)(s G s f s G s Y s f ===所以脉冲响应即为传函的反拉氏变换。
脉冲响应函数常用格式: ① )(sys impulse ; ②);,();,(T sys impulse Tn sys impulse③ ),(T sys impulse Y =(二) 分析系统稳定性 有以下三种方法:1、 利用pzmap 绘制连续系统的零极点图;2、 利用tf2zp 求出系统零极点;3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.四、实验内容 (一) 稳定性1. 系统传函为()27243645232345234+++++++++=s s s s s s s s s s G ,试判断其稳定性2. 用Matlab 求出253722)(2342++++++=s s s s s s s G 的极点。
%Matlab 计算程序num=[3 2 5 4 6];den=[1 3 4 2 7 2];G=tf(num,den);pzmap(G);p=roots(den)运行结果: p =+ - + -P ole-Zero MapReal AxisI m a g i n a r y A x i s-2-1.5-1-0.500.5-1.5-1-0.50.511.5图1-1 零极点分布图由计算结果可知,该系统的2个极点具有正实部,故系统不稳定。
利用Matlab进行模拟与仿真实验的基本方法

利用Matlab进行模拟与仿真实验的基本方法研究物理现象和工程问题时,我们常常需要进行模拟与仿真实验。
模拟与仿真实验是一种方便、经济且高效的方法,可以帮助我们更好地理解和预测系统的行为。
在模拟与仿真实验中,Matlab是一个功能强大且广泛使用的工具。
它不仅具有丰富的数学和工程计算功能,还提供了直观的用户界面和易于使用的命令语法。
本文将介绍利用Matlab进行模拟与仿真实验的基本方法。
一、了解问题在进行模拟与仿真实验之前,我们首先需要深入了解所研究问题的背景和相关理论知识。
只有充分理解问题,我们才能准确地建立数学模型和选择合适的仿真算法。
因此,在进行模拟与仿真实验之前,我们应该阅读相关的文献和教材,并与领域内的专家进行交流。
二、建立数学模型建立数学模型是模拟与仿真实验的关键步骤。
一个好的数学模型能够准确地描述模拟对象的行为,并能够反映出实际系统的特点。
在Matlab中,我们可以使用符号计算工具箱来建立数学模型。
符号计算工具箱可以帮助我们定义符号变量、运算符号表达式和求解方程等。
在建立数学模型时,我们需要注意选择合适的变量和参数,并使用正确的物理单位对其进行定义。
三、选择仿真算法选择合适的仿真算法是模拟与仿真实验的关键决策。
不同的问题可能需要使用不同的仿真算法。
在Matlab中,我们可以使用内置的仿真工具箱来选择和应用不同的仿真算法。
仿真工具箱提供了丰富的仿真算法库,如欧拉法、龙格-库塔法和有限元法等。
在选择仿真算法时,我们应该评估算法的精确性、速度和稳定性,并根据实际情况进行权衡取舍。
四、编写仿真程序在建立数学模型和选择仿真算法之后,我们需要使用Matlab编写仿真程序。
仿真程序是实现模拟与仿真实验的关键工具。
在编写仿真程序时,我们应该遵循一些基本的编程原则,如模块化设计、代码复用和错误处理等。
同时,我们应该充分利用Matlab的各种功能和工具,如图形界面设计、符号计算和并行计算等,以提高仿真程序的性能和可靠性。
基于MATLAB控制系统仿真实验报告

tf 4
y0
0 1
6、求出 G1(s)
2 (s2 2s 1) 与 G2 (s)
1 (2s3
3s2
1)
的单位阶跃响应,并分别
求出状态空间模型。
解:(1) G1(s) 2 (s2 2s 1) 的状态空间模型求解如下:
function shiyan2 b1=[2];
D(z)
0.62(1 0.136z 1)(1 0.183z (1 0.045z 1)(1 0.53z 1)
1 )
分别用仿真算法得到系统在单位阶跃输入作用下的响应,系统在单位速度输
入是的输出响应。
解:(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)
INTRO(注意:intro 为一个用 MATLAB 语言编写的幻灯片程序,主要演示
常用的 MATLAB 语句运行结果。)
然后,根据现实出来的幻灯片右面按钮进行操作,可按 START——NEXT—
—NEXT 按钮一步步运行,观察。
3、自编程序并完成上机编辑,调试,运行,存盘:
(1)用 MATLAB 命令完成矩阵的各种运算,例如:
5、利用 ode23 或 ode45 求解线性时不变系统微分方程 y(t) Ay(t) ,并绘制出 y(t)
曲线,式中
A
0.5
1
1 0.5
t t0 t 如下: 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) 得到的实验结果如下图所示:
算法仿真实验报告

一、实验目的本次实验旨在通过仿真实验,验证某算法在实际应用中的性能和效果,并对算法的优化进行初步探讨。
通过实验,深入了解算法的原理,分析其优缺点,为实际工程应用提供参考。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 仿真软件:MATLAB 2019b4. 硬件环境:****************************,16GB RAM三、实验内容1. 算法原理及描述2. 仿真实验设计3. 实验结果分析4. 算法优化及讨论四、实验原理及描述本次实验采用的算法为某种优化算法,该算法基于某种迭代优化策略,通过迭代计算,逐步逼近最优解。
算法原理如下:(1)初始化:随机生成一组初始解;(2)迭代计算:根据某种迭代规则,对当前解进行更新;(3)判断:判断是否满足终止条件,若满足,则输出最优解;否则,继续迭代计算;(4)更新:将新解作为当前解,返回步骤(2)。
五、仿真实验设计1. 实验数据:选取一组具有代表性的测试数据,包括输入数据和期望输出数据;2. 实验步骤:(1)导入实验数据;(2)调用算法进行仿真实验;(3)记录实验结果;(4)分析实验结果。
六、实验结果分析1. 实验结果展示(1)输入数据:[1, 2, 3, 4, 5](2)期望输出:[1, 2, 3, 4, 5](3)算法输出:[1, 2, 3, 4, 5](4)误差分析:误差为0,说明算法输出与期望输出一致。
2. 性能分析(1)算法运行时间:0.001s(2)迭代次数:100次(3)算法收敛速度:较快3. 优缺点分析(1)优点:算法简单易实现,收敛速度快;(2)缺点:对初始解敏感,容易陷入局部最优。
七、算法优化及讨论1. 优化策略(1)改进初始解:采用某种方法生成更好的初始解,提高算法的鲁棒性;(2)调整迭代规则:优化迭代规则,使算法在迭代过程中更加稳定;(3)引入多种优化算法:结合多种优化算法,提高算法的适应性和全局搜索能力。
MATLABSimulink和控制系统仿真实验报告

MATLAB/Simulink与控制系统仿真实验报告姓名:喻彬彬学号:K031541725实验1、MATLAB/Simulink 仿真基础及控制系统模型的建立一、实验目的1、掌握MATLAB/Simulink 仿真的基本知识;2、熟练应用MATLAB 软件建立控制系统模型。
二、实验设备电脑一台;MATLAB 仿真软件一个三、实验内容1、熟悉MATLAB/Smulink 仿真软件。
2、一个单位负反馈二阶系统,其开环传递函数为210()3G s s s =+。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
3、某控制系统的传递函数为()()()1()Y s G s X s G s =+,其中250()23s G s s s+=+。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
4、一闭环系统结构如图所示,其中系统前向通道的传递函数为320.520()0.11220s G s s s s s+=+++,而且前向通道有一个[-0.2,0.5]的限幅环节,图中用N 表示,反馈通道的增益为1.5,系统为负反馈,阶跃输入经1.5倍的增益作用到系统。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。
五、实验思考题总结仿真模型构建及调试过程中的心得体会。
题1、(1)利用Simulink的Library窗口中的【File】→【New】,打开一个新的模型窗口。
(2)分别从信号源库(Sourse)、输出方式库(Sink)、数学运算库(Math)、连续系统库(Continuous)中,用鼠标把阶跃信号发生器(Step)、示波器(Scope)、传递函数(Transfern Fcn)和相加器(Sum)4个标准功能模块选中,并将其拖至模型窗口。
如何使用Matlab进行控制系统仿真

如何使用Matlab进行控制系统仿真概述控制系统在工程领域中扮演着重要角色,它用于控制和管理各种工程过程和设备。
而控制系统仿真则是设计、开发和测试控制系统的关键环节之一。
Matlab作为一种功能强大的工程计算软件,提供了丰富的工具和功能,可以帮助工程师进行控制系统仿真。
本文将简要介绍如何使用Matlab进行控制系统仿真,以及一些实用的技巧和建议。
1. Matlab的基础知识在开始控制系统仿真之前,有一些Matlab的基础知识是必要的。
首先,了解Matlab的基本语法和命令,熟悉Matlab的工作环境和编辑器。
其次,学会使用Matlab的集成开发环境(IDE)进行编程和数学建模。
熟悉Matlab的常用函数和工具箱,并了解如何在Matlab中导入和导出数据。
2. 定义系统模型在进行控制系统仿真之前,需要定义系统的数学模型。
根据具体情况选择合适的建模方法,如传递函数、状态空间或差分方程等。
在Matlab中,可以使用tf、ss 或zpk等函数来创建系统模型,并指定系统的参数和输入信号。
此外,Matlab还提供了Simulink这一强大的图形化建模环境,方便用户以图形化界面设计系统模型。
3. 设计控制器控制系统仿真的关键是设计合适的控制器,以实现所需的控制目标。
Matlab提供了各种控制器设计方法和工具,如PID控制器、根轨迹法、频域方法等。
用户可以使用Matlab的Control System Toolbox来设计和分析控制器,并在仿真中进行验证。
此外,Matlab还支持自适应控制和模糊控制等高级控制方法,可根据具体需求选择合适的方法。
4. 进行仿真实验在完成系统模型和控制器设计后,可以开始进行控制系统仿真实验。
首先,确定仿真实验的输入信号,如阶跃信号、正弦信号或随机信号等。
然后,使用Matlab中的sim函数将输入信号应用到系统模型中,并观察系统的输出响应。
通过调整控制器参数或设计不同的控制器,分析系统的性能和稳定性,并优化控制器的设计。
电磁场matlab仿真实验

电磁场matlab 仿真实验一实验一:[例7-5]试分析一对等量异号的电荷周围空间上的电位和电场分布情况。
分析:将等量异号的电荷的几何中心放置于坐标原点位置,则它们在空间某点p 处产生的点位为:()G q g g q r r q r q r q02102102010*******πξπξπξπξπξϕ=-=⎪⎪⎭⎫ ⎝⎛-=-=其中G 为格林函数()()22222cos 2/cos 2/1r dr d r r dr d r +-=+-=θθ将G 用片面积坐标表示为⎪⎪⎭⎫⎝⎛=12ln g g G 在编程时,将G 当作点位函数处理,并利用梯度求出唱腔E=-▽φ。
用matlab 的m 语言编写的程序如下:[x,y]=meshgrid(-10:0.1:10);[Q,R]=cart2pol(x,y);R(R<=1)=NaN;q=input('请输入电偶极子的电量q =')%原程序有误,以此为准d=input('请输入电偶极子的间距d =')%原程序有误,以此为准E0=8.85*1e-12;K0=q/4/pi/E0;g1=sqrt((d./2).^2-d.*R.*cos(Q)+R.^2);%原程序有误,以此为准g2=sqrt((d./2).^2+d.*R.*cos(Q)+R.^2);%原程序有误,以此为准G=log(K0*g2./g1);contour(x,y,G,17,'g');hold on[ex,ey]=gradient(-G);tt=0:pi/10:2*pi;%原程序未定义tt ,以此为准sx=5*sin(tt);sy=5*cos(tt);streamline(x,y,ex,ey,sx,sy);xlabel('x');ylabel('y');hold off;当运行此程序后,按提示输入电偶极子电量和嗲耨集子间距如下:请输入电偶极子的电量q =0.5*1e-10请输入电偶极子的间距d =0.01即可汇出入图说使得嗲耨集资周围的长的分布图。
控制系统pid参数整定方法的matlab仿真实验报告

控制系统pid参数整定方法的matlab仿真实验报告一、引言PID控制器是广泛应用于工业控制系统中的一种常见控制算法。
PID 控制器通过对系统的误差、误差积分和误差变化率进行调节,实现对系统的稳定性和动态性能的控制。
而PID参数的整定是保证系统控制性能良好的关键。
本实验旨在利用Matlab仿真,研究控制系统PID参数整定的方法,探讨不同整定策略对系统稳定性和动态性能的影响,为工程实际应用提供理论依据。
二、控制系统模型本实验采用了以二阶惯性环节为例的控制系统模型,其传递函数为:G(s) = K / (s^2 + 2ξω_ns + ω_n^2)其中,K为系统增益,ξ为阻尼比,ω_n为自然频率。
三、PID参数整定方法实验中我们探讨了几种典型的PID参数整定方法,包括经验法、Ziegler-Nichols方法和遗传算法。
1. 经验法经验法是一种简单粗糙的PID参数整定方法,根据实际系统的性质进行经验性调试。
常见的经验法包括手动调整法和试探法。
在手动调整法中,我们通过调整PID参数的大小,观察系统的响应曲线,从而找到满足系统性能要求的参数。
这种方法需要操作者有一定的经验和直觉,且对系统有一定的了解。
试探法是通过试验和试验的结果来确定PID参数的值。
在试探过程中,我们可以逐渐逼近最佳参数,直到满足系统性能要求。
2. Ziegler-Nichols方法Ziegler-Nichols方法是一种广泛应用的PID参数整定方法。
该方法通过系统的临界增益和临界周期来确定PID参数。
首先,在开环状态下,逐渐增加系统增益,当系统开始出现振荡时,记录下此时的增益值和周期。
然后根据临界增益和临界周期的数值关系,计算出PID参数。
3. 遗传算法遗传算法是一种基于生物进化原理的优化算法,可以用于自动化调整PID参数。
该方法通过对参数的种群进行进化迭代,逐渐找到最优的PID参数。
四、实验结果与分析我们利用Matlab进行了控制系统的PID参数整定仿真实验,并得到了不同整定方法下的系统响应曲线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《现代机械工程基础实验》之机械工程控制基础综合实验报告
姓名
学号
班级
山东建筑大学机电工程学院
2012.06.04~06
第一部分 Matlab 编程方法及仿真实验
实验1. 三维曲面的绘制(略)
实验2. 系统零极点绘制例:求部分分式展开式和)(t g 一个线性定常系统的传递函数是
1
5422
3)(2
3
++++=
s s s s s G (1)
使用MATLAB 建立传递函数,并确定它的极点和零点,写出)(s G 的部分分式展开式并绘制
系统的脉冲响应。
实验结果:零点-0.6667
极点-0.8796 + 1.1414i -0.8796 - 1.1414i -0.2408
实验3. 系统的阶跃响应 例. )(s G 的阶跃响应
对例2中由(1)式给出的传递函数)(s G ,增加一个0=s 处的极点,使用impulse 命令绘制其拉普拉斯反变换式曲线,得到阶跃响应图。
将该响应与对)(s G 使用step 命令所得到的响应比较,确定系统的DC 增益。
利用初值定理和终值定理来校验结果。
实验结果:DC 增益= 2
实验4. 双输入反馈系统单位阶跃响应 考虑一个如图1所示的反馈系统,它既有参考输入也有干扰输入,其中对象和传感器的传递函数是
)12)(15.0(4)(++=s s s G p ,105.01
)(+=s s H
控制器是一个增益为80,有一个在3-=s 处的零点,极点/零点比15=α超前控制器。
推导
两个独立的MATLAB 模型,其中一个模型的输入为)(s R ,另一个输入为)(s D 。
使用这些模型确定闭环零点和极点,并在同一坐标系内绘制它们的阶跃响应。
D (s )
图1 具有参考和干扰输入的反馈系统方框图
实验结果:
参考输入的CL 极点:-49.3658 -7.3336 + 7.9786i -7.3336 - 7.9786i -3.4670 参考输入的DC 增益:320 干扰输入的CL 零点:-45
干扰输入的CL 极点:-49.3658 -7.3336 + 7.9786i -7.3336 - 7.9786i -3.4670 干扰输入的DC 增益:4
-20
实验5. 系统的稳态响应 例 正弦稳态响应
对以下系统的全响应进行仿真:
3
45010)(2
+++=
s s s s G
正弦输入信号)305cos(2)(o +=t t u ,仿真区间为s t 60≤≤(假设初始条件为零)。
试求
rad/s 5=ω时的频率响应)j (ωG ,并计算)(t y ss ;在同一幅图中绘制)(t y 和)(t y ss ,并论述它们之间的联系。
实验结果:rad/s 5=ω时的频率响应)j (ωG : 幅频特性mag =2.3783
相频特性Phase =-92.7263 )(t y ss =2*mag*cos(5*t+(30+phase)*pi/180)
实验6. 伯德图、尼柯尔斯图和奈奎斯特图
对如下传递函数绘制其伯德图、尼柯尔斯图和奈奎斯特图
16
24.32081.16042.24640
1280)(2
34
+++++=s s s s s s G
实验结果:
实验7. 转角频率和渐近线
计算转角频率,并使用MATLAB画出例6伯德图的幅频特性渐近线。
实验结果:零点-5.00e-001 1.00e+000 转角频率5.00e-001 极值点-1.20e+001 + 3.82e+001i 3.00e-001 4.00e+001
-1.20e+001 - 3.82e+001i 3.00e-001 4.00e+001
-1.00e-001 + 2.80e-009i 1.00e+000 1.00e-001
-1.00e-001 - 2.80e-009i 1.00e+000 1.00e-001
实验8. 穿越频率、裕量和稳定性
图2系统反馈的方框图
使用margin函数求图2中反馈系统的增益裕量,相角裕量及相应的穿越频率,其中)
G与
(s
实验6相同,1
s
H。
利用裕量确定此反馈系统的稳定性。
利用实验6中的尼柯尔斯图和
(
)
奈奎斯特图并通过计算闭环系统的极点来检验你的答案。
实验结果:闭环系统的极点:-11.5970 +38.0338i -11.5970 -38.0338i
-0.5030 + 0.4023i -0.5030 - 0.4023i
实验9. 阶跃响应性能
(a ) 过程
(b ) 图3反馈系统
考虑图3中的反馈系统,其中
)
20)(1)(01.0(1
)(+++=
s s s s G P ,50)(=s G c ,1)(=s H
当0)(=t d 时,对单位阶跃输入)(t r 引起的参考响应)(t y r 进行仿真,并使用tstats 函数求出0M ,p t ,r t 2s t 和ss e 。
求闭环系统极点的阻尼比和无阻尼固有频率。
再对0)(=t r 时由单位
阶跃扰动)(t d 引起的响应)(t y d 进行仿真,并求其稳态值。
实验结果:由Matlab 软件可得ys =0.9960 M0 =0.4004 td = 0.8000 tr = 1.3000
tp = 2.1000 ts2 = 7.0500
其极点为:p= -20.1299 -0.4400 + 1.5166i -0.4400 - 1.5166i 0
实验10. 频域响应
对例9中给出的反馈系统,绘制开环传递函数)()()(s G s G s G p c =的伯德图,并求出反馈系统的增益裕量、相角裕量及相应的截止频率。
绘制闭环系统的)(ωj T r 图形并求出B ω,p M 和p ω。
最后绘制)(ωj S 的图形以研究闭环系统对控制器增益的灵敏度。
实验结果:
该反馈系统的增益裕量为18.6dB ,相应的截止频率为4.5rad/s ;相角裕量为31.3,相应的截止频率为1.43rad/s 。
该闭环系统的Wa=1.4514,Mp=5.3719,Wp=1.4514
实验11 PID 控制系统分析 例:
图4 用于PID 控制器设计的反馈系统
图4中,反馈控制系统的过程和传感器模型为
)15.0)(12(4)(++=s s s G p ,105.01
)(+=s s H
按以下各步设计一个比例控制器p c K s G =)(:
(a ) 绘制p K 变化的根轨迹,并使用rlocfind 命令确定闭环系统临界稳定时的*p K 。
同时,
使用sgrid 命令确定p K 的值,使该系统有一对阻尼比8.0=ζ的复数闭环极点。
(b ) 绘制图形,显示p K 取几个不同的值(*p p K K <)时,系统参考输入的单位阶跃响
应。
使用RPI 函数tstata 求出阶跃响应的百分数超调量。
列表显示结果,并用试探
法确定控制器增益的最大值
∧
p
K,使系统单位阶跃响应的超调量不会超出稳态值的
20%。
(c)使用增益
∧
p
K在同一幅图上分别绘制系统对参考输入和扰动输入的单位阶跃响应,
并确定稳态响应值。
实验结果:
(a)二阶对象+一阶传感器的纯比例设计KK=15.8051
polesCL = -22.7410 0.1205 + 7.5144i
0.1205 - 7.5144i
(b)进行比例增益扫描的阶跃响应
0.7000 0.7368
0.9000 0.7826
1.1000 0.8148
1.3000 0.8387
1.5000 0.8571
1.7000 0.8718
阶跃响应:
(c)闭环参考输入阶跃响应和扰动输入阶跃响应
由Matlab软件可知参考输入的稳态值为0.8339,扰动输入的稳态值为0.6645。