精华内容
下载资源
问答
  • matlab/simulink模型,用于演示图片所示的传递函数。为传递函数初学者提供实例。
  • 在MATLAB中,用Simulink搭建一个二阶传递函数模型

    万次阅读 多人点赞 2019-07-03 00:30:45
    开始建模:在simulink中搭建二阶传递函数模型2.1 从simulink库中添加传递函数模块2.2 设置传递函数参数2.3 添加输入和输出组件2.4 运行模型,并使用示波器查看3. 参考文献 1. 模型准备:二阶传递函数模型 1.1 二阶...

    1. 模型准备:二阶传递函数模型

    1.1 二阶传递函数模型

    1.1.1 时域模型

    在这里插入图片描述

    1.1.2 频域模型

    在这里插入图片描述

    1.2 二阶传递函数公式和参数

    G(s)=KeTdsωn2s2+2ζωns+ωn2 G(s)=\frac{K e^{-T_{d} s} \omega_{n}^{2}}{s^{2}+2 \zeta \omega_{n} s+\omega_{n}^{2}}

    K\mathrm{K} ωn\omega_{\mathrm{n}} ζ\zeta
    0.0720571 0.893308 1.378866

    此时传递函数为:
    G(s)=0.07205710.8933082s2+21.3788660.893308s+0.8933082 G(s)=\frac{0.0720571*0.893308^2}{s^{2}+2*1.378866*0.893308s+0.893308^2}
    即:
    G(s)=0.0575s2+2.4635s+0.7980 G(s)=\frac{0.0575}{s^{2}+2.4635s+0.7980}


    2. 开始建模:在simulink中搭建二阶传递函数模型

    2.1 从simulink库中添加传递函数模块

    打开MATLAB,在命令行里输入:

    simulink
    

    启动simulink。

    新建一个空白的文件,然后打开Simulink Library Browser,点击左侧目录Simulink/Continous
    在这里插入图片描述
    Transfer Fcn拖拽到工作空间中

    2.2 设置传递函数参数

    双击该模块,根据传递函数的参数进行设置
    G(s)=0.0575s2+2.4635s+0.7980 G(s)=\frac{0.0575}{s^{2}+2.4635s+0.7980}

    在这里插入图片描述

    • Numerator中填入分子的系数[0.0575]

    • Denominator中填入分母的系数[1 2.4635 0.7980]

    确认应用:

    在这里插入图片描述

    2.3 添加输入和输出组件

    • Source中分别添加阶跃响应,正弦等信号发生器到输入
    • Sink中添加若干个Scope到输出
    • 然后搜索switch,添加两个开关,便于观察
    • 在信号发生器到示波器中间添加一个Gain,适当调整大小到0.01便于在一个示波器中观察两个波形

    在这里插入图片描述

    2.4 运行模型,并使用示波器查看

    切换输入源为阶跃响应,然后双击示波器,点击运行按钮,观察波形

    说明:蓝色为原始信号(缩小了100倍),黄色为经过传递函数之后的输出信号

    在这里插入图片描述

    双击开关,切换一组输入源为正弦波,将时间调整为30s,继续观察

    在这里插入图片描述

    3. 参考文献

    1. 通过传递函数为线性系统建模 - Simulink - MathWorks 中国
      https://ww2.mathworks.cn/help/simulink/slref/transferfcn.html

    2. Model linear system by transfer function - Simulink - MathWorks China
      https://ww2.mathworks.cn/help/simulink/slref/transferfcn.html?lang=en

    展开全文
  • 今天对Simulink模块库中连续模块库(Continuous)里的传递函数统一讲解哦,其中包含:Transfer Fcn,State-Space,Zero-Pole三个模块。 1.模型建立 打开MATLAB2014a,如上图运行Simulink库,弹出Simulink ...

    今天对Simulink模块库中连续模块库(Continuous)里的传递函数统一讲解哦,其中包含:Transfer Fcn,State-Space,Zero-Pole三个模块。

    1.模型建立

    图片

    打开MATLAB2014a,如上图运行Simulink库,弹出Simulink Library Blocks,点击Continuous,将会出现如下图所示,TransferFcn传递函数,State-Spce状态空间和Zero-Pole零极点三种传函模式。

    图片

    在Simulink Library Blocks中按下图所示新建slx模型(2012版之前为mdl)。

    图片

    按下保持图标,选择要存放的文件夹,将其命名CHzhuanhua。

    图片

    将State-Space添加进CHzhuanhua.slx。

    1)如下图Add to PIDkzq载入其中。

    2)鼠标左击PID Controller按住拖动到其中。

     

    图片

    同理将Transfer Fcn添加进CHzhuanhua.slx。

     

    图片

    同理将Zero-Pole添加进CHzhuanhua.slx。

    图片

    完善PID Controller系统控制模型,通过Sources→Signal Generator加入信号发生器。

    图片

    通过Commonly Used Blocks加入Scope观测装置。

    图片

    为了对PID控制信号前后进行对比,通过Commonly Used Blocks→Mux加入信号混合模块。

    图片

    完善后的系统仿真模型如下所示:

    图片

    2、参数详解

    主要对Transfer Fcn、State-Spce和Zero-Pole进行等效转化。

    A、Signal Generator设置

    打开Signal Generator,根据Wave form设置波形为sine正弦波。

    设置Amplitude幅值为1,Frequency频率为1Hz。

    同时设置仿真时间为10s,这样10内将会有10个正弦信号。

    图片

    B、Transfer Fcn选择

    打开Transfer Fcn对控制对象进行设计。

    图片

    如上所示,Numerator coefficient为传函分子,Denominator coefficient为传函分母,设计分子为[1],分母为[1 1 1]。

    C、传递函数相互转化

    1)Transfer Fcn转化为其他

    图片

    通过如下实现Transfer Fcn→State-Spce。

    sys=tf(num,den);

    G=ss(sys)

    Matlab 运行程序如下:

    num=[1 4];

    den=[1 3 2];

    sys=tf(num,den);

    G=ss(sys)

    G =

     a =

          x1  x2

      x1  -3  -2

      x2  1   0

     b =

           u1

      x1   2

      x2   0

     c =

          x1     x2

      y1  0.5    2

     d =

           u1

      y1   0

    Continuous-time state-spacemodel.

    通过如下实现Transfer Fcn→Zero-Pole。

    sys=tf(num,den);

    G=zpk(sys)

    Matlab 运行程序如下:

    num=[1 4];

    den=[1 3 2];

    sys=tf(num,den);

    G=zpk(sys)

    G =

       (s+4)

     -----------

     (s+2) (s+1)

    Continuous-time zero/pole/gainmodel.

    2)State-Spce转化为其他

    图片

    通过如下实现State-Spce→Transfer Fcn。

    sys=ss(A,B,C,D);

    G=tf(sys)

    Matlab 运行程序如下:

    A=[-3,-2;1,0];
           B=[2;0];
           C=[0.5,2];

    D=0;

    sys=ss(A,B,C,D);

    G=tf(sys)

    G =

         s + 4

     -------------

      s^2+ 3 s + 2

    Continuous-time transfer function.

    通过如下实现State-Spce→Zero-Pole。

    sys=ss(A,B,C,D);

    G=zpk(sys)

    Matlab 运行程序如下:

    A=[-3,-2;1,0];
           B=[2;0];
           C=[0.5,2];

    D=0;

    sys=ss(A,B,C,D);

    G=zpk(sys)

    G =

        (s+4)

     -----------

     (s+2) (s+1)

    Continuous-time zero/pole/gain model.

    3)Zero-Pole转化为其他

    图片

    通过如下实现Zero-Pole→Transfer Fcn。

    sys=zpk(z,p,k);
    
    G=tf(sys)

    Matlab 运行程序如下:

    z=-4;

    p=[-2,-1];

    k=1;

    sys=zpk(z,p,k);

    G=tf(sys)

    G =

         s + 4

     -------------

      s^2+ 3 s + 2

    Continuous-time transfer function.

    通过如下实现Zero-Pole→State-Spce。

    sys=zpk(z,p,k);

    G=ss(sys)

    Matlab 运行程序如下:

    z=-4;
    
    p=[-2,-1];
    
    k=1;
    
    sys=zpk(z,p,k);
    
    G=ss(sys)

    G =

      a =

               x1      x2

      x1     -1  1.732

      x2      0     -2

      b =

            u1

      x1   0

      x2   2

      c =

              x1         x2

      y1   0.866    0.5

      d =

             u1

      y1     0

    Continuous-time state-space model.

    3.仿真实验

    根据第二部分3)求出的参数,分别进行设置。

    取z=-4;p=[-2,-1];k=1;如下所示。

    图片

    取A=[-1,1.732; 0,-2];B=[0;2];C=[0.866,0.5];D=0;如下所示。

    图片

    取num=[1,4];den=[1,3,2];如下图所示。

     

    图片

    构造好的系统如下图所示。

     

    图片

    最终得到仿真图如下所示。由此可知TF、SS和zp三个波形一直,在图中与原始信号对比中可以看出三条线完全叠加在一起,可以看出经过上述公式求出的传递函数、状态空间和零、极点模型完全等效。

     

    图片

    同时也看出经过控制对象后的原始信号不能很好的跟随原始信号,此时可以增加PID控制,具体操作参看本人另一篇PID控制器的具体详解。

    到此就结束了,希望大家动手搭建好模型,所以提升哦。

    展开全文
  • MATLAB/simulink控制系统之传递函数模型(0基础)

    万次阅读 多人点赞 2019-02-22 13:50:41
    传递函数:当初始条件为零时,系统输出量(响应函数)的拉氏变换表达式与系统输入量(驱动函数)的拉氏变换表达式之比,称为该系统的传递函数,其一般表达式为: 特征多项式:传递函数的分母为系统的特征多项式;...

    目录

    5.3 传递函数模型

    5.3.1 概述

    5.3.2 模型建立

    5.3.3 MATLAB中


    5.3 传递函数模型

    5.3.1 概述

    1)概念

    传递函数:当初始条件为零时,系统输出量(响应函数)的拉氏变换表达式与系统输入量(驱动函数)的拉氏变换表达式之比,称为该系统的传递函数,其一般表达式为:

    特征多项式:传递函数的分母为系统的特征多项式;极点:特征多项式等于0组成特征方程的根;阶数:特征多项式的最高阶数n;根轨迹增益

    拉普拉斯变换:可采用传递函数代替常系数微分方程来描述系统的特性。这就为采用直观和简便的图解方法来确定控制系统的整个特性、分析控制系统的运动过程,以及提供控制系统调整的可能性。

    (2)算子阻抗法

    参考:https://download.csdn.net/download/qq_38693598/10969179

    https://wenku.baidu.com/view/f11c8023915f804d2b16c1ef.html?sxts=1550723655119

    模型

    算子阻抗

    输入为电流,输出位电压

    电阻:R

     

    电容:

     

    电感:Ls

    (3)典型电路环节

    • 比例环节

     

    • 惯性环节

    • 理想积分环节
    • 实际积分环节
    • 理想微分环节
    • 一阶微分环节
    • 二阶微分环节
    • 实际微分环节
    • 二阶振荡环节
    • 延迟环节

    K=Rf/Ri;T=Rf*Cf,积分/微分时间常数,也叫再调时间;

    ωn=1/T称为无阻尼自然振荡角频率;ζ-阻尼比,当0<ζ<1二阶振荡环节 具有一对实部为负的共轭复数极点,其单位阶跃响应曲线是衰减振荡;(时域分析会用到)

    (4)串/并/反馈结构图

    • 串联连接

    • 并联连接

    • 反馈连接

    闭环系统闭环传递函数

    图中+对应正反馈,-对应负反馈,传递函数中正好相反

    如把反馈通道在A点处断开

    闭环系统开环传递函数:

    此时,闭环系统闭环传递函数(单位反馈)为

    当H(s)=1时

     

    单位反馈

    • 带扰动闭环连接

    ①求C(s)对R(s)的传递函数,令N(s)=0得

    ②求C(s)对N(s)的传递函数,令R(s)=0得

     

    ③求C(s)对R(s)和N(s)的传递函数,

    若G1(s)G2(s)H(s)>>1,负反馈能有效的抑制被反馈回路所包围的干扰

    ④求E(s)对R(s)的传递函数,即令N(s)=0,比较点内‘-’为串联‘-1’增益

     

    ⑤求E(s)对N(s)的传递函数,即令R(s)=0,

    等效变换的方法:

    信号引出点前移乘、后移除;信号比较点前移除、后移乘、互换合并不变

    (5)零/极点分布图

    将传递函数的零、极点表示在复平面上的图形称为传递函数的零、极点分布图。图中,零点用“O”表示,极点用“×”表示。

    5.3.2 模型建立

    (1)步骤

    传递函数列写大致步骤:

    1. 列写系统的微分方程
    2. 消去中间变量
    3. 在零初始条件下取拉氏变换
    4. 求输出与输入拉氏变换之比
    1. 列写系统中各元件的微分方程
    2. 在零初始条件下求拉氏变换
    3.  整理拉氏变换后的方程组,消去中间变量
    4. 整理成传递函数的形式

    (2)拉氏变换

    原函数

    象函数

    单位脉冲函数δ(t)

    1

    单位阶跃函数1(t)

    \frac{1}{s}

    K常数函数

    \frac{k}{s}

    t 单位斜坡函数

    \frac{1}{s^2}

    t^{n}

    \frac{n!}{{s^{n+1}}}

    e^{-at}

    \frac{1}{s+a}

    sinωt

    \frac{\omega }{s^2+\omega ^2}

    cosωt

    \frac{s }{s^2+\omega ^2}​​​​​​​

    微分\frac{\partial f(t)}{\partial t}

    s*F(s)

    积分\int{f(t)dt}^{}

    \frac{1}{s}F(s)​​​​​​​

    衰减定律e^{-at}f(t)

    F(s+a)

    5.3.3 MATLAB中模型建立

    多项式传递函数

    tf/tfdata

    num=[13 4 0 6];%多项式分子各项系数降次排列

    den=[5 3 16 1 7];%多项式分母各项系数降次排列

    sys=tf(num,den);%建立传递函数模型

    或s=tf('s'); sys=10/(s*(0.5*s+1)*(0.1*s+1));%此处不能用sym代替tf,

    %[num,den]=tfdata(sys,’v’);%返回传递函数sys的分子分母多项式

    零极点式:zpk/zpkdata

    z=[-3];%输入零点%注意s系数为1%必须是向量,无点则空向量

    p=[-2 -4 -5];%输入极点

    k=7;%输入增益

    sys=zpk(z,p,k); %建立传递函数模型

    %[z,p,k]=zpkdata(sys,’v’);%返回传递函数sys的零极点/增益多项式

    相关函数

    因子式conv

    功能:实现2个多项式降次系数乘积运算

    num=4*conv([1 3],conv([1 7 6]),conv([1 7 6])));

    den=conv([1 0],conv([1 1],conv([1 1],conv([1 1],[1 3 0 5]))));

    sys=tf(num,den);

    部分分式展开函数residue ( )

    功能:对两个多项式的比进行部分展开,

    [r, p, k]=residue(num, den);

    %求B(s)/A(s)的部分分式展开式,向量b和a是按s降幂排列的多项式系数,给出部分分式展开式的留数r、极点p和余数k:

    模型转换

    多项式/零极点式

    zpk至tf:[num, den]=zp2tf(z, p, k);%注意前[]后()

    tf至zpk:[z, p, k]=tf2zp(num, den)

    展开全文
  • simulink 自定义函数S-function的字符串传递方法

    1、Embedded MATLAB不支持unicode,因此不支持中文

    2、输出函数,把字符串转换为整型数组

    function y = fcn()
    %#eml
    u='F:\1\1.jpg';
    y = int32(u);

    3、接收函数把整型数组转换为字符串

    function fcn(u)
    %#eml
    eml.extrinsic('imshow');
    nLen=length(u);       %计算字符串长度
    sFile=zeros(1,nLen);%初始化字符串
    sFile=char(u);          %整型数组转换为字符串
    imshow(sFile);

    展开全文
  • 该仿真模型源于课程设计,该模型仿真再现了传递函数通过负反馈校正环节实现了对阶跃信号的基本无静差跟踪,通过调节比例环节,可以很好的实现改变其相应速度
  • Simulink--系统传递函数分析

    千次阅读 2021-01-31 14:46:24
    slLinearizer在Simulink模型和线性化命令getIOTransfer,...使用接口分析点和永久开口从模型中获取任何开环或闭环传递函数的线性化。分析线性化模型的稳定性或时域或频域特征。 用addPoint,addOpening,removePoi
  • 输出系统传递函数simulink仿真中,经常需要推导传递函数,或已知传递函数分析频率响应及系统稳定性。经过研究可以利用simulink中自带的linear analysis分析工具获得系统的幅频特性,相频特性以及传递函数 相位裕...
  • 文章目录传递函数由来MATLAB simulink子系统封装simulink子系统mask绘制完整流程图--运行显示绘制子系统中传递函数的bode图、nyquist图、step图等修改参数后的两个图相比较: 传递函数由来 MATLAB simulink子系统...
  • [Simulink] 从S函数模块代码生成

    千次阅读 2019-03-30 23:15:20
    Simulink默认提供的模块不能够满足用户的需求时,用户可以通过S函数打造自己的模块,实现自定义的算法或期望的动作。 S函数类型 S函数的类型,按照所支持的功能分类,可以分为 Level 1 —— 编写...
  • [Simulink] 从Simulink S函数的使用

    千次阅读 2019-04-16 11:21:42
    Simulink自动代码生成 这部分涉及到对Simulink建模的控制,从而生成我们可读、可进一步编写或修改的代码。因此,建模时需要遵循一定的建模规范,并进行对应的检查,例如:ISO26262、MAAB、MISRA C等检查,MAAB的建模...
  • Introduction 这一部分内容主要以学习截图为主。方便自己回顾,给大家推荐一个非常优秀的B站uper,所有内容均出自他的课程。网站链接分享在此DR_CAN,Ph.D. in Dynamics and Control 机器人工程师。...
  • matlab simulink自定义结构体变量并在函数模块中应用

    千次阅读 多人点赞 2019-05-15 21:34:58
    前段时间“硬着头皮”给一个simulink模型添加了一个函数模块,函数的输出是4个结构体变量,因此涉及到在simulink中自定义结构体类型的变量,以及显示输出的结构体变量。 完成这一任务的过程还是费了一些劲的,在...
  • 本文为翻译学习文章,供学习使用,文中的模型和指令我重新绘制测试过,...你可以通过 Silmulink Contral Design收集一个Simulink模型的频率响应模型,然后使用tftest指令基于测量得到的数据来估算一个传递函数。如需了
  • 上周在https://ww2.mathworks.cn/help/ident/ug/estimating-transfer-function-models-for-a-boost-converter.html看到了一篇关于BOOST开关变换器传递函数估算的文章,觉得有一定实用性,于是对文章进行的翻译收藏,...
  • https://blog.csdn.net/qq_38693598/article/details/87876203
  • Simulink中各模块介绍

    千次阅读 多人点赞 2020-04-21 14:16:09
    在介绍Simulink模块属性之前,先介绍几个常用命令: gcb:获取当前被选中的模块,get current block gcbh:获取当前被选中模块的句柄,get current block handle get(handle):通过句柄获取模块的属性信息。 get_...
  • SIMULINK6 S-Function 编程(M,C/C++语言)与模块封装技术 丁竞渊 编译上海大学计算机工程与科学学院 1. Simulink S函数概观S-function(System function)是Simulink模块的计算机语言描述。可以用M、C/C+
  • 所谓传递函数-基尔霍夫定律和阻抗 以各模块计算具体的传递函数之前,在导出传递函数时,确认两个重要的定律。 一个是指基尔霍夫的电流定律。本定律是指“任意的节点中电流的和为0”。本定律必须要注意的是电流的...
  • @TOC在simulink仿真中,经常需要推导传递函数,或已知传递函数分析频率响应及系统稳定性。经过研究可以利用simulink中自带的linear analysis分析工具获得系统的幅频特性,相频特性以及传递函数 相位裕度等等。本...
  • 实验一 MATLAB系统的传递函数和状态空间表达式的转换以G(s)=10/s(s+1)(s^2/4+1)为例 这种传递函数是零极点描述形式,因而要使用sys=zpk(z,p,k)的命令形式 其中,z为传递函数的零点向量[z1,z2,z3,.],描述形式为(s-z1)...
  • 启用步骤:1、在MATLAB命令窗口中输入simulink结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。当然用户也可以通过MATLAB主窗口的快捷按钮来打开...
  • simulink中function模块的persistent变量

    千次阅读 2019-12-30 15:23:18
    引言:我们在simulink中会用到matlab function模块,需要去自己书写里面的函数。简单的还好,如果我们需要函数里面的变量能够储存它的值,也就是每个时间周期内运行这个matlab function模块时里面的某些变量的值能够...
  • @TOC 本文基于对锁相环基本原理有一定了解的情况下讲述,不在分析锁相环的各类动态特性。...一型锁相环只鉴别相位 图1 一型锁相环线性模型 根据线性模型可的开环传递函数 闭环传递函数缺点:1...
  • Simulink中Fcn模块中的参数转C代码

    千次阅读 2018-03-14 14:51:57
    Simulink中Fcn模块中的参数转C代码,如果你将其参数设置为全局变量,但是在转成C代码时候会发现变量被替换成初始值。这个时候需要做变通,将增益值拿出来作为gain模块放在Fcn后面即可...
  • Matlab Simulink模块

    千次阅读 多人点赞 2019-03-23 16:11:08
    Simulink 基本模块 1、输入信号源模块库(Source) Constant 恒值常数,可设置数值 Step 阶跃信号 Ramp 线性增加或减少的信号 Sine Wave 正弦波输出 Signal Generator 信号发生器,可产生正弦、方波...
  • 1)之前在调程序的时候,用的都是S... 2) 上一种的方法实在是太麻烦了,后来经过在MATLAB中文论坛中查找相应的资料和看了孙忠潇老师的书之后,开始会利用S函数的属性页中的对话框(如图1所示)进行参数变量的传递,然...
  • Simulink模块介绍

    2021-06-13 13:07:14
    在库模块浏览器中单击Simulink前面的“+”号, 就能够看到Simulink模块库, 如图7.2所示。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,071
精华内容 428
关键字:

simulink传递函数模块