⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch2example20sfun.m

📁 通信程序源代码和模型通信程序源代码和模型通信程序源代码和模型
💻 M
字号:
function [sys,x0,str,ts] =ch2example20Sfun(t,x,u,flag,b,a) 
% 离散系统传递函数的S-函数实现 
% 参数b,a 分别为H(z)的分母、分子多项式的系数向量
[A,B,C,D]=tf2ss(b,a);% 将H(z)转换为状态空间方程系数矩阵
switch flag, 
    case 0 % flag=0 初始化 
       sizes = simsizes;% 获取SIMULINK仿真变量结构
       sizes.NumContStates  = 0;% 连续系统的状态数是0
       sizes.NumDiscStates  = size(A,1);% 离散系统的状态数
       sizes.NumOutputs     = size(D,1);% 输出信号数目
       sizes.NumInputs      = size(D,2);% 输入信号数目
       sizes.DirFeedthrough = 1; % 该系统是直通的
       sizes.NumSampleTimes = 1; % 这里必须为1   
       sys = simsizes(sizes); 
       str = [];           % 通常为空矩阵 
       x0  = zeros(sizes.NumDiscStates,1);% 零状态
       ts  = [-1 0];       % 采样时间由外部模块给出
   case 2 % flag=2 离散状态方程计算
       sys = A*x+B*u;
   case 3 % flag=3 输出方程计算
       sys = C*x+D*u; 
   case {1,4, 9 }% 其他作不处理的flag 
       sys=[];   % 无用的flag时返回sys为空矩阵
otherwise % 异常处理 
       error(['Unhandled flag = ',num2str(flag)]); 
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -