【现代控制系统】从状态方程导出微分方程

从状态方程导出微分方程

2023年6月20日



1. 基本方法

状态空间表达式:
x ˙ ( t ) = A x ( t ) + B u ( t ) y ( t ) = C x ( t ) + D u ( t ) \begin{aligned} &\dot{ x}(t)={ A }{ x }(t)+{ B }{ u } (t) \\ &{ y }(t)={ C } { x }(t)+{ D } { u }(t) \end{aligned} x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)
矩阵 D D D的列数和矩阵 B B B相等,矩阵 D D D的行数和矩阵 C C C相等。
拉氏变换下:
s X ( s ) − X ( 0 ) = A X ( s ) + B U ( s ) Y ( s ) = C X ( s ) + D U ( s ) \begin{align*} s{ X}(s)-{ X}(0)=&{ A }{ X }(s)+{ B }{ U } (s)\\ { Y }(s)=&{ C } { X }(s)+{ D } { U }(s) \end{align*} sX(s)X(0)=Y(s)=AX(s)+BU(s)CX(s)+DU(s)
零状态下可以推出:
Y ( s ) = [ C ( s I − A ) − 1 B + D ] U ( s ) = G ( s ) U ( s ) \begin{align*} { Y}(s)=&[{ C}(s{ I}-{ A})^{-1}{ B}+{ D}]{ U}(s) \\ \\ =&{ G}(s){ U}(s) \end{align*} Y(s)==[C(sIA)1B+D]U(s)G(s)U(s)
所以传递函数矩阵:
G ( s ) = C ( s I − A ) − 1 B + D { G}(s)={ C}(s{ I}-{ A})^{-1}{ B}+{ D} G(s)=C(sIA)1B+D

clc;clear
A = [0 1 0; 0 -4 3; -1 -1 -2]; % 一个MIMO的系统示例
B = [0 0; 1 0; 0 1];
C = [1 0 0; 0 0 1];
D = [0 0 ;0 0];syms s
sI = s * eye(size(A)); 
Gs = C*((sI-A)^-1)*B+D  % 求传递函数矩阵的公式
pretty(Gs)

代码对于SISO的系统也能使用。
matlab提供了一个现成的函数,ss2tf,可以直接得到系数,

[N1, D1] = ss2tf(A, B, C, D, 1) % 第一个输入对应的 y1 和 y2 的传递函数

注意这里得到的是相当于 u 2 ( s ) = 0 u_2(s)=0 u2(s)=0 时候 y 1 ( s ) y_1(s) y1(s) y 2 ( s ) y_2(s) y2(s)的传递函数,N1第一行是 y 1 ( s ) y_1(s) y1(s)传递函数分母的系数,第二行是 y 2 ( s ) y_2(s) y2(s)传递函数分母的系数。
特征方程:

poly2sym(D1, s)

题一嘴,这个函数如果第一个输入的列数大于一,会按先列后行的方式分配系数。


2. 电路与符号函数

上面的代码也可以推导符号函数,注意符号函数除法分母的括号不要漏写:

syms s R C1 C2 L
A = [-1/(C1*R), 0, -1/C1; 0, 0, 1/C2; 1/L, -1/L, 0]
B = [1/(C1*R); 0; 0];
C = [1, -1, 0];
D = 0;
sI = s * eye(size(A)); 
Gs = C*((sI-A)^-1)*B+D;  % 求传递函数矩阵的公式
pretty(simplify(Gs))

在这里插入图片描述

一般有几个电容+电感,就有几个状态变量,即几阶电路。电容的电压、电感的电流常作为状态变量。但当两个电容并联,或者两个电感串联时,可以合并成一个状态变量。


下链


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/650347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Javaweb开发的二手图书零售系统详细设计【附源码】

基于Javaweb开发的二手图书零售系统详细设计【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统…

使用 fdisk 和 mkfs 创建并挂载新硬盘

在Linux系统中,管理磁盘空间是一项关键的任务。有时,我们需要在系统中添加新的硬盘并将其用于特定的用途,比如存储日志文件。本文将介绍如何在Linux系统上使用fdisk和mkfs工具创建、格式化和挂载新硬盘。 1. 确认可用磁盘 首先,…

java的==运算符和equals详解

①chatgpt的解释 在Java中,和equals都是用于比较两个对象的操作符,但它们的行为和用途有所不同。 操作符: 对于基本数据类型,比较的是它们的值是否相等。例如,int a 5; int b 5; System.out.println(a b); // 输出t…

内网穿透natapp使用教程(Linux)

