利用MATLAB进行离散控制系统模拟
matlab tf、ss、和zpk的控制系统建模实验心得

matlab tf、ss、和zpk的控制系统建模实验心得1. 引言1.1 概述控制系统建模是设计和分析工程系统的重要步骤之一。
在这个过程中,我们需要选择适当的数学模型来描述系统的行为,并使其与实际物理现象相匹配。
MATLAB作为一个功能强大的工具,提供了多种方法来进行控制系统建模,其中包括传递函数模型(TF)、状态空间模型(SS)和零极点增益模型(ZPK)。
本文旨在总结和分享我在使用MATLAB中的TF、SS和ZPK进行控制系统建模实验中的经验和心得。
1.2 文章结构本文将按照以下结构展开讨论:- 第二部分将介绍在MATLAB中使用TF进行控制系统建模时的一些重要事项,包括理解传递函数模型以及如何建立该模型。
- 第三部分将介绍使用SS进行控制系统建模时所需注意的事项,包括理解状态空间模型和建立该模型的步骤。
- 第四部分将介绍使用ZPK进行控制系统建模时需要注意的事项,包括理解零极点增益模型和如何建立该模型。
最后,在第五部分中,将对TF、SS和ZPK三种建模方法进行比较,并总结心得体会,并对未来的研究方向进行展望。
1.3 目的本文的目的是帮助读者更好地理解和掌握MATLAB中TF、SS和ZPK建模方法,以便能够准确描述和分析控制系统的行为。
通过分享我的实验心得,我希望能够给读者提供一些在实际应用中使用这些模型时的指导和启示。
让我们开始吧!2. MATLAB中的TF模型建模实验心得2.1 理解传递函数模型在MATLAB中,传递函数(Transfer Function)是一种常用的控制系统建模方法。
它用于描述输入和输出之间的关系,并包含了系统的动态特性。
在进行TF 模型建模时,我们首先需要理解传递函数的含义和作用。
传递函数是指将系统的频率响应与拉普拉斯变换联系起来的函数表达式。
通过分子多项式和分母多项式的比值来表示系统,并使用频率域表达,可以方便地分析系统性能、稳定性以及设计控制器等。
2.2 建立传递函数模型的步骤在MATLAB中,建立传递函数模型可以遵循以下步骤:步骤1:确定系统的数学模型。
实验二-基于Matlab的离散控制系统仿真

实验二基于Matlab的离散控制系统仿真一、实验目的1)学习使用Matlab命令对离散控制系统进行仿真的方法。
2)学习使用Simulink工具箱对离散控制系统进行仿真的方法。
二、实验原理1. 控制系统命令行仿真一阶系统闭环传递函数为3()G ss+3请转换为离散系统脉冲传递函数并仿真。
根据要求实验有实验数据和所得图形如下:连续零极点图函数:离散函数零极点图:连续函数根轨迹图:离散函数根轨迹图:连续函数单位脉冲响应曲线:离散函数单位脉冲响应曲线:连续函数单位阶跃响应:离散函数单位阶跃响应:连续函数波特图:离散函数波特图:连续函数艾奎斯特曲线:离散函数艾奎斯特曲线:连续函数尼科尔斯曲线:离散函数尼科尔斯曲线:2. 控制系统simulink 仿真按图建立系统的Simulink 模型,对不同的输入信号进行仿真,改变参数,观察不同的仿真结果。
图1 控制系统Simulink 仿真图解答于实验内容第二问三、实验内容1) 二阶系统传递函数为225()4+25G s s s =+,请转换为零极点模型,离散系统模型(采样时间为1),以及离散零极点模型,并进行基于matlab 命令的仿真研究(求连续和离散系统的单位脉冲响应、单位阶跃响应、零极点分布图、根轨迹、波特图、奈奎斯特曲线、尼科尓斯曲线等)。
根据题意实验所得有:连续单位脉冲响应连续单位阶跃响应连续零极点分布图离散零极点分布图连续根轨迹连续波特图连续奈奎斯特曲线连续尼科尓斯曲线2)按图1建立系统的Simulink模型,对不同的输入信号进行仿真。
改变模型参数,观察不同的仿真结果。
Step输入:Ramp输入:当函数分子分别为1,10,100,500时有:经过实验可以看出分子越大超调越大,调整时间越大。
3)将上述系统离散化并基于Simulink仿真,观察仿真结果。
根据题意实验有:Step输入:Ramp输入:分子为1时:Step输入:Ramp输入:分子为250时:Step输入:Ramp输入:四、实验报告1)按照实验报告所要求的统一格式,填写实验报告;2)记录实验过程、实验结果和图表。
使用Matlab技术进行离散事件模拟的基本方法

