我是靠谱客的博主 甜美大象,最近开发中收集的这篇文章主要介绍Day14--Simulink实例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。
自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468.html?spm=1001.2014.3001.5482
博客参考书籍:《MATLAB/Simulink与控制系统仿真》。



2.MATLAB/SIMULINK在模型中的应用

2.1 多项式处理相关函数
  • 多项式乘法函数 c o n v ( ) {rm conv()} conv()

    # conv()调用格式
    C=conv(A,B)
    
    # 参数说明:
    A、B:分别表示一个多项式系数,按降幂排列;
    C:A和B多项式的乘积多项式;
    
  • 多项式求根函数 r o o t s ( ) {rm roots()} roots()

    # roots()调用格式
    r=roots(p)
    
    # 参数说明:
    p:多项式;
    r:所求的根;
    
  • 由根创建多项式函数 p o l y ( ) {rm poly()} poly()

    # poly()调用格式
    p=poly(r)
    
    # 参数说明:
    r:特征根;
    p:特征多项式系数矢量;
    
  • 求多项式在给定点的值函数 p o l y v a l ( ) {rm polyval()} polyval()

    # polyval()调用格式
    v=polyval(p,a)
    
    # 参数说明:
    p:已知多项式;
    a:给定点a;
    v:其变量取a时的值;
    
2.2 建立传递函数相关的函数

假设系统是单输入单输出 ( S I S O ) ({rm SISO}) (SISO)系统,其输入、输出分别用 u ( t ) 、 y ( t ) u(t)、y(t) u(t)y(t)表示,可得线性系统的传递函数模型为:
G ( s ) = Y ( s ) U ( s ) = b m s m + b m − 1 s m − 1 + ⋯ + b 1 s + b 0 s n + a n − 1 s n − 1 + ⋯ + a 1 s + a 0 G(s)=frac{Y(s)}{U(s)}=frac{b_ms^m+b_{m-1}s^{m-1}+cdots+b_1s+b_0}{s^n+a_{n-1}s^{n-1}+cdots+a_1s+a_0} G(s)=U(s)Y(s)=sn+an1sn1++a1s+a0bmsm+bm1sm1++b1s+b0
若分子 n u m {rm num} num、分母 d e n {rm den} den多项式的系数向量分别为:
n u m = [ b m , b m − 1 , ⋯   , b 1 , b 0 ] , d e n = [ 1 , a n − 1 , ⋯   , a 1 , a 0 ] {rm num}=[b_m,b_{m-1},cdots,b_1,b_0],{rm den}=[1,a_{n-1},cdots,a_1,a_0] num=[bm,bm1,,b1,b0]den=[1,an1,,a1,a0]

  1. 建立传递函数模型的函数 t f ( ) {rm tf()} tf()

    # 常用的调用格式:
    sys=tf(num,den)
    sys=tf(num,den,'InputDelay',tao)
    
    # 参数说明:
    num:分子多项式系数行向量;
    den:分母多项式系数行向量;
    sys:建立的传递函数;
    'InputDelay':时间延迟;
    tao:系统延迟时间的数值;
    

    注:带时间延迟的系统传递函数表达式: G d ( s ) = G ( s ) e − τ s G_d(s)=G(s){rm e}^{-tau{s}} Gd(s)=G(s)eτs

  2. 提取模型中分子分母多项式系数的函数 t f d a t a ( ) {rm tfdata()} tfdata()

    # 调用格式:
    [num,den]=tfdata(sys,'v')
    
    # 参数说明:
    num:返回的分子多项式系数向量;
    den:返回的分母多项式系数向量;
    'v':关键词,功能是返回列向量形式的分子分母多项式系数;
    
2.3 建立零极点形式的数学模型相关函数

假设系统的单输入单输出系统,其零极点模型表示为:
G ( s ) = K ( s − z 1 ) ( s − z 2 ) ⋯ ( s − z m ) ( s − p 1 ) ( s − p 2 ) ⋯ ( s − p n ) G(s)=Kfrac{(s-z_1)(s-z_2)cdots(s-z_m)}{(s-p_1)(s-p_2)cdots(s-p_n)} G(s)=K(sp1)(sp2)(spn)(sz1)(sz2)(szm)
z i ( i = 1 , 2 , ⋯   , m ) z_i(i=1,2,cdots,m) zi(i=1,2,,m)为系统的零点, p j ( j = 1 , 2 , ⋯   , n ) p_j(j=1,2,cdots,n) pj(j=1,2,,n)为系统的极点, K K K为系统的增益;

  1. 建立零极点形式数学模型的函数 z p k ( ) {rm zpk()} zpk()

    # 调用格式:
    sys=zpk([z],[p],[k])
    sys=zpk(z,p,k,'InputDelay',tao)
    
    # 参数说明:
    [z]:系统零点向量;
    [p]:系统极点向量;
    [k]:系统增益向量;
    'InputDelay':时间延迟;
    tao:系统延迟时间的数值;
    
  2. 提取模型中零极点和增益向量的函数 z p k d a t a ( ) {rm zpkdata()} zpkdata()

    # 调用格式:
    [z,p,k]=zpkdata(sys,'v')
    
    # 参数说明:
    sys:系统模型;
    'v':功能是返回列向量形式的零极点和增益向量;
    
  3. 传递函数模型部分分式展开的函数 r e s i d u e ( ) {rm residue()} residue()

    # 调用格式:
    [r,p,k]=residue(b,a)
    
    # 参数说明:
    b:按s降幂排列的多项式系数;
    a:按s降幂排列的多项式系数;
    
    注:部分分式展开后,余数返回向量r,极点返回列向量p,常数项返回k;
    
    
