介绍:系统建模

设计控制体统的第一步是通过自然规律或者实验数据建立适当的数学模型。我们会引进状态空间和传递函数来代表系统。然后我们回顾一些基本的机械或者电力系统模型,并且会在MATLAB中展示怎么近一步分析。

本教程中使用到的关键Matlab命令是:tf,ss。

目录

动态系统

按确定性规律随时间演化的系统,称为动态系统。对于很多物理模型来说,这种规律可以表示为一组一价微分方程:(1)

在上面的方程中,

是状态向量,由n个状态变量组成。例如在一个简易的质量块-弹簧-阻尼系统中,两个状态变量可以是质量块的位置和速度。

是输入信号向量,表示“外力”作用在系统上,f是状态向量对时间求导后的非线性函数。

任意一时刻的状态

可能都被初始状态

入决定。虽然状态变量并不是独立的,但状态变量有最小个数,假设为n。n与系统的阶数和状态空间的维数相关。系统的阶数通常与储能元素的个数一致。

在Eq.(1)中的关系是很普遍的可以用来描述很多系统,但是,它很难分析。通常有两种简化方法。第一,如果函数f不随时间变化,i.e.

,然后就可以说是定长系统。这是一种很合理的假设,因为自然规律不随时间变化。对于定常系统来说,函数f的参数或系数是固定的。然而控制的输入

可能与时间相关。

第二通常的假设是关于系统的线性度的。实际上,几乎每一个物理系统都是非线性的。换句话说,f是关于状态和输入的很复杂的函数。这些非线性产生于很多不同的方面,最常见的一种是,系统的一个元素达到了系统运转中的物理极限,就是说系统‘饱和’。不过,在一个足够小的工作范围内,大多数系统的动态近似线性,即

直到电脑出现,只有分析线性定常系统是可行的。因此,大部分控制理论是基于上面的两个假设。幸运的是,正如我们将看到的,这些结果已被证明是非常有效的,许多重大的工程挑战已经使用LTI技术解决。事实上,反馈控制系统的真正的优势是他们可以工作,在不可避免的不确定性建模的情况下。

状态空间模型

对于线性定常系统,状态空间模型的标准如下:(2)

(3)

x为状态向量,

为状态向量对事件求导,u为输入或者控制向量,y为输出向量,A为系统矩阵,B为输入矩阵,C为输出矩阵。

输出方程式(3)是必不可少的,因为有些状态变量不容易直接观察或者不感兴趣。通过控制器,输出矩阵C用于指定状态变量。D是零矩阵时,也常常没有直接的前馈控制。

状态空间表示法,也被称为时域表示,可以轻松地处理多输入多输出(MIMO)系统,具有非零初始条件的系统和非线性系统(通过公式(1))。因此,状态空间表示是广泛应用于现代控制理论。

传递函数模型

LTI系统有极其重要的属性,如果系统的输入是正弦的,然后输出将正弦在相同的频率,但一般具有不同的幅度和相位。这些的幅度和相位差作为频率的函数被称为系统的频率响应。

使用拉普拉斯变换,它可以把一个系统的时域到频域表示输出/输入表示,称为传递函数。在这样做时,它也将微分方程化为代数方程往往是更容易分析。

一个时域函数的拉普拉斯变换,

,定义如下:(4)

其中参数 是一个复杂的频率变量。在实践中,你可以直接评估的拉普拉斯变换是非常罕见的。通常都是通过查表发现你感兴趣的函数变换:拉普拉斯变换表Laplace Transform Table

一个函数的n阶导数的拉普拉斯变换是特别重要的:(5)

频域方法通常用来分析线性时不变的单输入单输出(SISO)系统,例如由一个常系数微分方程如下:(6)

这个方程的拉普拉斯变换如下:(7)

分别是

的拉式变换。我们假设每个初始条件

为零。传递函数如下:(8)

传递函数的分子和分母可变换成所谓的零极点增益形式:(9)

传递函数的零点是

,是分子多项式的根。传递函数的极点是

,是分母多项式的根。无论是零、极点可能是复值(有实部和虚部)。系统增益为

请注意,我们还可以直接从状态空间确定的传递函数表示如下:(10)

机械系统

牛顿定律是分析机械系统的基础。牛顿第二定律,公式(11),表明作用在物体上的力的总和等于质量乘以加速度。牛顿第三定律,指出如果两体连接,然后他们的经验同样大小的力作用在相反的方向。(11)

应用该方程时,最好是建立一个受力分析图(FBD)显示所有施加的力。

