Simulink里的S函数介绍(Matlab-1)

在simulink中,S-函数是系统函数(System Function)的简称,S函数是一种非常有用的一个模块,经常用来描述控制算法,模型方程,是一个比较常见的模块。

S函数包括一个主函数,主函数里面有三个子函数,主函数一般都是如下形式:

function [sys,x0,str,ts] =fun(t,x,u,flag)

switch flag,

case 0,

    [sys,x0,str,ts]=mdlInitializeSizes;

case 1,

    sys=mdlDerivatives(t,x,u);

case 3,

    sys=mdlOutputs(t,x,u);

case {2, 4, 9 }

    sys = [];

otherwise

    error(['Unhandled flag = ',num2str(flag)]);

end

而子函数包括:模型初始化 Initialization函数;微分函数描述的mdlDerivative函数;mdlOutput输出函数。

以一个简单的二阶系统为例:

 也可以写成状态方程表达式:

 

 

使用S函数对该系统进行描述,输入为u,输出为速度和位移,假设初始位置和速度均为0;

1.Initialization函数:

function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes; % 生成 sizes 数据结构
sizes.NumContStates = 2; % 连续状态数,缺省则为 0,俩个状态为速度和位移。
sizes.NumDiscStates = 0; % 离散状态数,缺省则为 0
sizes.NumOutputs = 2; % 输出量个数,缺省则为 0,俩个输出为速度和位移。
sizes.NumInputs = 1; % 输入量个数,缺省则为 0,输入为u
sizes.DirFeedthrough =0; % 有无直接馈入,有取 1,无取 0,缺省为 1。表示输入信号是否直接在输出端出现。
sizes.NumSampleTimes = 1; % 连续采样时间
sys = simsizes(sizes); % 返回 sizes 数据结构所包含的信息
x0 = [00]; %初始状态的值,初始为0.
str = []; % 保留变量,可以忽略
ts = [0 0]; % 采样时间:[采样周期 偏移量],取 0 则表示为连续系统

2.mdlDerivatives函数:

function sys=mdlDerivatives(t,x,u)

m= 3; %设置m

dt = sin(t); %设置d(t)

ut = u(1); %输入u;

sys(1)= x(2);

sys(2)= 1/m * (ut + dt) ; %状态空间表达式

3.mdlOutputs函数

function sys = mdlOutputs(t,x,u)

sys(1)= x(1);

sys(2)= x( 2); %状态空间方程输出

 

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Matlab-Simulink是一种在控制系统仿真领域广泛使用的工具。它结合了Matlab的强大数值计算能力和Simulink的图形化仿真界面,使得控制系统的建模、仿真和分析变得更加高效和方便。 在控制系统仿真中,Matlab-Simulink可以用于建立系统的数学模型。通过在Simulink界面上拖拽和连接各个组件,我们可以创建一个表示控制系统的图形模型。这些组件可以包括信号源、传感器、执行器、控制器等等。这种图形化的模型使得我们能够直观地了解系统的结构和工作原理。 一旦模型建立完成,我们就可以使用Matlab的编程能力对系统进行仿真和分析。Matlab提供了丰富的数值计算函数和工具箱,能够帮助我们对模型进行仿真、优化和数据分析。这些功能使得我们能够评估系统的性能、设计合适的控制策略,甚至进行参数优化和鲁棒性分析。 此外,Matlab-Simulink还提供了各种工具和功能,使得与其他工程软件的集成变得更加容易。例如,我们可以与CAD软件进行联合仿真,将系统的物理模型和控制系统模型结合在一起,从而更加准确地进行系统分析。 总而言之,Matlab-Simulink是一种功能强大的工具,可以在控制系统仿真中发挥重要作用。它不仅能够帮助我们建立系统的数学模型,还能提供丰富的仿真、分析和优化功能,使得控制系统的设计和调试过程更加高效和准确。 ### 回答2: MATLAB-Simulink是一种强大的工具,用于控制系统的建模、仿真和分析。它提供了一个用户友好的环境,可以通过拖拽和连接不同的模块来构建控制系统模型。Simulink还可以与MATLAB进行无缝集成,使用户可以在建模过程中进行数据分析和处理。 借助MATLAB-Simulink,我们可以对各种控制系统进行仿真。首先,我们需要将实际系统建模为Simulink中的块图模型。这可以通过选择适当的模型代表实际系统,在模型中添加输入和输出,并设置系统的各种参数来完成。 一旦模型建立完成,就可以开始控制系统的仿真。通过Simulink提供的画图工具,我们可以更轻松地调整信号和参数,并观察系统在不同输入下的响应。仿真可以帮助我们验证控制系统的设计是否能够实现预期的目标,并找出潜在的问题。 此外,MATLAB-Simulink还提供了一些强大的分析工具,用于评估和优化控制系统的性能。例如,可通过使用信号处理和系统识别工具箱来分析系统的频率响应和稳定性。此外,还可以使用优化工具箱来找到最佳的控制器参数,以实现系统的最优性能。 综上所述,MATLAB-Simulink是一个功能强大的工具,可用于控制系统仿真。它提供了丰富的建模和仿真功能,使我们能够更好地理解和优化控制系统的性能。无论是研究还是工程应用,MATLAB-Simulink都是一个非常有用的工具,值得我们学习和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值