2.4 建立状态空间模型相关的函数
  1. 建立状态空间模型的函数 s s ( ) {rm ss()} ss()

    # 调用格式:
    sys=ss(A,B,C,D)
    
    # 参数说明:
    (A,B,C,D):系统状态空间的矩阵表示;
    sys:建立的状态空间模型;
    
    
  2. 提取模型中状态空间矩阵的函数 s s d a t a ( ) {rm ssdata()} ssdata()

    # 调用格式:
    [A,B,C,D]=ssdata(sys)
    
    # 参数说明:
    sys:建立的状态空间模型;
    [A,B,C,D]:系统状态空间矩阵;
    
    
2.5 SIMULINK中控制系统模型表示

连续模块 ( C o n t i n u o u s ) ({rm Continuous}) (Continuous)的名称及功能:

模块名 模块名 模块名 功能 功能 功能
D e r i v a t i v e {rm Derivative} Derivative 输入信号微分 输入信号微分 输入信号微分
I n t e g r a t o r {rm Integrator} Integrator 输入信号积分 输入信号积分 输入信号积分
S t a t e − S p a c e {rm State-Space} StateSpace 状态空间系统模型 状态空间系统模型 状态空间系统模型
T r a n s f e r   F c n {rm Transfer Fcn} Transfer Fcn 传递函数模型 传递函数模型 传递函数模型
T r a n s p o r t   D e l a y {rm Transport Delay} Transport Delay 固定时间传输延迟 固定时间传输延迟 固定时间传输延迟
V a r i a b l e   T r a n s p o r t   D e l a y {rm Variable Transport Delay} Variable Transport Delay 可变时间传输延迟 可变时间传输延迟 可变时间传输延迟
Z e r o − P o l e {rm Zero-Pole} ZeroPole 零极点模型 零极点模型 零极点模型
2.6 SIMULINK中模型与状态空间模型的转化
2.7 实战部分
2.7.1 实例1

实验要求:求传递函数 G ( s ) = ( s + 1 ) ( s 2 + 2 s + 6 ) 2 s 2 ( s + 3 ) ( s 3 + 2 s 2 + 3 s + 4 ) G(s)=displaystylefrac{(s+1)(s^2+2s+6)^2}{s^2(s+3)(s^3+2s^2+3s+4)} G(s)=s2(s+3)(s3+2s2+3s+4)(s+1)(s2+2s+6)2的分子分母多项式,并求传递函数的特征根。

解:

% 实例Chapter4.2 2.7.1
num=conv([1,1],conv([1,2,6],[1,2,6]));      % num:分子多项式;
den=conv([1,0,0],conv([1,3],[1,2,3,4]));    % den:分母多项式;
r=roots(den);                               % r:函数特征根;

% 终端显示num,den,r
num,den,r

% 显示结果
num =
     1     5    20    40    60    36

den =
     1     5     9    13    12     0     0

r =
   0.0000 + 0.0000i
   0.0000 + 0.0000i
  -3.0000 + 0.0000i
  -1.6506 + 0.0000i
  -0.1747 + 1.5469i
  -0.1747 - 1.5469i

  • 分子多项式为: s 5 + 5 s 4 + 20 s 3 + 40 s 2 + 60 s + 36 s^5+5s^4+20s^3+40s^2+60s+36 s5+5s4+20s3+40s2+60s+36
  • 分母多项式为: s 6 + 5 s 5 + 9 s 4 + 13 s 3 + 12 s 2 s^6+5s^5+9s^4+13s^3+12s^2 s6+5s5+9s4+13s3+12s2
  • 特征根为: λ 1 = λ 2 = 0 , λ 3 = − 3 , λ 4 = − 1.6506 , λ 5 = λ 6 = − 0.1747 ± j 1.5469 lambda_1=lambda_2=0,lambda_3=-3,lambda_4=-1.6506,lambda_5=lambda_6=-0.1747±{rm j}1.5469 λ1=λ2=0λ3=3λ4=1.6506λ5=λ6=0.1747±j1.5469
2.7.2 实例2

实验要求:已知系统的微分方程描述为: y ( 3 ) + 11 y ( 2 ) + 11 y ( 1 ) + 10 y = u ( 2 ) + 4 u ( 1 ) + 8 u y^{(3)}+11y^{(2)}+11y^{(1)}+10y=u^{(2)}+4u^{(1)}+8u y(3)+11y(2)+11y(1)+10y=u(2)+4u(1)+8u,使用 M A T L A B {rm MATLAB} MATLAB建立模型。

解:

% 实例Chapter4.2 2.7.2