我的使用场景:在家访问学校服务器,由于不在一个局域网,所以需要使用内网穿透,我使用的是natapp。需要在有局域网的时候做好以下步骤。 (natapp官网:https://natapp.cn/) 1. 下载客户端 &#x…

springboot入门2

学习目标: 了解数据库配置加密方法,数据库连接池,mybatis-paginationInterceptor分页,pagehelper分页常用功能 学习内容: 1、mybatis plus配置加密 1.1、生成加密配置 package sccba.example;import com.baomidou…

模式设计:工厂模式

工厂设计模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。工厂模式属于创建型模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离。 …

盲盒App小程序开发:引领未来购物新潮流

随着科技的不断发展,我们的购物方式也在不断改变。近年来,盲盒购物逐渐成为了一种新型的消费模式,受到了广大消费者的热烈欢迎。为了满足消费者的需求,越来越多的企业开始涉足盲盒App的开发。本文将探讨盲盒App开发的意义、前景以…

使用Docker搭建开发环境:MySQL、Redis、MongoDB和Selenium Grid

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何支持Docker的平台上。在本篇博客中,我们将详细介绍如何用Docker安装MySQL、Redis、MongoDB和Selenium Grid,并给出相应…

[嵌入式软件][启蒙篇][仿真平台] STM32F103实现IIC控制OLED屏幕

上一篇:[嵌入式软件][启蒙篇][仿真平台] STM32F103实现LED、按键 [嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集 [嵌入式软件][启蒙篇][仿真平台]STM32F103实现定时器 [嵌入式软件][启蒙篇][仿真平台] STM32F103实现IIC控制OLED屏幕 文章目…

【GitHub项目推荐--国外名校AI教程】【转载】

这个开源项目搜集了 YouTube 上优质的机器学习教程,方向包括机器学习、深度学习、计算机视觉、自然语言处理、无监督学习等等。 开源地址:https://github.com/dair-ai/ML-YouTube-Courses

[260. 只出现一次的数字 III](C语言题解)(位运算)(力扣)

> Problem: [260. 只出现一次的数字 III](260. 只出现一次的数字 III - 力扣(LeetCode)) # 思路 > 想到数组中只有一个数只出现了一次的解法:**所有数异或,最后答案就是那个只出现一次的数**,该题只需将两个不…

Kubernetes成本优化

云原生可以帮助团队更精细化利用资源,但如果缺乏工具的帮助,很难采取适当的措施优化资源的使用。本文介绍了若干用于可视化Kubernetes资源使用情况的工具,并且可以自定义策略优化资源使用,实现更好的成本优化。原文: Kubernetes C…

新概念英语第二册(42)上

【New words and expressions】生词和短语(13) musical adj. 精通音乐的 market n. 市场,集市 snake charmer 玩蛇者(通常借音乐控制) pipe …

《WebKit 技术内幕》学习之十五(5):Web前端的未来

5 Crosswalk项目 Crosswalk项目是由英特尔公司发起的一个开源项目,该项目基于WebKit(Blink)和Chromium等开源项目打造,其目的是提供一个跨不同操作系统的Web运行环境,包括Android、Tizen、Linux、Windows、MacOS等众多…

c语言-文件的读写操作(上)

文章目录 前言一、文件基础1.1 文件的分类1.2 文件路径和文件名 二、文件的打开和关闭2.1 文件指针2.2 文件的打开和关闭 三、文件顺序读写3.1 fputc()和fgetc()3.2 fputs()和fgets()3.3 fprintf()和fscanf()3.4 fwrite()和fread()3.4 对比一组函数 总结 前言 本篇文章介绍c语…

python使用PaddleOCR实现《命名实体识别项目》OCR(已实现)(ai领域必看,简单易用)

1.简介: PaddleOCR是飞桨(PaddlePaddle)推出的一个端到端的光学字符识别开源工具集,支持中文、英文、数字以及特殊符号等各种类型的文字检测、识别和词语整体识别。该工具集使用PaddlePaddle深度学习框架技术,提供了多…

Likeshop多商户商城源码系统,支持二开

在电商行业高速发展的当下,拥有一套功能强大、易于操作的开源商城系统至关重要。Likeshop多商户商城系统正是这样一款集H5、小程序、独立APP于一体的开源电商解决方案,助力商家实现智能营销。 一、产品简介 Likeshop多商户商城系统为商家提供了丰富的营…

Spring Boot 中 Service 层依赖注入问题

目录 问题描述 产生错误 问题原因 解决方法 手动注入方法 1、使用工具集 hutool,引入 Maven 依赖 2、编写 SpringUtil 工具类 问题描述 Controller 层方法为 static 静态,引入 Service 层时使用 Autowired 注解自动装配,Controller层方…

C#用 DateAndTime.DateAdd方法和DateTime.Add(TimeSpan) 方法分别添加一段时间间隔

目录 一、基本方法 1.用 DateAndTime.DateAdd方法添加一段时间间隔 2.用DateTime.Add方法添加一段时间间隔 二、实例 1.实例1:用 DateAndTime.DateAdd方法 2.实例2:用DateTime.Add方法 一、基本方法 1.用 DateAndTime.DateAdd方法添加一段时间间隔…

CentOS7 安装Nginx,网站部署、请求转发

文章目录 前言1. 安装2. 启动3. 开机启动4. 检查Nginx服务的状态5. 简单部署项目6. 检查Nginx配置7. 重新加载Nginx配置启动错误错误分析端口权限解决方法完整部署项目nginx.conf 配置文件证书配置、请求转发前言 Nginx是一款高性能的Web服务器和反向代理服务器,被广泛用于构…