MATLAB中ss2tf函数用法

news2025/1/12 18:19:23

目录

语法

说明

示例

质点-弹簧系统

双体振荡器


        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:N
    y(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:N
    y(:,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:N
    y(:,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.coloradmin.cn/o/1108821.html

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

相关文章

C语言实现句子中的单词颠倒排序

一、运行结果 二、源代码 # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <assert.h>//实现逆转函数&#xff1b; void reverse(char* left, char* right) {//断言left和right都不能为空&#xff1b;assert(left);assert(right);//循环逆转字母…

电容笔好还是触屏笔好?便宜又好用的电容笔推荐

苹果的电容笔和其他平替的电容笔有很大的区别&#xff0c;那就是普通的电容笔没有重力的压感&#xff0c;只有一种倾斜的压感。但普通的电容笔也可以用于书写&#xff0c;和苹果的Pencil没有太大区别&#xff0c;而且大部分都要200元左右。目前&#xff0c;在我们国内内&#x…

开源Vue盲盒商城4.0源码/网页盲盒源码/前端uniapp后端thinkphp+安装教程/亲测

源码简介&#xff1a; 开源Vue盲盒商城4.0源码&#xff0c;它是打包小程序app的网页盲盒源码,亲测可用&#xff0c;它是采用vueTP5框架开发开源盲盒网站源码&#xff0c;附带了安装教程。 简单测试过了&#xff0c;可以使用&#xff0c;大家可以自测下。 前端uniapp后端think…

免费活动】11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

活动介绍 过去的几年里&#xff0c;外界的风云变幻为我们的生活增添了一些不一样的色彩。在VUCA世界的浪潮里&#xff0c;每一个人都成为自己生活里的冒险家。面对每一次的变化&#xff0c;勇于探索未知&#xff0c;迎接挑战&#xff0c;努力追逐更好的自己。 七月&#xff0…

超声波清洗机靠谱吗?实用性比较高的超声波清洗机推荐

超声波清洗机是否靠谱&#xff0c;这是一个有争议的问题&#xff01;但是先不妨先来了解了解超声波清洗机。 超声波清洗机通过高频振动波来清洁物品表面&#xff0c;这些振动波会在水中形成微小的气泡。气泡不断崩裂&#xff0c;产生强大的冲击力&#xff0c;从而将物品表面的…

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

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

《深入理解java虚拟机 第三版》学习笔记一

第 2 章 Java 内存区域与内存溢出异常 2.2 运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些…

智慧门牌管理系统:省市区县区划数据与国家级开发区共融

文章目录 前言一、行政区划数据的重要性二、支持国家级开发区的发展三、数据基础的重要性 前言 随着科技的飞速发展&#xff0c;我们的生活正在发生日新月异的变化。其中&#xff0c;智慧城市的概念正逐渐成为我们生活中的一部分。智慧城市&#xff0c;顾名思义&#xff0c;运…

PAM从入门到精通(七)

接前一篇文章&#xff1a;PAM从入门到精通&#xff08;六&#xff09; 本文参考&#xff1a; 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构&#xff1a; 更加形象的形式&#xff1a; 五、主要函数详解 5. pam_strerror 概述&#xff1a; 描述…

App出海起量难?传参安装打开获客增长新途径

近年来&#xff0c;在App出海潮越发热烈的背景下&#xff0c;如何适应海外市场并实现“用户增长”与“提高转化”&#xff0c;已成为出海团队需要面临的重大挑战之一。 如何在海外市场短时间内快速起量&#xff1f;这个问题难倒了不少出海创业者&#xff0c;毕竟目前互联网环境…

Ai数字人直播系统SaaS源码大开源,源码独立部署助力中小企业发展!

源码独立部署ai数字人直播系统&#xff0c;如果放在上半年的话没有数百万投资几乎是天方夜谭&#xff0c;连想做个数字人代理商少则投资十万多则数十万才能进得了代理门槛。在此期间&#xff0c;数字人市场一度出现了大批不良企业利用网上下载的视频合成源码二次包装后打着数字…

MySQL - 利用存储过程生成数据

建表语句 create table users (user_id int auto_incrementprimary key,username varchar(255) not null,email varchar(255) not null,password varchar(255) …

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

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

服务器中了mkp勒索病毒怎么处理,mkp勒索病毒解密,数据恢复

10月份以来&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的服务器遭到了mkp勒索病毒攻击&#xff0c;导致企业的服务器数据库被加密&#xff0c;严重影响了企业工作&#xff0c;通过这一波mkp勒索病毒的攻击&#xff0c;云天数据恢复工程师为大家总结了…

01、Python 安装 ,Pycharm 安装 , 简单爬取小视频

目录 安装安装 Python安装 Pycharm 创建项目简单添加文件运行 简单爬取视频1、装模块2、代码 安装 python-3.8.10-amd64.exe – 先安装这个 pycharm-community-2022.2.exe 再安装这个 安装 Python python-3.8.10-amd64.exe 安装&#xff08;这个是其他版本的安装&#xff0…

2020年亚太杯APMCM数学建模大赛A题激光标记舱口轮廓生成求解全过程文档及程序

2020年亚太杯APMCM数学建模大赛 A题 激光标记舱口轮廓生成 原题再现&#xff1a; 激光是20中的一项重要发明世纪&#xff0c;它被称为“最锋利的刀”、“最精确的尺子”和“最不寻常的光”。 激光已越来越多地应用于工业加工&#xff0c; 其中可以是就业在各种加工业务例如作…

STL库——Vector常见使用接口

一、介绍 1. vector是表示可变大小数组的序列容器&#xff0c;就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&#xff0…

报错InitializeComponent报错(提示不存在)

我是c#新手。为了解决这个问题&#xff0c;需要按照以下步骤进行。、 首先&#xff0c;确保项目的类型为WPF应用(.NET Framework)&#xff1b; 然后&#xff0c;代码的位置应正确处于项目的MainWindow.xaml.cs&#xff1b; 最后&#xff0c;将MainWindow.xaml打开&#xff0c;…

FPGA软件【紫光】

软件&#xff1a;编程软件。 注册账号需要用到企业邮箱 可以使用【企业微信】的邮箱 注册需要2~3天&#xff0c;会收到激活邮件 授权&#xff1a; 找到笔记本网卡的MAC&#xff0c; 软件授权选择ADS 提交申请后&#xff0c;需要2~3天等待邮件通知。 使用授权&#xff1a; 文…

最新!两步 永久禁止谷歌浏览器 Google Chrome 自动更新

先放效果图&#xff1a; CSDN这个问题最火的大哥的用了没用 像他这样连浏览器都打不开 为什么要禁止chrome自动更新 看到很多搞笑的大哥&#xff0c;说为啥要禁止&#xff1b; 我觉得最大的原因就是chromedriver跟不上chrome的自动更新&#xff0c;导致我们做selenium爬虫的…