精华内容
下载资源
问答
  • 求传递函数矩阵 matlab实现

    千次阅读 2019-10-27 09:11:35
    最近在看清华大学的博士论文...要用到的公式来自现代控制理论的教材,一般现控书都会给出状态空间表达式到传递函数矩阵是如何推导的,所以就不说是哪一本了 。 matlab代码: clear all %/清空工作区 syms...

    最近在看清华大学的博士论文:马克西姆. 贫预混燃烧振荡的自抗扰控制[D].清华大学,2017.

    其中有一推导如下,自己手推其实很费劲,下面介绍如何用matlab进行符号运算:

     

    要用到的公式来自现代控制理论的教材,一般现控书都会给出状态空间表达式到传递函数矩阵是如何推导的,所以就不说是哪一本了

     

    matlab代码:

     

    clear all %/清空工作区

    syms s beta1 beta2 b0 u y;%/声明要用到的符号变量

    I=eye(2)%/eye函数用于创建一个二阶单位阵

    A=[-beta1 1;-beta2 0];%/照着论文打A矩阵

    B=[b0 beta1;0 beta2];%/同上

    F=inv(s*I-A);%/inv函数用来对矩阵取反

    collect(F*B)%/collect函数是合并同类项

     

     

    运行结果:

     

     

    ans =

     

    [      (b0*s)/(s^2 + beta1*s + beta2), (beta1*s + beta2)/(s^2 + beta1*s + beta2)]

    [ (-b0*beta2)/(s^2 + beta1*s + beta2),         (beta2*s)/(s^2 + beta1*s + beta2)]

     

    可以看到与论文中给出的相同。

    用matlab求传递函数矩阵就是这么简单,本文结束啦。

     

    本文结束啦。

     

    展开全文
  • matlab求传递函数

    千次阅读 2018-10-31 19:16:13
    用 j-scope导出csv文件 用excel将;替换为, 用csvread()导入matlab m=csvread('C:\Users\lgv\Desktop\ggg.csv') 给输出赋值 ...用find()找到输出的第一个和最后一个非零元素的索引值 ... 最后一...
    1. 用 j-scope导出csv文件
    2. 用excel将;替换为,
    3. 用csvread()导入matlab
    m=csvread('C:\Users\lgv\Desktop\ggg.csv')
    
    1. 给输出赋值
    y=m(:,3); y为第三列
    
    1. 用find()找到输出的第一个和最后一个非零元素的索引值
     k1=find(y,1);      第一个
     k2=find(y,1,'last'); 最后一个
    
    1. 重新赋值
    y=y(k1:k2);
    x=m(k1:k2,2);
    
    1. 输入ident进入系统辨识工具箱
    展开全文
  • 给定传递函数的零点,极点以及增益K传递函数

    tf2zp命令

    前几期博客中有涉及到这个命令,这个可以根据传递函数的分子分母系数来求得传递函数的零点,极点以及增益K

    zp2tf

    相反,通过这个命令可以根据零点,极点,增益K求得原传递函数

    EXAMPLE

    1

    • 1

      >> z = [];
      >> p = [-1+2*i;-1-2*i];
      >> K = 10;
      >> [num,den] = zp2tf(z,p,K)
      
      num =
      
           0     0    10
      
      
      den =
      
           1     2     5
      
      >> printsys(num,den,'s')
       
      num/den = 
       
               10
         -------------
         s^2 + 2 s + 5
      
    • 2

      >> z = [0];
      >> p = [-1+2*i;-1-2*i];
      >> K = 10;
      >> [num,den] = zp2tf(z,p,K)
      
      num =
      
           0    10     0
      
      
      den =
      
           1     2     5
      
      >> printsys(num,den,'s')
       
      num/den = 
       
              10 s
         -------------
         s^2 + 2 s + 5
      
    • 3

      >> z = -1;
      >> p = [-2;-4;-8];
      >> K = 12;
      >> [num,den] = zp2tf(z,p,K)
      
      num =
      
           0     0    12    12
      
      
      den =
      
           1    14    56    64
      
      >> printsys(num,den,'s')
       
      num/den = 
       
                 12 s + 12
         ------------------------
         s^3 + 14 s^2 + 56 s + 64
      

    Notes

    需要注意的是,我们在输入零点以及极点的时候,每个要以分号分隔,也就是说,每一个解表示一列。

    展开全文
  • MATLAB中求传递函数代码

    千次阅读 2019-06-22 18:41:09
    今天MATLAB发生了一件非常稀奇的事,采用扩展描述函数法对LLC谐振变换器进行小信号建模时,由于建出传递函数比较复杂,分子是6阶,分母是7阶,然后进行画bode图时,采用s=zpk('s')时,即用零极点表示形式,发现分子...

    今天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小白一枚,希望大神在下面解惑!感谢!!!!

     

    展开全文
  • 设计PI参数编程时,想用matlab求传递函数在某一频率处的增益,这样在编程时可以一口气将内环与外环传递函数设计出来而不需要设计出来内环之后先看看长什么,然后手动输入增益,再设计外环。但是转了一圈没发现...
  • 1.已知控制系统函数的传递函数如下: 试用 MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。 (1)建立系统的传递函数模型 (2)零极点增益模型 ...
  • 用MATLAB求传递函数的单位阶跃响应并绘制出曲线
  • 用MATLAB求传递函数的零点,极点以及增益K
  • MATLAB由传递函数框图传递函数

    千次阅读 2020-06-02 21:41:37
    保存为文件simlinktf.mdl 接着写如下代码: clear all; k1 = 2.5; k2 = 2; k3 = 1.5; [a b c d] = linmod(‘simlinktf’);...Sys = tf(minreal(ss(a,b,c,d))) ...Transfer function from input 1 to output… ...
  • 用MATLAB求传递函数的零点,极点以及增益K
  • 使用MATLAB求传递函数的展开式,并且出留数,极数,直接项
  • 传递函数

    千次阅读 2019-05-06 10:13:07
    开环传递函数 B(s)E(s)\frac{B(s)}{E(s)}E(s)B(s)​ 闭环传递函数C(s)R(s)\frac{C(s)}{R(s)}R(s)C(s)​ 前向通道传递函数C(s)E(s)\frac{C(s)}{E(s)}E(s)C(s)​
  • MATLAB 传递函数的相关函数

    千次阅读 多人点赞 2019-06-17 23:15:57
    1. 连续时间传递函数 1.1 多项式形式传递函数 num = 1;...G = tf(num, den) % 求传递函数 在matlab中,运行上述代码,可以得到传递函数 1.2 因式乘积形式(零极点)传递函数 z = [1]; % 零点 ...
  • 函数说明: R = subs(S, new) 利用new的值代替符号表达式S中的默认符号。... % 求函数X的一阶导数 Y = diff(X,n); % 求函数X的n阶导数 Y = diff(X,dim); % 求函数X关于变量dim的偏导数 Y = diff(X,n,dim);
  • Matlab怎样传递函数转换成差分方程

    千次阅读 多人点赞 2019-12-23 21:14:50
    最近在做毕业设计,自己的控制对象描述形式是传递函数,而书里看到的大部份被控对象都是差分方程的形式,就想有没有这种转换的方法,网上搜索了一圈,总结如下。 步骤一,先建立传递函数方程 首先给定一个连续的传递...
  • 本文包含以下内容: 一、系统稳定性概念 二、系统稳定性判断 一、系统稳定性概念 系统加入扰动后偏离了原来的状态,当把干扰...将系统的传递函数写成部分分式展开的形式: K(s)=A1s−a1+A2s−a2+A3s−a3+...+Ans−an K
  • 复阻抗法 求解 传递函数

    万次阅读 多人点赞 2018-11-26 19:24:15
    1、复阻抗法求传递函数 电阻的传递函数 :RRR 电容的传递函数 : 1CS\frac 1{CS}CS1​ 电感的传递函数 : LSLSLS 2、并联电路 在此之所以没有写串联电路,是因为串联电路太简单了,就是简单的复阻抗想加即可。并联...
  • 该系统的传递函数表达式子。   2 求解   2.1 相关函数 状态空间表达式的传递函数用ss2tf函数来求解 函数原型 [b,a] = ss2tf(A,B,C,D,iu)   功能 将状态空间表达式转换成传递函数的形式   参数...
  • Matlab 由状态方程系统传递函数矩阵代码:  已知状态方程的系数矩阵如下: syms s GG gg; A=[0 1 0;0 0 1;-3 -1 -2]; B=[1 0; 0 1;1 1]; C=[1 1 1]; 利用自控原理的定理传递函数的一般式: GG=C*inv...
  • 1 传递函数作为参数 function hello(){ console.log("hello"); } function say(func){ func(); } say(hello); 注意:say(hello)不能写成say(hello()),后者会直接调用hello()函数并返回一个undefined...
  • 看到信号流图那一章节,不禁问自己,MATLAB那么强大,怎么帮助我们便捷地通过信号流图传递函数呢。 以老胡《自动控制原理(第六版)》P53页例题2-15为例子 信号流图已经给出,我们直入主题。 Solve函数最...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,476,563
精华内容 590,625
关键字:

怎样求传递函数