matlab学习006-使用matlab绘出系统的冲激响应和阶跃响应波形并求其冲激响应的数值解

目录

题目

1,绘出系统的冲激响应和阶跃响应波形

1)基础

2)效果

3)代码

2,求出t=0.5s,1s,1.5s,2s时系统冲激响应的数值解。

 1)基础

2)效果

​☀

3)代码


题目

已知描述某连续系统的微分方程为:y’’(t)+5y’(t)+6y(t)=3f’(t)+2f(t)


1,绘出系统的冲激响应和阶跃响应波形

1)基础

  • 冲激响应是在输入为单位冲激信号时的系统输出。
  • 阶跃响应是在输入为单位阶跃信号时的系统输出。
  • 传递函数 :​零初始条件下线性系统响应量(即输出y(t))的拉普拉斯变换Y(s)(或z变换)Y(z)与激励量(即输入x(t))的拉普拉斯变换X(s)之比。记作G(s)=Y(s)/X(s),传递函数是描述线性系统动态特性的基本数学工具之一。
  • MATLAB中的impulse函数可以得到冲激响应的时间序列数据

为了绘制连续系统的冲激响应和阶跃响应波形,需要先确定系统的传递函数。对于给定的微分方程y''(t) + 5y'(t) + 6y(t) = 3f'(t) + 2f(t)可以转化为传递函数的形式:

  1. 首先,对输入f(t)和输出y(t)进行拉普拉斯变换→F(s)和Y(s)。
  2. 将微风方程转换为:s^2Y(s) + 5sY(s) + 6Y(s) = 3sF(s) + 2*F(s)。
  3. 之后整理得:Y(s) = (3sF(s) + 2F(s)) / (s^2 + 5s + 6)。
  4. 然后,对分子和分母进行因式分解。
  5. 最后利用部分分式展开的方法得到系统的传递函数。(在MATLAB中,tf函数可以直接用来创建传递函数。)

impulse函数: 

 step函数:


 

2)效果

3)代码

% 定义系统的传递函数  
fenzi = [3 2]; % 分子多项式系数  
fenmu = [1 5 6]; % 分母多项式系数  
sys = tf(fenzi, fenmu); % 创建传递函数对象  % 计算冲激响应  
[ y_impulse,t_impulse] = impulse(sys);  %时间向量t_impulse和响应向量y_impulse% 绘制冲激响应波形  
figure;  
subplot(2,1,1);
plot(t_impulse, y_impulse);  
title('冲激响应波形');  
xlabel('时间 (t)');  
ylabel('响应 (y)');  
grid on;  % 计算阶跃响应  
[ y_step,t_step] = step(sys);  % 绘制阶跃响应波形 
subplot(2,1,2);
plot(t_step, y_step);  
title('阶跃响应波形');  
xlabel('时间 (t)');  
ylabel('响应 (y)');  
grid on;

2,求出t=0.5s,1s,1.5s,2s时系统冲激响应的数值解。

 1)基础

可以使用插值或者查找的方法来获取特定时间点的冲激响应值。由于impulse函数返回的时间向量和响应向量通常是等间隔的,我们可以直接通过索引来查找对应时间点的值。

步骤:

  1. 首先定义想要查询的时间点t_query,并使用interp1函数和'nearest'选项来查找这些时间点对应的最近冲激响应值。

注意点:

  1. 如果t_impulse的时间间隔不够小,使用'nearest'选项可能会导致一些误差。
  2. 在这种情况下,可能需要使用更精确的插值方法,如'linear''spline'
  3. 对于大多数控制系统分析,如果t_impulse的时间向量足够密集,'nearest'选项通常就足够了。

  interp1函数:(interp字母后面带着的是数字1)

 num2str函数:

 

2)效果

 

 

3)代码

 

% 定义系统的传递函数  
fenzi = [3 2]; % 分子多项式系数  
fenmu = [1 5 6]; % 分母多项式系数  
sys = tf(fenzi, fenmu); % 创建传递函数对象  
% 计算冲激响应  
[ y_impulse,t_impulse] = impulse(sys);  %响应向量y_impulse和时间向量t_impulse% 定义想要查询的时间点
t_query = [0.5 1 1.5 2];
% 查找对应时间点的冲激响应值
% 由于t_impulse和y_impulse是等间隔的,可以使用插值或者查找最近点的方法
% 这里假设t_impulse的间隔足够小,可以直接查找最近点
y_query = interp1(t_impulse, y_impulse, t_query, 'nearest');% 显示结果
disp(['在 t = 0.5s, 1s, 1.5s, 2s 时的冲激响应分别为: ' num2str(y_query)]);

有问题请在评论区留言,1天8h在线。 

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

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

相关文章

react之渲染与props

第一章描述用户界面 将Props 传递给组件 React 组件使用 props 来互相通信。每个父组件都可以提供 props 给它的子组件,从而将一些信息传递给它。Props 可能会让你想起 HTML 属性,但你可以通过它们传递任何 JavaScript 值,包括对象、数组和…

《苍穹外卖》Day07部分知识点记录

一、菜品缓存 减少查询数据库的次数,优化性能 客户端: package com.sky.controller.user;import com.sky.constant.StatusConstant; import com.sky.entity.Dish; import com.sky.result.Result; import com.sky.service.DishService; import com.sky…

网络安全实训Day16

网络空间安全实训-渗透测试 漏洞扫描 定义 扫描和探测目标范围内的主机存在哪些安全漏洞,或扫描目标范围内的那些主机存在某个指定的漏洞 漏扫工具 AWVS APPScan MSF 使用MSF扫描漏洞并利用 1.搜索需要的攻击模块 search ms17-010 2.使用攻击模块 use 模块名称…

