主要内容

线性(LTI)型号

什么是植物?

通常,控制工程师通过开发他们想要控制的动态系统的数学描述来开始。要控制的系统被称为a植物。作为工厂的一个例子,本节使用DC电机。该部分开发描述具有惯性负载的DC电动机的机电特性的微分方程。然后,它向您展示如何使用控制系统工具箱™功能基于这些方程构建线性模型。

线性模型表示

您可以使用“控制系统”工具箱功能来创建以下模型表示:

  • 表格的状态空间模型(SS)

    D. X D. T. = 一种 X + B. y = C X + D.

    在哪里一种B.C, 和D.是适当尺寸的矩阵,X是个状态矢量,和y输入和输出向量。

  • 例如,传递函数(TF),

    H S. = S. + 2 S. 2 + S. + 10.

  • 例如,零极化增益(ZPK)模型,

    H Z. = 3. Z. + 1 + j Z. + 1 - j Z. + 0.2 Z. + 0.1

  • 频率响应数据(FRD)模型,由系统频率响应的采样测量组成。例如,您可以在FRD模型中存储实验收集的频率响应数据。

    笔记

    FRD模型的设计是一个专门的主题,这个主题没有地址。看频率响应数据(FRD)模型讨论这个主题。

Siso示例:直流电机

DC电动机驱动惯性负载的简单模型显示了负载的角度率, ω. T. ,作为输出和施加电压, υ 一种 P. P. T. 作为输入。该示例的最终目标是通过改变施加的电压来控制角速率。该图显示了DC电机的简单模型。

驱动惯性负载的直流电动机的简单模型

在该模型中,电机本身的动态是理想化的;例如,假设磁场是恒定的。电路的电阻由R和电枢的自电感通过L表示。如果您不熟悉DC电机建模的基础知识,请在物理建模上咨询任何基本文本。通过这种简单的模型和基本的物理定律,可以开发描述该机电系统行为的微分方程。在该示例中,电势和机械力之间的关系是法拉第的感应法和Ampère的律法,用于穿过磁场的导体上的力。

数学推导

扭矩 τ. 在电动机的轴上看到与电流成比例一世由施加的电压引起,

τ. T. = K. m 一世 T.

在哪里K.m,电枢常数与电动机的物理性质有关,例如磁场强度,导体线圈周围的匝数等等。背面(诱导)电动势, υ E. m F ,与角速率成比例的电压 ω. 在轴上看到,

υ E. m F T. = K. B. ω. T.

在哪里K.B.,EMF常数,也取决于电动机的某些物理性质。

电动机方程的机械部分是使用牛顿的法律来源的,这使得惯性负载j乘以角速率的衍生物等于电机轴的所有扭矩的总和。结果是这个等式,

j D. W. D. T. = σ. τ. 一世 = - K. F ω. T. + K. m 一世 T.

在哪里 K. F ω. 是粘性摩擦的线性近似。

最后,可以描述电动机方程的电气部分

υ 一种 P. P. T. - υ E. m F T. = L. D. 一世 D. T. + R. 一世 T.

或者,解决施加的电压并替换后部EMF,

υ 一种 P. P. T. = L. D. 一世 D. T. + R. 一世 T. + K. B. ω. T.

该方程序列导致一组两个微分方程描述了电动机的行为,首先是诱导电流的,

D. 一世 D. T. = - R. L. 一世 T. - K. B. L. ω. T. + 1 L. υ 一种 P. P. T.

而第二个是由此产生的角速率,

D. ω. D. T. = - 1 j K. F ω. T. + 1 j K. m 一世 T.

直流电机的状态空间方程

考虑到最后一节中派生的两个微分方程,您现在可以开发DC电机作为动态系统的状态表示。当前一世和角度率ω.是系统的两个状态。施加的电压, υ 一种 P. P. ,是系统的输入,以及角速度ω.是输出。

D. D. T. [ 一世 ω. ] = [ - R. L. - K. B. L. K. m j - K. F j ] [ 一世 ω. ] + [ 1 L. 0. ] υ 一种 P. P. T.

直流电机示例的状态空间表示

y T. = [ 0. 1 ] [ 一世 ω. ] + [ 0. ] υ 一种 P. P. T.

建立SISO模型

开发一套后描述您的工厂的微分方程,您可以使用简单的命令构建SISO模型。以下部分讨论

  • 构建直流电机的状态空间模型

  • 在模型表示之间转换

  • 创建传递函数和零/极/增益模型

构建直流电机的状态空间模型

输入DC电机的各种参数的以下标称值。

r = 2.0%欧姆L = 0.5%Henrys km = .015%扭矩常数Kb = .015%EMF常数Kf = 0.2%NMS J = 0.02%KG.M ^ 2

鉴于这些值,您可以使用该值构造数值状态空间表示SS.功能。

a = [-r / l -kb / l;KM / J -KF / J] B = [1 / L;0];c = [0 1];d = [0];sys_dc = ss(a,b,c,d)

这些命令返回以下结果:

A = x1 x2 x1 -4 -0.03 x2 0.75 -10 b = u1 x1 2 x2 0 c = x1 x2 y1 0 1 d = u1 y1 0