使用Matlab技术进行离散事件模拟的基本方法在现代科学和工程领域中,离散事件模拟扮演着重要的角色。
它可以模拟基于事件序列的系统,通过模拟事件的先后顺序和相互作用,从而预测系统的行为。
离散事件模拟在交通、制造、通信等领域得到广泛应用。
而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) 得到的实验结果如下图所示:
控制系统仿真及MATLAB语言-连续系统的离散化方法

第四章 连续系统的离散化方法
2021/4/10
1
ba12
a2
a2
1 12
a2b1 1 2
三个方程,四个未知数,解不唯一
2各021/个4/10系数的几种取法——见书上。
12
3) r=4时,四阶龙格库塔公式-最常用:
h
xk 1
xk
( 6
K1
2K2
2K3
K4
)
K1 f tk ,xk
K2
K3
f f
tk
tk
h 2
,
xk
h 2 , xk
2 病态系统中绝对值最小的特征值对应于系统动态性能 解中瞬态分量衰减最慢的部分,它决定了整个系统的动 态过渡过程时间的长短。一般与系统中具有最小时间常 数Tmax的环节有关,要求计算步长h取得很大。
3 对于病态问题的仿真需要寻求更加合理的算法,以解 决病态系统带来的选取计算步长与计算精度,计算时间 之间的矛盾。
在仿真中,对于n阶系统,状态方程可以写成一阶微分方程
xi ai1x1 ai2 x2 ain xn biu fi (t, x1, x2, x3, , xn )(i 1, 2, , n)
2021/4/10
14
根据四阶龙格-库塔公式,有
T=tk+h时刻的xi值
T=tk时刻的xi值
xk 1 i
2021/4/10 K3 [k13
如何在Matlab中进行离散系统设计

如何在Matlab中进行离散系统设计离散系统设计在工程领域中扮演着重要的角色。
离散系统指的是使用一系列离散时间点进行操作和观测的系统。
而Matlab作为一种强大的数学软件,提供了丰富的工具和函数来进行离散系统设计。
本文将介绍如何使用Matlab进行离散系统设计,并提供一些实际案例来帮助读者理解和应用这些概念。
一、离散系统和离散系统设计概述离散系统是指系统的状态和输出在离散时间点上进行操作和观测,与连续系统相对应。
离散系统设计的目标是通过对系统进行建模、分析和控制,以实现所需的性能指标。
离散系统设计的基本步骤包括系统建模、性能分析和控制器设计。
系统建模是指将实际系统抽象为数学模型,以方便进行分析和设计。
性能分析是评估系统在不同工况下的性能表现,如稳定性、响应速度等。
控制器设计是根据性能要求设计出合适的控制器,使得系统能够满足需求。
二、Matlab中的离散系统建模在Matlab中,可以使用多种方法进行离散系统的建模。
最常用的方法是差分方程法和状态空间法。
差分方程法是将系统的输入输出关系表示为差分方程的形式,而状态空间法则是使用状态向量和状态方程来描述系统的动态行为。
在使用差分方程法进行建模时,可以使用Matlab中的函数tf或zpk来创建传递函数模型。
传递函数模型是用来描述系统输入和输出之间的关系的一种数学表达式。
例如,通过以下代码可以创建一个二阶传递函数模型:```matlabnum = [1, 0.5];den = [1, -0.6, 0.08];sys = tf(num, den, 1);```在使用状态空间法进行建模时,可以使用Matlab中的函数ss来创建状态空间模型。
状态空间模型是使用状态向量和状态方程来描述系统的动态行为的一种数学表达式。
例如,通过以下代码可以创建一个二阶状态空间模型:```matlabA = [0, 1; -0.08, 0.6];B = [0; 1];C = [1, 0.5];D = 0;sys = ss(A, B, C, D, 1);```三、离散系统性能分析离散系统的性能分析是评估系统在不同工况下的性能表现,如稳定性、响应速度等。
基于MATLAB的离散控制系统实验仿真研究

基孑 MA T L AB昀离 散控 制系统实验仿寅砷究
中北大学信息与通信工程 学院 高丽媛
[ 摘
王忠庆
景 妮
要】 图形 用户界面 ( G U I ) 是 用户与计算机程 序之 间的交互方式 , 是 用户与计 算机进行信 息交流的方 式。本文通过利 用MA T —
L A B的特点 以及 它提供 的 图形 用户界 面 G UI 设 计模板 、 MA T L AB的程序 设计和 M 文件设计 出了离散 系统的MATL A B仿 真程序 , 完 成 了系统 的零极 点函数 , 零极点 图, 反 馈函数 , 单位 阶跃响应 曲线 , 单位脉 冲响应 曲线 以及 b o d e 图的绘制 。仿 真结果表明 , MA T L A B 的G U I 设计功 能与其数据处理功 能、 绘 图功 能等的有机结合 , 极 大地方便 了非专业用户的使 用, 可以使 控制 系统 的动 态仿真及其性 能分析快速 、 灵活 、 直观 、 高效 。 [ 关键 词] MA TL A B语言 离散控制 系统 用户 图形界 面 仿真程序
O . 5 I 言
Байду номын сангаас
M A T L A B 是 由美 国M a t h Wo r k s 公司开发 的一套用 于科学工程 计算 的可视化 高性能 软件, 它具 有强大 的科学计 算能力 和出色 的图形 处理 能 力, 提 供 了 友好 的 图形 化 用户 界 面 ( G r a p h i c a l U s e r I n t e r f a c e s , 简 称 G U I ) 。利用 M A T L A B 语言及 其提供的图形用户界面 G U I 设 计模 板设计 出了离散 控制系统仿真及程序 , 用 人机 对话方式进行菜单操作 , 不需要 编写 程序 , 鼠标点击 图中任意点在 图形上显示 出该点 的坐标值及 其参 数 。本 文提出 了用 M A T L A B 的G U I 设计用 户图形界面 , 用 以仿 真《 离散 控制 系统》 的主要内容u , 。 1 . 离散控制 系统与 GUI 1 . 1 离散控制 系统 在控 制 系统 中 , 如果 所有信 号都 是时 间变量 的连续 函数 , 换句话 说, 这些信 号在 全部 时间上是 已知 的 , 则 这样 的系统称 为连续 时 间系 统, 简称连续 系统 ; 如果控制系统 中有 一处 或几处信号是一 串脉 冲或数 码, 即这些 信号 仅定义 在离散 时间上 , 则 这样 的系统称 为离散 时 间系 统, 简称离散 系统 】 。 离散控 制系统是指系统 内的信号在某一 点上是不连续 的。仔 细区 分时 , 又可 以把 离散控制 系统进一步 分为采样控 制系统 和数字控制 系 统两大类 。 系统 内的控制器 和对象均 是连续信 号处理器 , 用采样 开关 来达 到 多个对象共享一个控制器 的 目的。类 似系统称 为采 样控制系统。 控制 器只能处 理数字 ( 离散 ) 信号, 控制 系统 内必有 A / D 、 D / A转换 器完成连续信号 与离散信号之间的相互转换 。类 似系统称为数字控制 系统 。显 然 , 由数 字计算机 承担控制器 功能 的系统 均可归属 于数字控 制系统 。随着计算 机技术 的 日益普及 , 数字控制 系统的应用会 越来越 多” 】 。 1 . 2用户界面 图形用户界面 ( G U I ) 是用户 与计算 机程序之间的交互方式 , 是用户 与计算机 进行信息交 流 的方式 。计算机在 屏幕显示 图形和文本 , 若有 扬 声器还 可产生声音 。用户通过输 入设备 , 如: 键盘 、 鼠标 、 跟踪球 、 绘 制 板或 麦克 风 , 与计算 机通讯 。图形用 户界 面或 G U I 是包 含 图形对 象, 如: 窗 口、 图标 、 菜单 和文本的用户界面 。以某种方式选 择或激活这 些 对象 , 通 常引起动 作或发生变 化。最 常见 的激活方 法是用 鼠标 或其 它 点击设备 去控制屏 幕上的 鼠标指针的运 动。按下 鼠标按钮 , 标 志着 对象 的选 择或其它动作 。 实现一个 G U I 的过程包括两个 基本任务 : 一是 G U I 的组件 布局 , 另 个是G U I 组 件编程 。另 外 , 用户还必须 能够保存并 发布 自己的 G U I , 使得用户 开发的 图形界 面能够 真正得到应用 。所有这些功 能都 能通过 图形用户界 面开发环境 G U I D E来完成 。 GU I D E( G r a p h i c s U s e r I n t e r f a c e D e s i g n E n v i r o n me n t ) 是一 个 专用 于 G U I 程序设 计的快 速开发 环境 , 使 用者通 过 鼠标就 能迅速 地产生各 种 G U I 控件 , 并随心所 欲地改 变它们 的外形 、 大小及颜 色等 , 从 而帮 助用 户方便地设计 出各 种符 合要求 的图形用户界面 。 GU I D E可在布局 G UI 的同时生成 以下两个 文件 : ( 1 ) F I G 文件 。该文件包 括 G U I 的图像窗 口和所有子对 象 ( 包括用 户控件和坐标轴 ) 的完全描 述以及 所有对 象的属性值。 ( 2 ) M文件 。该文件包括 用户用来发布 和控制 界面和 回调 函数 ( 这 里作为子 函数 ) 的各种 函数 。该文 件中不 包含任何组件的布置信息 。 2 . 用 MAT L AB的Co n t r o l T o o l b o x完成软件设计 2 . 1 设计 的步骤 ( 1 ) 打开 M A T L A B , 新 建一个 G U I , 方法有两种 , 在M A T L A B 命令 窗 口中输入 g u i d e 命令, 或在 M A T L A B 主菜 单中点击 F i l e —N e w —G u I 即可 打开一个可编辑 的新窗 口。 ( 2 ) 在G U I 界 面 中加 人 能完成 实验 的相 应控 件 , 如p u s h b a t t o n ( 按 钮) , s t a t i c t e x t ( 静态文本 ) , e d i t t e x t ( 可 编辑文本 ) , p a n e l ( 面) , a x e s ( 坐标 轴) 等。 ( 3 ) 把相 同类 型的按钮 放在 同一个 p a n e l 中, 为 了操作简便 。布局 好整个界面 , 并对各个按钮进行对 齐 , 使 其看起 来整洁美观。如图 1 。 ( 4 ) 修改各个控件 的属性 , 以便在界 面上 观察其 具体作用。 ( 5 ) 对各个 按钮进行 回调 函数 的编写 , 使其 达到它的功能 。具体 的 回调 函数在下 面列 出。
离散系统变结构控制及matlab仿真

变换 , 系统化成 了简约型 ,并利 用趋近率 的 将
方法设计 了离散 系统 的变结构控制器 ,并给 出 了仿真结果 ,以此来证 明这种方法的有效性 。
2 相关 的基 本 定义和 定理 .
理想 准滑 模是 发 生在 切 换 面 S x k ) = (( ) cx 上的运动 , r: 故应满足
变结构控制经过数十年 的发展 ,已经 自成 体系,成为 自动控制系统的一种重要的设计方 法。变结构控制系统的核心是滑动模态 ,滑动
模态 具有 理 想 的 不 变Βιβλιοθήκη ,正 是 这 种 不 变 性 ,引
【 xk ) Cxk , k = 00 T s0 s () = T()x() x, 一 k t ( t
】
将系统 ( ) 2 变换成
f( 1 Y k+ )=Al 。 ) ’ + 。 。 lY( + s ) :Y ’ ( ’
l ( k—T ’ k一 )+ s ) (
一 一
经 式
lk 1 = Y() + Y + ) l + 芝s ) 。 s ( (
把 s )= .x + = ( 2 7 。 O 带如(0 式 , o 1 ) 得到 理想滑动模态方程为
】
计算差分, 结合( ) 4 式得
5k+1 ( )一s k ( )=C ( ~ k+1 )一C k ( )= CA ‘ k + CA ( — T + Cb ( ) = r ’ ) ( k ) u k
= 。 一
( ) ' ( 一 C 6 一CA‘ ( — ) C 6 一CA‘ ) ( ) ' k ’ () 3
则从任意状 态 出发的滞后离 散 系统 ( ) 的运 1 动,若在有 限步 到达切换面 s,然后在其上运
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验利用MATLAB进行离散控制系统模拟本试验的目的主要是让学生初步掌握MATLAB软件在离散控制系统分析和设计中的应用。
1.连续系统的离散化。
在MATLAB软件中,对连续系统的离散化主要是利用函数c2dm( )函数来实现的,c2dm( )函数的一般格式为
C2dm( num, den, T, method),可以通过MATLAB的帮助文件进行查询。
其中:
Num:传递函数分子多项式系数;
Den:传递函数分母多项式系数;
T:采样周期;
Method:转换方法;
允许用户采用的转换方法有:零阶保持器(ZOH)等五种。
2.求离散系统的相应:
在MATLAB中,求采样系统的响应可运用dstep( ),dimpulse( ),dlsim( )来实现的。
分别用于求取采样系统的阶跃,脉冲,零输入及任意输入时的响应,其中dstep( )的一般格式如下:
dstep( num, den, n),可以通过MATLAB的帮助文件进行查询。
其中:
Num:传递函数分子多项式系数;
Den:传递函数分母多项式系数;
N:采样点数;
3.此外,离散控制系统也可以用simulink工具箱进行仿真,仿真界面
如下图(采样周期可以在对应模块中进行设定)。
1.编制程序实现上面三个仿真程序。
2.把得到的图形和结果拷贝在试验报告上。
3.在第1个例子中,改变采样周期为0.25,重新运行程序,把结果和原来结果进行比较,并说明为什么?
4.在第2个例子中,改变采样点数为70,重新运行程序,把结果和原来结果进行比较,并说明为什么?同样,改变采样周期T,观察不同周
期下系统阶跃响应的动态性能,分析采样周期对系统动态性能的影响。
1.
1)
num=10;
den=[1,7,10];
t=0.1
[numz,denz]=c2dm(num,den,t,'zoh');
printsys(numz,denz,'z')
得出结果:
t =
0.1000
num/den =
0.039803 z + 0.031521
------------------------
z^2 - 1.4253 z + 0.49659
若t改为0.25:
num=10;
den=[1,7,10];
t=0.25
[numz,denz]=c2dm(num,den,t,'zoh'); printsys(numz,denz,'z')
得出结果为:
t =
0.2500
num/den =
0.18012 z + 0.10062
-------------------------
z^2 - 0.89304 z + 0.17377
2)
num=10;
den=[1,7,10];
t=0.25;
i=[0:35];
time=i*t;
[numz,denz]=c2dm(num,den,t,'zoh'); yc=step(num,den,time);
y_zoh=dstep(numz,denz,36);
[xx,yy]=stairs(time,y_zoh);
plot(time,yc,'r'),hold
plot(xx,yy,'r'),hold;grid
采样点数改为70:
num=10;
den=[1,7,10];
t=0.1;
i=[0:70];
time=i*t;
[numz,denz]=c2dm(num,den,t,'zoh'); yc=step(num,den,time);
y_zoh=dstep(numz,denz,71);
[xx,yy]=stairs(time,y_zoh);
plot(time,yc,'r'),hold
周期改为0.25:
3
num=[0.008,0.072];
den=[1,-1.905,0.905];
t=0.1;
i=[0:35];
time=i*t;
[numz,denz]=c2dm(num,den,t,'zoh'); yc=step(num,den,time);
y_zoh=dstep(numz,denz,36);
[xx,yy]=stairs(time,y_zoh);
plot(time,yc,'r'),hold
plot(xx,yy,'r'),hold;grid
7
6
5
4
3
2
1
0 Simulink实现:
仿真时间:10
仿真时间700:
3
(3) 采样周期不同,得出的Z变换也不同,说明Z变换的结果随采样周期的变化而变化。
(4)采样点数越多,输出越平稳,采样周期时间越长,系统达到平稳速度越慢。
采样周期
越长,动态性能越差。