MATLAB中ss2tf函数用法

目录

语法

说明

示例

质点-弹簧系统

双体振荡器


        ss2tf函数的功能是将状态空间表示形式转换为传递函数。

语法

[b,a] = ss2tf(A,B,C,D)
[b,a] = ss2tf(A,B,C,D,ni)

说明

        [b,a] = ss2tf(A,B,C,D) 将方程组的状态空间表示形式转换为等同的传递函数。ss2tf 返回连续时间方程组的拉普拉斯变换传递函数和离散时间方程组的 Z 变换传递函数。

        [b,a] = ss2tf(A,B,C,D,ni) 返回当具有多个输入的方程组的第 ni 个输入受单位冲激影响时所生成的传递函数。

示例

质点-弹簧系统

        一维离散时间震荡系统由单位质点 m 通过一根单位弹性常量弹簧连接到墙壁构成。传感器以 Fs=5 Hz 对质量的加速度 a 取样。

        生成 50 个时间样本。定义采样间隔 Δt=1/Fs。

Fs = 5;
dt = 1/Fs;
N = 50;
t = dt*(0:N-1);

        振荡器可以通过状态空间方程描述。

        其中 是状态向量,r 和 v 分别是质点的位置和速度,而矩阵

A = [cos(dt) sin(dt);-sin(dt) cos(dt)];
B = [1-cos(dt);sin(dt)];
C = [-1 0];
D = 1;

        系统使用正方向的单位冲激进行刺激。使用该状态空间模型计算系统从全零的初始状态开始的时间演进。

u = [1 zeros(1,N-1)];x = [0;0];
for k = 1:Ny(k) = C*x + D*u(k);x = A*x + B*u(k);
end

以时间函数形式绘制质量的加速度。

stem(t,y,'filled')
xlabel('t')

如图所示:

        使用传递函数 H(z) 过滤输入以计算时间依赖加速度。绘制结果。

[b,a] = ss2tf(A,B,C,D);
yt = filter(b,a,u);stem(t,yt,'filled')
xlabel('t')

如图所示:

        系统的传递函数包含一个解析式:

使用表达式过滤输入。绘制响应。

bf = [1 -(1+cos(dt)) cos(dt)];
af = [1 -2*cos(dt) 1];
yf = filter(bf,af,u);stem(t,yf,'filled')
xlabel('t')

如图所示:

        所有这三种情况下的结果都相同。

双体振荡器

        理想的一维振荡系统由位于两面墙壁间的两个单位质点 m1 和 m2 组成。每个质点通过一根单位弹性常量弹簧连接到最近的墙壁。另外一根弹簧连接这两个质点。传感器以 Fs=16 Hz 的频率对 a1 和 a2(质点的加速度)采样。

        将总测量时间指定为 16 秒。定义采样间隔 Δt=1/Fs。

Fs = 16;
dt = 1/Fs;
N = 257;
t = dt*(0:N-1);

        系统可以由状态空间模型描述

        其中 是状态向量,ri 和 vi 分别是第 i 个质点的位置和速度。输入向量 ,输出向量 。状态空间矩阵为

连续时间状态空间矩阵为

I 表示合适大小的单位矩阵。

Ac = [0 1 0 0; -2 0 1 0; 0 0 0 1; 1 0 -2 0];
A = expm(Ac*dt);
Bc = [0 0; 1 0; 0 0; 0 1];
B = Ac\(A-eye(4))*Bc;
C = [-2 0 1 0; 1 0 -2 0];
D = eye(2);

        第一个质点 m1 接收正向的单位冲激。

ux = [1 zeros(1,N-1)];
u0 = zeros(1,N);
u = [ux;u0];

        使用该模型计算系统从全零的初始状态开始的时间演进。

x = [0 0 0 0]';
y = zeros(2,N);for k = 1:Ny(:,k) = C*x + D*u(:,k);x = A*x + B*u(:,k);
end

        以时间函数形式绘制两个质点的加速度。

