首页 > 其他分享 >传递函数变换到状态空间

传递函数变换到状态空间

时间:2023-09-30 09:22:06浏览次数:29  
标签:状态 begin end 变换 传递函数 bmatrix frac cases dot

1. 分子为1的传递函数

例:

\[G(s)=\frac{1}{s^3+a_2s^2+a_1s+a_0} \]

首先写成输入输出关系:

\[(s^3+a_2s^2+a_1s+a_0)Y(s)=U(s) \]

对应的微分方程:

\[\dddot{y}(t)+a_2\ddot y(t)+a_1\dot y(t)+a_0y(t)=u(t)\\ \dddot{y}(t)=-a_2\ddot y(t)-a_1\dot y(t)-a_0y(t)+u(t)\\ \]

令:

\[x_1=y,\ x_2=\dot y,\ x_3=\ddot y \]

得到状态空间模型:

\[\begin{array}{l} \dot x_1=x_2\\ \dot x_2 = x_3\\ \dot x_3 = -a_0x_1-a_1x_2-a_2x_3+u \end{array} \Rightarrow \begin{cases} \begin{bmatrix} \dot x_1\\\dot x_2\\\dot x_3 \end{bmatrix}= \begin{bmatrix} 0&1&0\\0&0&1\\ -a_0&-a_1&-a_2 \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix}+ \begin{bmatrix} 0\\0\\1 \end{bmatrix}u\\ y= \begin{bmatrix} 1&0&0 \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix} \end{cases} \]

模拟图:

2. 分子不为1的传递函数

例:

\[G(s)=\frac{b_2s^2+b_1s+b_0}{s^3+a_2s^2+a_1s+a_0}=\frac{b(s)}{a(s)} \]

可以看成:

\[Y(s)=\frac{b(s)}{a(s)}U(s)=b(s)\left [\frac{1}{a(s)}U(s) \right ]=b(s)Y_1(s) \]

对于

\[Y_1(s)=\frac{1}{a(s)}U(s) \]

可直接写出

\[G_1(s)=\frac{1}{a(s)}=\frac{1}{s^3+a_2s^2+a_1s+a_0}\\ \Downarrow\\ \begin{cases} \begin{bmatrix} \dot x_1\\ \dot x_2\\ \dot x_3 \end{bmatrix}= \begin{bmatrix} 0&1&0\\0&0&1\\ -a_0&-a_1&-a_2 \end{bmatrix} \begin{bmatrix} x_1\\ x_2\\ x_3 \end{bmatrix}+ \begin{bmatrix} 0\\0\\ 1 \end{bmatrix}u\\ y_1=x_1 \end{cases} \]

对于

\[Y(s)=b(s)Y_1(s)=b(s)X_1(s)=b_2s^2X_1(s)+b_1sX_1(s)+b_0X_1(s) \]

可得

\[y = b_2\ddot x_1+b_1 \dot x_1 +b_0 x_1\\ y=b_2x_3+b_1x_2+b_0x_1 \]

状态空间模型:

\[\begin{cases} \begin{bmatrix} \dot x_1\\ \dot x_2\\ \dot x_3 \end{bmatrix}= \begin{bmatrix} 0&1&0\\0&0&1\\ -a_0&-a_1&-a_2 \end{bmatrix} \begin{bmatrix} x_1\\ x_2\\ x_3 \end{bmatrix}+ \begin{bmatrix} 0\\0\\ 1 \end{bmatrix}u\\ y=\begin{bmatrix} b_0&b_1&b_2 \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix} \end{cases} \]

模拟图:

标签:状态,begin,end,变换,传递函数,bmatrix,frac,cases,dot
From: https://www.cnblogs.com/conpi/p/17737611.html