在模型表示之间转换

既然您有DC电机的状态空间表示,您可以转换为其他模型表示,包括传输函数(TF)和零/极/增益(ZPK)模型。

传递函数表示。您可以使用TF.从状态空间表示转换为传递函数。例如,使用此代码转换为DC电机的传输功能表示。

sys_tf = tf(sys_dc)
转移功能:1.5 --------------- S ^ 2 + 14 s + 40.02

零/极/增益表示。同样,ZPK.函数从状态空间转换为零/极/增益格式的传输函数表示。使用此代码从状态空间表示转换为直流电机的零/杆/增益表。

sys_zpk = zpk(sys_dc)零/杆/增益:1.5 -----------------(s + 4.004)(s + 9.996)

笔记

状态空间表示最适合数值计算。为了最高精度,在组合模型之前转换为状态空间,避免传递函数和零/极/增益表示,除了模型规范和检查。

构建传递函数和零/极/增益模型

在DC电动机示例中,状态空间方法产生一组代表模型的矩阵。如果选择不同的方法,可以使用相应的模型使用TF.ZPK.SS., 要么FRD.

sys = tf(num,deN)%转移函数sys = zpk(z,p,k)%零/极/增益sys = ss(a,b,c,d)%状态空间sys = frd(响应,频率)%频率响应数据

例如,您可以通过使用此代码指定分号和分母来创建传输功能。

sys_tf = tf(1.5,[14 40.02])转移功能:1.5 --------------- S ^ 2 + 14 s + 40.02

或者,如果要直接创建DC电机的传输功能,请使用这些命令。

s = tf('s');sys_tf = 1.5 /(s ^ 2 + 14 * s + 40.02)

这些命令导致此传输功能。

转移功能:1.5 ----------------- S ^ 2 + 14 s + 40.02

要构建零/极/增益模型,请使用此命令。

sys_zpk = zpk([],[ -  9.996 -4.004],1.5)

此命令返回以下零/极/增益表示。

零/杆/增益:1.5 -----------------(S + 9.996)(S + 4.004)

构建离散时间系统

控制系统工具箱软件为离散时间系统提供全面支持。万博1manbetx您可以以与您创建模拟系统的方式相同的方式创建离散系统;唯一的区别是您必须为您构建的任何型号指定示例时间段。例如,

sys_disc = tf(1,[1],.01);

以传输功能格式创建SISO模型。

传递功能:1 ----- Z + 1采样时间:0.01

将时间延迟添加到离散时间模型

您可以通过在构建模型时指定输入延迟,输出延迟或I / O延迟来增加时间延迟到离散时间模型。时间延迟必须是表示样本时间的倍数的非负整数。例如,

sys_delay = tf(1,[1 1],0.01,'iodelay',5)

返回一个系统,I / O延迟为5秒。

传递功能:1 Z ^( -  5)* ----- Z + 1采样时间:0.01

将延迟添加到线性模型

您可以通过在构建模型时指定输入延迟,输出延迟或I / O延迟来向线性模型添加时间延迟。例如,要将I / O延迟添加到DC电机,请使用此代码。

sys_tfdelay = tf(1.5,[14 40.02],'iodelay',0.05)

此命令构造DC电机传输功能,但增加了0.05秒延迟。

转移功能:1.5 exp(-0.05 * s)* ---------------- S ^ 2 + 14 s + 40.02

有关将时间延迟添加到模型的更多信息,请参阅线性系统的时间延迟

LTI对象

为方便起见,控制系统工具箱软件使用自定义数据结构LTI对象存储与模型相关的数据。例如,变量sys_dc.为直流电机示例创建称为SS对象。还有TF,ZPK和FRD对象分别用于传递函数,零/极/增益和频率数据响应模型。四个LTI对象封装了模型数据,使您能够以单个实体为线性系统操作,而不是作为向量或矩阵的集合。

要查看LTI对象包含的内容,请使用得到命令。此代码描述了内容sys_dc.从直流电机示例。

获取(SYS_DC)A:[2×2双] B:[2×1双] C:[0 1] D:0 e:[]缩放:0 stateName:{2×1个单元} stateUnit:{2×1Cell} InternalDelay:[0×1双]输入:0 OutputDelay:0 TS:0 oneUnit:'秒'InputName:{''} InputUnit:{''} InputGroup:[1×1结构] OutputName:{''}OutputUnit:{''} OutputGroup:[1×1 struct]注意:[0×1字符串] userdata:[]名称:''samplinggrid:[1×1 struct]

您可以使用LTI对象中包含的数据命令;有关说明,请参阅控制系统工具箱在线参考页面得到

设置或检索LTI模型属性的另一种方便方法是使用点表示法直接访问它们。例如,如果要访问的值一种矩阵,而不是使用得到,你可以键入

sys_dc.a.

在Matlab.®迅速的。这个表示法返回一种矩阵。

ANS = -4.0000 -0.0300 0.7500 -10.0000

同样,如果要更改值的值一种矩阵,您可以直接这样做,因为此代码显示。

a_new = [-4.5 -0.05;0.8 -12.0];sys_dc.a = a_new;

也可以看看

||

相关例子

更多关于