例:质量块-弹簧-阻尼系统

这个系统的受力分析图如下所示。弹力与质量块的位移x成正比,粘性阻尼力与质量的速度

成正比。因为这两个力阻碍弹簧的运动,因为他们的受力方向为X的负方向。注意到,当

时,弹簧未拉伸。

现在我们进行总结和运用牛顿第二定律力量,方程(11)。在这种情况下,没有力作用在Y 轴方向;然而,在X方向我们可得:(12)

这个方程,称为控制方程,完全刻画系统的动态状态。后来,我们将看到如何使用它计算系统的响应,在任何外部输入

的情况下,以及分析系统的性能,如稳定性和性能。

确定的质量-弹簧-阻尼器系统的状态空间表示,我们必须降低二阶方程为一组两个一阶微分方程。为此,我们选择的位置和速度作为状态变量。(13)

注意,这些状态变量分别对应于在弹簧的势能和质量块的动能。经常选择状态变量时,它有助于考虑系统中德独立的储能元件。

在这种情况下,状态方程如下:(14)

如果我们在控制质量块的位置感兴趣,然后输出方程如下:(15)

在MATLAB中输入状态空间模型

现在我们将告诉你如何通过m-file在MATLAB中输入状态空间方程。让我们为每个变量分配数值。

创建一个新文件,输入以下命令。

假设初始条件为零时拉式变换为:(16)

传递函数为(17)

在MATLAB中输入传递函数模型

现在我们将告诉你如何通过m-file在MATLAB中输入传递函数。输入如下命令在你定义过系统参数的m文件中。

请注意,我们所使用的符号变量s来定义我们的传递函数模型。大多数情况下,我们建议使用此方法;然而,在某些情况下,例如在旧版本的MATLAB 或者要连接Simulink时,你可能需要直接使用的分子和分母多项式的系数定义的传递函数模型。在这些情况下,使用下面的命令:

电气系统

像牛顿定律在机械系统,基尔霍夫电路法是电力系统分析的基本工具。基尔霍夫电流定律(KCL)状态的电流进入和退出一个电路节点的总和必须等于。基尔霍夫电压定律(KVL)指出,电压差在电路中的任何闭环的总和是零。应用KVL时,源电压通常为阳性和负载电压作为负。

例:RLC电路

现在我们考虑一个简单的三个电子元件的串联组合:一个电阻,电感,和一个电容器,被称为一个RLC电路。

由于该电路是一个单环,每个节点只具有一个输入和输出;因此,由KCL知整个电路中的电流相同。现在应用KVL,我们得到以下方程。(18)

我们注意到,方程为RLC电路对质量-弹簧-阻尼器系统类似的形式。特别是,他们都是二阶系统,电荷(积分电流)对应的位移,感应系数对应质量,电阻对应粘性阻尼,电容对应弹簧刚度。在理解的动力系统时,这些类比和像他们这样的类比会成为非常有用的概念。

建立状态空间时,通过选择电荷和电流作为状态变量。(19)

(20)

状态方程为:(21)

选择电流作为输出:(22)

传递函数可以求得通过做拉式变化:(23)

(24)

RLC的状态空间和传递函数模型可以写入matlab,使用与讨论了的质量-弹簧-阻尼器系统的相同方法。

系统辨识

在本节中,我们已经看到了如何使用基本的物理原理建立模型系统;然而,这往往是不可能的因为系统的参数是不确定的,或基本过程是根本不知道。在这些情况下,我们必须依靠实验测量和统计技术来开发一个系统模型,这一过程称为系统辨识。

系统变换

在MATLAB的大部分操作对于对传递函数模型,状态空间模型,或零极点增益形式都可以很好的运行。此外,如果有需要的话,三种形式的转换是很简单的。如果你需要学习如何从一种表示形式转换为其他,详见系统转换介绍页Introduction: System Conversions。