相关文章

  • Go每日一库之134:fsm(基有限状态机库)
    开发中,我们经常会遇到这种情况,服务模块有多种状态,它们有一定的顺序,先后执行,逐步切换。这时,fsm这个库可以帮助我们更好的管理多个状态。fsm库,它主要基于两个FSM实现,增加了golang版本的实现:JavascriptFiniteStateMachine,https://github.com/jakesgordon/javascript-state-ma......
  • 卷积导向快速傅里叶变换(FFT/NTT)教程
    1Forewords卷积,但不止卷积-FFT漫谈先有FT,再有DFT,才有FFT时频转换是最初的用途发现单位根优秀性质,JamesCooley,JohnTukey发明现代FFT加速DFT,但此前相似的发现早已有之后来将DFT与卷积定理联系,FFT才被用于计算多项式乘法复数运算精度误差推动了NTT的发......
  • Linux任务的状态机制
    task的生命周期Linux内核调度就是管理CPU硬件资源,同时决定多任务系统的每一个task应该什么时候上CPU,上CPU运行多久的一个机制。因此调度的机制涉及到两个方面一个是task侧,一个是CPU侧,任务是被管理的对象之一,会随着调度和运行改变状态。因此从task的角度来理解调度机制我认为是一......
  • Kubernetes 上的数据已跨越鸿沟:在 GKE 上运行有状态应用程序的案例
    Kubernetes是当今云原生开发的事实上的标准。长期以来,Kubernetes主要与无状态应用程序相关,例如Web和批处理应用程序。然而,与大多数事物一样,Kubernetes也在不断发展。如今,我们看到Kubernetes上有状态应用程序的数量呈指数级增长。事实上,自2019年以来,在GoogleKubernetesE......
  • selenium 元素 是否存在 是否选中 是否启用状态
    #判断元素是否......#导包fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromtimeimportsleep#定义类classGetEle:def__init__(self,driver):self.driver=driverdefget_e(self,loc):e=driver.find_el......
  • Kubernetes 上的数据已跨越鸿沟:在 GKE 上运行有状态应用程序的案例
    Kubernetes是当今云原生开发的事实上的标准。长期以来,Kubernetes主要与无状态应用程序相关,例如Web和批处理应用程序。然而,与大多数事物一样,Kubernetes也在不断发展。如今,我们看到Kubernetes上有状态应用程序的数量呈指数级增长。事实上,自2019年以来,在GoogleKubernetes......
  • CCF第三十一次计算机软件能力认证202309-1坐标变换(其二) (暴力求解法,80分)
    代码如下此算法是暴力求解算法,时间复杂度O(mn),只能得80分,而且代码在模拟系统里一直提交错误(评判系统应该有bug),但在本地可以正常运行*#include<stdio.h>#include<stdlib.h>#include<math.h>typedefstructOperation{/*操作结点*/inttype;doublevalu......
  • http状态返回码对谷歌优化的影响
    HTTP状态代码是由托管网站的服务器在对客户端(如浏览器或抓取工具)发出的请求作出响应时生成的。每个HTTP状态代码都有不同的含义,但请求结果往往相同。例如,有多个状态代码会发出重定向信号,但它们的结果是相同的。SearchConsole会为 4xx–5xx 范围内的状态代码和失败的重定向(......
  • 力扣刷题笔记-06 N字形变换
    06N字形变换不要混日子,小心日子把你混了对于题目的理解比如说,我给一个字符串,LEETCODE,行数为3,然后按照N字形排列,就是下面这个排列方式。排列完之后正常读取,结果就是LCETOEED。这叫做N字形变换。这个例子里给的行数就是3,往下排三行,然后往右往上走。chatGPT思路边界情况/特......
  • Python 变换单词顺序组成新的一句话
    需求描述:现在给出几个单词需要不断变换单词的顺序组成新的一句话importitertoolsimportpandasaspd#定义项目列表items=['dog','apple','China','cat','pig']#生成排列,使用permutations()函数得到一个迭代器,其中包含了所有可能的排列组合。perm=list(it......