% 分子、分母多项式系数行向量
num=[1,4,8];
den=[1,11,11,10];

% 建立模型
G=tf(num,den)

% 结果显示
G = 
       s^2 + 4 s + 8
  ------------------------
  s^3 + 11 s^2 + 11 s + 10
 
Continuous-time transfer function.

  • 系统传递函数为: G ( s ) = s 2 + 4 s + 8 s 3 + 11 s 2 + 11 s + 10 G(s)=displaystylefrac{s^2+4s+8}{s^3+11s^2+11s+10} G(s)=s3+11s2+11s+10s2+4s+8
2.7.3 实例3

实验要求:已知某系统的传递函数为: G ( s ) = s 2 + 4 s + 8 s 3 + 11 s 2 + 11 s + 10 G(s)=displaystylefrac{s^2+4s+8}{s^3+11s^2+11s+10} G(s)=s3+11s2+11s+10s2+4s+8,求该传递函数分子分母多项式,零极点。

解:

% 实例Chapter4.2 2.7.3
clc;
clear;

% 传递函数分子、分母多项式系数行向量
num=[1,4,8];
den=[1,11,11,10];

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

% 求解传递函数的分子和分母多项式
[tt,ff]=tfdata(G,'v');

% 求解传递函数的零极点和增益
[z,p,k]=tf2zp(num,den);

% 显示分子分母多项式和零极点
tt,ff,z,p,k

% 结果显示:
% 分子多项式
tt =
     0     1     4     8

% 分母多项式
ff =
     1    11    11    10

% 系统零点
z =
  -2.0000 + 2.0000i
  -2.0000 - 2.0000i

% 系统极点
p =
 -10.0000 + 0.0000i
  -0.5000 + 0.8660i
  -0.5000 - 0.8660i

% 系统增益
k =
     1

2.7.4 实例4

实验要求:已知系统的传递函数: G ( s ) = 2 s 3 + 9 s + 1 s 3 + s 2 + 4 s + 4 G(s)=displaystylefrac{2s^3+9s+1}{s^3+s^2+4s+4} G(s)=s3+s2+4s+42s3+9s+1,求传递函数的部分分式表示形式。

解:

% 实例Chapter4.2 2.7.4
clc;clear;

% 传递函数分子、分母多项式系数行向量
num=[2,0,9,1];
den=[1,1,4,4];

% 求解系统部分分式表示
[r,p,k]=residue(num,den)

% 结果显示:
r =
  -0.0000 - 0.2500i
  -0.0000 + 0.2500i
  -2.0000 + 0.0000i

p =
   0.0000 + 2.0000i
   0.0000 - 2.0000i
  -1.0000 + 0.0000i

k =
     2

  • 系统部分分式表示为: G ( s ) = 2 + − 0.25 i s − 2 i + 0.25 i s + 2 i + − 2 s + 1 G(s)=2+displaystylefrac{-0.25{rm i}}{s-2{rm i}}+displaystylefrac{0.25{rm i}}{s+2{rm i}}+displaystylefrac{-2}{s+1} G(s)=2+s2i0.25i+s+2i0.25i+s+12
2.7.5 实例5

实验要求:已知两输入两输出系统状态方程和输出方程如下:
x ˙ = [ 1 6 9 10 3 12 6 8 4 7 9 11 5 12 13 14 ] x + [ 4 6 2 4 2 2 1 0 ] u , y = [ 0 0 2 1 8 0 2 2 ] x dot{x}=begin{bmatrix} 1 & 6 & 9 & 10\ 3 & 12 & 6 & 8\ 4 & 7 & 9 & 11\ 5 & 12 & 13 & 14 end{bmatrix}x+begin{bmatrix} 4 & 6\ 2 & 4\ 2 & 2\ 1 & 0 end{bmatrix}u,y=begin{bmatrix} 0 & 0 & 2 & 1\ 8 & 0 & 2 & 2 end{bmatrix}x x˙= 1345612712969131081114 x+ 42216420 uy=[08002212]x
求状态空间模型。

解:

% 实例Chapter4.2 2.7.4
clc;clear;

% 系统系数矩阵
A=[1 6 9 10;3 12 6 8;4 7 9 11;5 12 13 14];
B=[4 6;2 4;2 2;1 0];
C=[0 0 2 1;8 0 2 2];
D=zeros(2,2);

% 系统状态空间模型
G=ss(A,B,C,D)

% 结果显示:
  A = 
       x1  x2  x3  x4
   x1   1   6   9  10
   x2   3  12   6   8
   x3   4   7   9  11
   x4   5  12  13  14
 
  B = 
       u1  u2
   x1   4   6
   x2   2   4
   x3   2   2
   x4   1   0
 
  C = 
       x1  x2  x3  x4
   y1   0   0   2   1
   y2   8   0   2   2
 
  D = 
       u1  u2
   y1   0   0
   y2   0   0
 
Continuous-time state-space model.

最后

以上就是甜美大象为你收集整理的Day14--Simulink实例的全部内容,希望文章能够帮你解决Day14--Simulink实例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(118)

评论列表共有 0 条评论

立即
投稿
返回
顶部