苏州相融大厦安装部署火眼视频图像早期火灾报警系统

2024年3月,苏州高铁数金公司、火眼消防技术有限公司与招商积余物业联合在相融大厦进行了火眼视频图像早期火灾报警系统的部署和测试工作,测试效果良好。体现招商积余对持续推进消防安全工作的高度重视。 相融大厦是火眼消防总部注册和苏州研发中心所在地…

OpenCV直方图计算

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV实现直方图均衡 下一篇 :OpenCV系列文章目录(持续更新中......) 在本教程中,您将学习如何: 使用 OpenCV 函数 cv::split 将图像划分…

网络安全实训Day24(End)

写在前面 并没有完整上完四个星期,老师已经趁着清明节假期的东风跑掉了。可以很明显地看出这次持续了“四个星期”实训的知识体系并不完整,内容也只能算是一次基础的“复习”。更多的内容还是靠自己继续自学吧。 网络空间安全实训-渗透测试 文件包含攻击…

用 C 语言进行大模型推理:探索 llama2.c 仓库(一)

文章目录 前提有关huggingface社区chinese-baby-llama2llama2.cexport.py读取模型信息重建模型对重建出的模型初始化权重导出run.c要求的.bin文件 tokenizer.py 一些思考参考链接 前提 最近发现了一个只用c语言就可以推理大模型的仓库llama2.c,作者是openAI的员工。…

把私有数据接入 LLMs:应用程序轻松集成 | 开源日报 No.236

run-llama/llama_index Stars: 29.9k License: MIT llama_index 是用于 LLM 应用程序的数据框架。 该项目解决了如何最佳地利用私有数据增强 LLMs,并提供以下工具: 提供数据连接器,以摄取现有的数据源和各种格式(API、PDF、文档…

vite加密打包插件(vite-plugin-javascript-obfuscator)选项(option)详解

本文主要介绍vite加密打包插件(vite-plugin-javascript-obfuscator)选项(option)。 目录 一、选项(option)1. compact2. config3. controlFlowFlattening4. controlFlowFlatteningThreshold5. deadCodeInjection6. deadCodeInjectionThreshold7. debugProtection8.debugProtect…

【每日刷题】Day23

【每日刷题】Day23 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 138. 随机链表的复制 - 力扣(LeetCode) 2. 链表的回文结构_牛客题霸_牛客网 …

MySQL从入门到高级 --- 2.DDL基本操作

文章目录 第二章:2.基本操作 - DDL2.1 数据库的常用操作创建数据库选择要操作的数据库删除数据库修改数据库编码 2.2 表结构的常用操作创建表格式查看当前数据库的所有表名称查看指定某个表的创建语句查看表结构删除表 2.3 修改表结构添加列修改列名和类型删除列修改…

python之excel加工处理小案例一则

一、工具用途 工作中,需要对各类excel进行加工处理,当表和字段比较多时,关联条件又有多个,每次通过execl的vlookup之类的关联公式手工可以解决工作需求,但一般耗时较长,且人工统计匹配也存在出错的情况。 …

cnpm安装

npm install -g cnpm --registryhttps://registry.npmmirror.com # 注册模块镜像 npm set registry https://registry.npmmirror.com // node-gyp 编译依赖的 node 源码镜像 npm set disturl https://npmmirror.com/dist // 清空缓存 npm cache clean --force // 安装c…

《深入浅出.NET框架设计与实现》笔记6.3——ASP.NET Core应用程序多种运行模式之三——桌面应用程序

ASP.NET Core应用程序可以在多种运行模式下运行,包括自宿主(Self-Hosting)、IIS服务承载、桌面应用程序、服务承载。 因此选择和时的模式很重要。 桌面应用程序 ASP.NET Core也可以用于构建跨平台的桌面应用程序,利用跨平台界面…

【VUE】提升大数据量场景下el-table组件的性能

提升大数据量场景下el-table组件的性能 在现代Web应用程序开发中&#xff0c;使用Vue和Element UI快速构建高效的用户界面是非常普遍的做法。特别是对于需要展示大量数据的表格组件&#xff08;<el-table>&#xff09;&#xff0c;性能优化成为了不可忽视的关键。本文将…

C#面:泛型有哪些常见约束

C# 泛型提供了一种在编译时对类型进行参数化的方式&#xff0c;可以增加代码的灵活性和重用性。在使用泛型时&#xff0c;可以对泛型参数进行约束&#xff0c;以限制可以传递给泛型类型或方法的类型。 常见的泛型约束有以下几种&#xff1a; 类型约束&#xff08;class&#…

【Web应用技术基础】JavaScript学习手册(9、11、12、13、16)

目录 JavaScript学习手册九&#xff1a;字符串 第1关&#xff1a;查找字符串的位置 第2关&#xff1a;求指定位置的字符 第3关&#xff1a;字符串的截取 第4关&#xff1a;大小写转换 第5关&#xff1a;字符串的分割 JavaScript学习手册十一&#xff1a;JSON 第1关&…

C语言:实现N的阶乘

递归&#xff1a; #include<stdio.h> long long Fet(int n) { if (n < 1) return 1; else return n * Fet(n - 1); } int main() { int n 0; scanf_s("%d", &n); int r Fet(n); printf("%d",r); ret…

深入理解操作系统与计算机体系结构

文章目录 操作系统(Operator System)为什么要有操作系统操作系统是如何进行管理的为什么说操作系统是安全&#xff0c;稳定&#xff0c;高效的理解系统调用和库函数 操作系统(Operator System) 概念&#xff1a; 操作系统&#xff08;Operating System&#xff0c;简称OS&…