matlab and操作,系统建模 | Control Tutorials for Matlab and Simulink相关推荐

  1. 范德蒙德矩阵在MATLAB中怎么表示,Python 之 Python与MATLAB 矩阵操作总结

    Python 之 Python与MATLAB 矩阵操作小结 一.线形代数理论基础 线形代数(linear algebra)是数学的一个分支,研究矩阵理论.向量空间.线性变换和有限维线形方程组等内容. ...

  2. MATLAB基础操作--命令窗口

    MATLAB基础操作–命令窗口 常用的赋值运算符-'='对变量进行赋值 x=9-5 x = 4 x-8=9 x-8=9 ↑ 错误: '=' 运算符的使用不正确.要为变量赋值,请使用 '='.要比较值是 ...

  3. 图像隐藏matlab代码,picture Matlab简单操作实现图像的隐藏加密 联合开发网 - pudn.com...

    picture 所属分类:其他 开发工具:Others 文件大小:15KB 下载次数:1 上传日期:2018-07-18 09:50:48 上 传 者:至尊宝物语 说明:  Matlab简单操作实现图 ...

  4. matlab 2009a使用教程,实验一 安装MATLAB R2009a软件及其简单操作

    实验一安装MATLAB R2009a软件及其简单操作 一.实验目的 1.掌握MATLAB R2009a软件的安装. 2.熟悉启动和退出matlab的方法. 3.熟悉matlab命令窗口的组成. 4.掌 ...

  5. matlab字符串操作总结

    matlab字符串操作总结 字符串操作总结 char(S1,S2,-) 利用给定的字符串或单元数组创建字符数组 double(S) 将字符串转化成ASC码形式 cellstr(S) 利用的给定的字符数 ...

  6. matlab编写文件格式,MATLAB程序设计教程(4)——MATLAB文件操作

    MATLAB程序设计教程(4)--MATLAB文件操作 第4章MATLAB文件操作 4.1 文件的打开与关闭 4.2  文件的读写操作 4.3  数据文件定位 4.1 文件的打开与关闭 4.1.1 文 ...

  7. 数学建模速成! 两小时零基础入门 MATLAB 教程(一)—— Matlab常用操作和基本语法

    Matlab常用操作和基本语法 没有涉及到编程的内容, 就是介绍一些MATLAB软件的操作, 和简单的语法如注释输出之类的 目录 文章目录 Matlab常用操作和基本语法 1. help查看函数说明 ...

  8. Matlab常用操作入门及电力电子系统仿真

    引言 刚刚比较系统地学了一遍Matlab(主要是基础知识和电力电子方面的使用),专门撰写此文,写一下自己对于matlab及Power electronic方面的应用的总结和心得. Matlab入门 因 ...

  9. Matlab坐标轴操作

    Matlab坐标轴操作汇总: 1.view([z y ]):(将坐标系统想象为一座房子,而自己是个会飞的天使,最初在房子的北,海拔角度为0的位置,这是时你的视角是view[0 0],之后可以根据需要设 ...

最新文章

  1. 快刀斩“乱码”,你需要这些套路!
  2. 不用比较运算符及循环控制语句,判断int型的a、b两数的大小
  3. SpringCloud 02_什么是分布式、多线程、高并发?(浅析)
  4. 怎么用计算机知道别人手机密码,怎样才能知道别人家的wifi密码
  5. 向后台接口传递FormData格式的数组对象
  6. 外威客外包网站Elance
  7. 瑞士表商 Swatch 关闭 IT 系统,阻止网络攻击
  8. Struts2中的校验器
  9. 中国工业互联网相关政策汇总分析:“十四五”系列规划助力工业互联网创新融合发展[图]
  10. 中国股市的发展进程,审核制到注册制利国利民
  11. csapp lab环境搭建及lab1wp
  12. Python中的六种基本数据类型
  13. 1:STM32CubeMX配置STM32F103C8T6驱动-下载软件配置RCC,CAN1,USART1
  14. 由键盘输入正数n,要求输出如下2*n+1行的菱形图案。用c语言实现。
  15. EasyCVR前端关闭播放器,后端websocket播放链接依然存在是什么原因?
  16. 树莓派镜像备份/内核编译和更换/EC200U上网
  17. 4种超好用的PS调色小技巧,知道的人不多!
  18. 了解黑帽白帽灰帽之间的区别?
  19. SAP FI/CO Reading Repository
  20. 我整理了三百多篇论文,分享写文献综述的经验

热门文章

  1. 多元统计分析最短距离法_多元统计分析重点
  2. 最短Hamilton路径(状压dp)
  3. 1712: 最大乘积(贪心/dfs)
  4. RMQ问题,加深对ST算法的理解(Sparse Table)
  5. 数字统计2(依然是数组下标法)
  6. 复杂业务如何保证Flutter的高性能高流畅度?
  7. 机器学习将在游戏开发中的6种应用
  8. 芯片里的CPU、GPU、NPU是什么,它们是如何工作的
  9. Java 01背包【动态规划·蓝桥杯练习题】(相信杨超越,相信锦鲤,默默努力,其它的看天意)
  10. alter system flush oracle的缓存