MATLAB中求传递函数代码

article/2025/10/12 6:24:35

今天MATLAB发生了一件非常稀奇的事,采用扩展描述函数法对LLC谐振变换器进行小信号建模时,由于建出传递函数比较复杂,分子是6阶,分母是7阶,然后进行画bode图时,采用s=zpk('s')时,即用零极点表示形式,发现分子自动化简为5阶,分母变成了4阶,虽然低频阶段一样,但是在高频阶段与我本身原始的传递函数非常不同,甚是不解,经查阅资料,这位仁兄也出现了这个问题,https://www.ilovematlab.cn/thread-528695-1-1.html,现在还不知道原因,目测可能是传递函数较为复杂,系统自动忽略了好几阶,但是,这不是闹呢吗?这样咋行,于是,我采用s=tf('s'),bode(w)形式就画出了正确的bode图,然后w1=zpk(w),此处的w化简的零极点形式也对,但就是一开始进行bode(w)不对,下面放图

这是我的计算出来的传递函数

w=[ (1111526900521297989143889.0*s^6 + 1.7437085492236794654793956803548e42*s^5 + 1.8393191660914236041880562807788e50*s^4 + 2.6822260623568432590070035520044e56*s^3 + 5.8021392115569656298893197366969e60*s^2 - 1.35046335131135770412751911276e65*s - 1.7968543059018822109219611230821e66)/(100000000000000000000000000000.0*s^7 + 3.4400078148230019431421169429086e38*s^6 + 4.7842904416012526220714187101147e46*s^5 + 9.1796901337779257182320554823251e53*s^4 + 1.5471453043954728734754557971307e57*s^3 + 1.6524946882706120801498451092459e64*s^2 + 1.6813846183780374328516518788862e66*s + 7.8892607345760140816093303165264e63),

采用s=zpk(‘s’)画出的bode图

在MATLAB运行窗口出现的化简w为,分子5阶,分母4阶

  w=1.8995e-12 (s+1.04e08) (s+1.456e06) (s+3.638e04) (s-1.406e04) (s+13.3)/((s+101.7) (s+0.004692) (s^2 + 1584s + 1.8e10))

这完全没问图,很符合上述的bode图,高频段翘上去了,但是,我的实际传递函数肯定不是这样的

然后接下来将脚本开头的s=zpk('s')换成s=tf('s'),进行bode w,得出下图

 

可以看出高频段完全不同,这才是我实际的bode图

然后进行w1=zpk(w),可得零极点形式的w

   1.1115e-05 (s+1.569e18) (s+1.04e08) (s+1.456e06) (s+3.638e04) (s-1.406e04) (s+13.3)
  -------------------------------------------------------------------------------------
  (s+3.296e09) (s+1.214e08) (s+2.295e07) (s+101.7) (s+0.004692) (s^2 + 645.4s + 1.8e10)

此处可以看出完全没有降阶,完全就是化简出零极点,我实在不明白,开头s=zpk('s')为什么化简出那样的?MATLAB小白一枚,希望大神在下面解惑!感谢!!!!

 


http://chatgpt.dhexx.cn/article/BL7T6tXU.shtml

相关文章

用matlab如何求和,Matlab的求和函数sum如何使用,

Matlab的求和函数sum如何使用如何利用MATLAB的和函数求和,如何使用Matlab的和函数和:1?用[S=sum(A)]求和;2.使用[S=sum(A,dim)]按指定维度求和;3.使用[S=sum(___,outtype)]指定输出结果的数据类型。 本文的操作环境:Windows7系统,MATLAB r 2020 a版本,戴尔G3电脑。 M…

Matlab 特殊函数绘图(求和函数、特殊函数)

Matlab 特殊函数绘图(求和函数) 代码如下: clear all clcD2;%三维 x1linspace(-15,25,500); x2x1;%画X1轴和X2轴 [X1,X2]meshgrid(x1,x2);%形成网格Asqrt(1/D*(X1.^2X2.^2)); Bcos(2*pi*X1)cos(2*pi*X2); Z-20*exp(1)*exp(-0.2*A)-exp(1/D…

#Matlab#函数 计算路程和速度

需求描述: 有一段ODE(Ordinary Differential Equations)模拟得的时序数据。该串数据为有两个维度,一个是时间,另一个是位置信息(x,y)以复数(xiy)形式来展现。需要计算出不同时间所走过的路程(不是位移!!&a…

Matlab: sum的用法、每一行求和、repmat的用法、sum和repmat结合使用减少循环

偶尔会用到关于矩阵元素的求和,总结一下常用的 目录 1、向量求和 2、矩阵求和 (1)默认按列求和,得到一个行向量 (2)求每一行的和 3、sum和repmat一起使用 (1)矩阵A中每一行的…

MATLAB的sum函数

1 a为向量 bsum(a); a表示行向量,b表示行向量求和的值。 2 a为矩阵 bsum(a); a表示矩阵,b表示矩阵每列求和得到的行向量。 3 设定sum函数的参数列表的参数dim,对矩阵每一列或者每一列求和或每一行求和,得到行向量或者列向量。 …

matlab中max函数的使用方法详细介绍(附matlab代码)

一、语句 max 数组的最大元素 1、M max(A) 返回数组的最大元素。 如果 A 是向量,则 max(A) 返回 A 的最大值。 如果 A 为矩阵,则 max(A) 是包含每一列的最大值的行向量。 如果 A 是多维数组,则 max(A) 沿大小不等于 1 的第一个数组维度计…

构建docker镜像时,报错:ERROR: unexpected status code [manifests latest]: 403 Forbidden

1 错误提示 ERROR: unexpected status code [manifests latest]: 403 Forbidden 2 错误原因 出现此原因只需要设置一下docker的setting。 它发生在构建过程中,它是 buildkit 中的一个错误,考虑到 buildkit 仍然不稳定。如果您在 Mac/Windows 上使用 …

Manifest Permissions

概述 每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下。它定义了该应用对于Android系统来说一些非常重要的信息。Android系统需要这些信息才能正常运行该应用。Android程序清单文件主要…

Android Local Manifests机制

Android系统开发的第一步就是获取源码,这时就需要用到repo命令了: repo init,用于初始化repo环境,一个XML格式的manifest.xml文件会生成在本地新建的.repo/中, manifest.xml定义了本地代码的目录结构,以及…

AndroidManifest文件

目录 1、<manifest>元素 2、<application>元素 3、<permission>元素 4、<uses-permission>元素 5、Activity界面组件 6、Service 服务组件 7、Receiver 消息组件 8、Provider 内容组件 9、<intent-filter>元素 AndroidManifest 官方解释…

Android Manifest详解

什么是Android应用程序的构成&#xff1f; Android应用程序的各个组件又是什么&#xff1f; 各个组件和AndroidManifest之间的关系是什么&#xff1f; Android应用程序由松散耦合的组件组成&#xff0c;并使用应用程序Manifest绑定在一起&#xff1b;应用程序的AndroidManife…

Android Studio 项目目录结构

Android 平台的主要组件 使用Android Studio工具开发Android应用程序&#xff0c;创建的工程目录结构比较复杂&#xff0c;开发人员应该清楚各个目录下面放置的是什么东西。工程根目录下有app和Gradle Scripts,app是应重点关注的&#xff0c;app下面的主要目录有manifests、jav…

c# 深拷贝浅拷贝

浅拷贝&#xff1a;仅仅把对象的引用进行拷贝&#xff0c;但是拷贝对象和源对象是引用同一份实体。此时&#xff0c;其中的一个的成员对象的改变都会影响到另外一个成员的对象 深拷贝&#xff1a;指的是拷贝一个对象时&#xff0c;不仅仅把对象的引用进行拷贝&#xff0c;还把…

详细讲解js中的深拷贝与浅拷贝

1 概述 深拷贝与浅拷贝在其它语言中也经常被提及到&#xff0c;在实际项目开发过程中也常常需要区分当前使用的到底是深拷贝还是浅拷贝&#xff0c;有时候在该使用深拷贝的地方&#xff0c;我们使用了浅拷贝&#xff0c;会导致深藏不露的bug。 2 数据类型 在探讨深浅拷贝之前…

js中的浅拷贝与深拷贝

在前端开发中的过程中我们经常要接触到浅拷贝与深拷贝的问题&#xff0c; 下面就对浅拷贝与深拷贝的概念、区别以及其有哪种实现方法来做一个简单的说明。 概念 浅拷贝&#xff1a; 浅拷贝是指&#xff0c;一个新的对象对原始对象的属性值进行精确地拷贝&#xff0c;如果拷贝…

JS之深拷贝与浅拷贝

一、理解 深拷贝 与 浅拷贝 针对于 引用类型(Object,Array,Function) 来说的 浅拷贝&#xff1a;在栈中分配一块新内存&#xff0c;拷贝需要拷贝的值&#xff0c; 对简单数据类型&#xff0c;就是拷贝值&#xff1b;对复杂数据类型&#xff0c;就是拷贝了一份栈内存储的堆内存…

lua踩坑之浅拷贝与深拷贝

文章目录 一、前言二、浅拷贝和深拷贝三、浅拷贝1.拷贝对象为string、number、boolean等基础类型时2.拷贝对象的类型为table类型时 三、深拷贝 一、前言 先来说说&#xff0c;为什么突然谈及到浅拷贝和深拷贝这个问题。因为时间紧任务重&#xff0c;lua零基础参与项目研发&…

解决浅拷贝的五种方式

浅拷贝和深拷贝以及值类型、引用类型概念理解请移步 认识javascript值类型&#xff0c;引用类型及浅拷贝与深拷贝的关系小白gis每周更新与WebGIS设计相关的文章教程&#xff0c;通过在线示例以及demo的方式&#xff0c;介绍Arcgis API、开源gis API的使用方法&#xff0c;帮助学…

iOS-深拷贝和浅拷贝

一、深拷贝(Deep Copy) 和 浅拷贝(Shallow Copy) 1、深拷贝&#xff08;Deep Copy&#xff09;&#xff1a;内容拷贝&#xff0c;拷贝数据到一块新内存区域&#xff0c;指针指向拷贝的数据区 &#xff08;另外创造一个一模一样的对象&#xff0c;新对象跟原对象不共享内存&am…

实现浅拷贝

浅拷贝是指&#xff0c;一个新的对象对原始对象的属性值进行精确地拷贝&#xff0c;如果拷贝的是基本数据类型&#xff0c;拷贝的就是基本数据类型的值&#xff0c;如果是引用数据类型&#xff0c;拷贝的就是内存地址。如果其中一个对象的引用内存地址发生改变&#xff0c;另一…