stem(t,y','.')
xlabel('t')
legend('a_1','a_2')
title('Mass 1 Excited')
grid

如图所示:

        将系统转换为其传递函数表示形式。求得对第一个质点的正单位冲激刺激的系统响应。

[b1,a1] = ss2tf(A,B,C,D,1);
y1u1 = filter(b1(1,:),a1,ux);
y1u2 = filter(b1(2,:),a1,ux);

        绘制结果。传递函数提供与状态空间模型相同的响应。

stem(t,[y1u1;y1u2]','.')
xlabel('t')
legend('a_1','a_2')
title('Mass 1 Excited')
grid

如图所示:

        系统将重置为其初始配置。现在,其他质点 m2 接收正向单位冲激。计算该系统的时间演进。

u = [u0;ux];x = [0;0;0;0];
for k = 1:Ny(:,k) = C*x + D*u(:,k);x = A*x + B*u(:,k);
end

        绘制加速度。将交换各个质点的响应。

stem(t,y','.')
xlabel('t')
legend('a_1','a_2')
title('Mass 2 Excited')
grid

如图所示:

        求得对第二个质点的正单位冲激刺激的系统响应。

[b2,a2] = ss2tf(A,B,C,D,2);
y2u1 = filter(b2(1,:),a2,ux);
y2u2 = filter(b2(2,:),a2,ux);

        绘制结果。传递函数提供与状态空间模型相同的响应。

stem(t,[y2u1;y2u2]','.')
xlabel('t')
legend('a_1','a_2')
title('Mass 2 Excited')
grid

如图所示:

参数说明

A — 状态矩阵

        状态矩阵,指定为矩阵。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则 A 为 n×n。

B — 输入-状态矩阵

        输入-状态矩阵,指定为矩阵。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则B为 n×p。

C — 状态-输出矩阵

        状态-输出矩阵,指定为矩阵。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则C为 q×n。

D — 馈通矩阵

        馈通矩阵,指定为矩阵。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则D为 q×p。

ni — 输入索引

        输入索引,指定为一个整数标量。如果方程组具有 p 个输入,请使用带尾部参数 ni = 1, …, p 的 ss2tf 计算对应用于第 ni 个输入的单位冲激的响应。

b — 传递函数分子系数

        传递函数分子系数,以向量或矩阵的形式返回。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则对于每个输入,b 为 q×(n + 1)。系数按 s 或 z 的幂的降序返回。

a — 传递函数分母系数

        传递函数分母系数,以向量的形式返回。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则对于每个输入,a 为 1×(n + 1)。系数按 s 或 z 的幂的降序返回。

传递函数

  • 对于离散时间系统,状态空间矩阵通过

        与状态向量 x、输入 u 和输出 y 相关。

        传递函数是方程组的冲激响应的 Z 变换。可以按状态空间矩阵表示形式将其表示为

  • 对于连续时间方程组,状态空间矩阵通过

    与状态向量 x、输入 u 和输出 y 相关。

    传递函数是方程组的冲激响应的拉普拉斯变换。可以按状态空间矩阵表示形式将其表示为

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

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

相关文章

lark 发送图片消息

1. 需求 2. 实现 2.1 获取数据源 # -*- coding: utf-8 -*- import os import json import requests import pandas as pd from pathlib import PurePath, Path import plotly.express as px from requests_toolbelt import MultipartEncoderdef get_data():dt [2023-10-01, …

为什么嵌入通常优于TF-IDF:探索NLP的力量

塔曼纳 一、说明 自然语言处理(NLP)是计算机科学的一个领域,涉及人类语言的处理和分析。它用于各种应用程序,例如聊天机器人、情绪分析、语音识别等。NLP 中的重要任务之一是文本分类,我们根据文本的内容将文本分类为不…

基于VCO的OTA稳定性分析的零交叉时差模型研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Python 网络爬虫

爬虫原理 计算机一次Request请求和服务器端的Response回应,即实现了网络连接。 爬虫需要做两件事:模拟计算机对服务器发起Request请求。 接受服务器的Response内容并解析、提取所需的信息。 多页面爬虫流程 ​​​​​​​多页面网页爬虫流程

网络安全是什么?一文认识网络安全

一、网络安全 1.概念 网络安全从其本质上讲就是网络上的信息安全,指网络系统的硬件、软件及数据受到保护。不遭受破坏、更改、泄露,系统可靠正常地运行,网络服务不中断。 (1)基本特征 网络安全根据其本质的界定&#…

RK3588开发笔记(二):基于方案商提供sdk搭建引入mpp和sdk的宿主机交叉编译Qt5.12.10环境

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133915614 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

Nginx的代理和负载均衡

一、nginx的代理方式 1.1 七层代理 七层代理:基于http协议,对请求的内容进行处理,然后转发到后端服务器 七层代理是客户端请求代理服务器,由代理服务器转发客户端的http请求,转发到内部的服务器进行处理(服务器可以是…

神经网络中的反向传播:综合指南

塔曼纳 一、说明 反向传播是人工神经网络 (ANN) 中用于训练深度学习模型的流行算法。它是一种监督学习技术,用于调整网络中神经元的权重,以最小化预测输出和实际输出之间的误差。 在神经网络中,反向传播是计算损失函数…

7.继承与多态 对象村的优质生活

7.1 民法亲属篇:继承(inheritance) 了解继承 在设计继承时,你会把共同的程序代码放在某个类中,然后告诉其他的类说此类是它们的父类。当某个类继承另一个类的时候,也就是子类继承自父类。以Java的方式说&…

E055-web安全应用-File Inclusion文件包含漏洞初级

课程名称: E055-web安全应用-File Inclusion文件包含漏洞初级 课程分类: web安全应用 实验等级: 中级 任务场景: 【任务场景】 小王接到磐石公司的邀请,对该公司旗下网站进行安全检测,经过一番检查发现了该论坛的某个页面存…

RK3568平台开发系列讲解(驱动篇)Linux 中断实验

🚀返回专栏总目录 文章目录 一、中断处理函数二、request_irq 函数三、中断号四、free_irq 函数五、中断使能与禁止函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Linux 内核提供了完善的中断框架,我们只需要申请中断,然后注册中断处理函数即可,使用非常方便…

Python自动化运维实战——Telnetlib和Netmiko自动化管理网络设备

❤️博客主页: iknow181🔥系列专栏: Python、JavaSE、JavaWeb、CCNP🎉欢迎大家点赞👍收藏⭐评论✍ 目录 一、前言 二、准备工作 三、Telnetlib Telnetlib介绍 Telnetlib模块及操作方法介绍 Telnetlib配置设备 T…

无人机遥控中应用的2.4GHz无线芯片

无人驾驶飞机简称“无人机”,英文缩写为“UAV”,是利用无线电遥控设备和自备的程序控制装置操纵的不载人飞机,或者由车载计算机完全地或间歇地自主地操作。是一种不需要人操控就能够自主飞行的飞行器,它可以执行多种任务&#xff…

温湿度监测技术又进化了,这个操作太牛了!

无论是在家庭、医疗、农业、制造业,还是在物流和食品行业,精确的温湿度监控对于确保安全、质量和效率都至关重要。 客户案例 医疗行业 在医疗行业,温湿度监控对于存储药品、生物样本和医疗设备至关重要。山东某医院引入了泛地缘科技推出的温湿…

顿号在键盘上怎么打?教你4个输入方法!

“朋友们,我正在准备一篇期末论文,但是文章里的顿号我一直输入不了。顿号在键盘上应该怎么输入呀?谁能教教我呢?非常感谢!” 在使用电脑编辑文档时,我们可能经常需要输入顿号。但有些朋友还不知道顿号在键盘…

性能测试-JMeter分布式测试及其详细步骤

性能测试概要 性能测试是软件测试中的一种,它可以衡量系统的稳定性、扩展性、可靠性、速度和资源使用。它可以发现性能瓶颈,确保能满足业务需求。很多系统都需要做性能测试,如Web应用、数据库和操作系统等。 性能测试种类非常多&#xff0c…

Pycharm中终端不显示虚拟环境名解决方法

文章目录 一、问题说明:二、解决方法:三、重启Pycharm 一、问题说明: Pycharm中打开项目配置完需要的虚拟环境后,在Terminal(终端)中无法切换及显示当前需要运行代码的虚拟环境。 比如以下一种情况&#…

数据可视化素材分享 | 数十图表、无数模板

很多人在后台求分享报表、源代码,其实何必这么麻烦,在奥威BI数据可视化平台上点击即可获得大量的可视化素材,如数十种可视化图表,适用于不同分析场景;又如大量不同主题的BI数据可视化报表模板,套用后替换数…

商城免费搭建之java商城 开源java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

如何在C程序中使用libcurl库下载网页内容

概述 爬虫是一种自动获取网页内容的程序,它可以用于数据采集、信息分析、网站监测等多种场景。在C语言中,有一个非常强大和灵活的库可以用于实现爬虫功能,那就是libcurl。libcurl是一个支持多种协议和平台的网络传输库,它提供了一…