matlab s-function 测试例子_Andy_Issta_新浪博客

摘自  Simulink仿真及代码生成技术入门到精髓  一书

matlab <wbr>s-function <wbr>测试例子

看完美女,开始吧~~~~

一:编写m文件

function[sys,x0,str,ts,simStateCompliance]=sfun_AI_000(t,x,u,flag,A,B,C)

switch flag,
    case 0,
        [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
    case 1,
        sys = mdlDerivatives(t,x,u);
    case 2,
        sys = mdlUpdate(t,x,u,A,B);
    case 3,
        sys = mdlOutputs(t,x,u,C);
    case 4,
        sys = mdlGetTimeOfNextVarHit(t,x,u);
    case 9,
        sys = mdlTerminate(t,x,u);
    otherwise
        DAStudio.error('Dimulink:Blocks:unhandledFalg', num2str(flag));
end

function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 2;
sizes.NumOutputs    = 1;
sizes.NumInputs     = 2;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);

x0 = [0,0]';
str = [];
ts = [0,0];
simStateCompliance = 'UnknownSimState';
function sys = mdlDerivatives(t,x,u)

sys = [];
function sys = mdlUpdate(t,x,u,A,B)
%update state variable
sys = A * x + B  *u;

function sys = mdlOutputs(t,x,u,C)
%Update output
sys = C * x;

function sys = mdlGetTimeOfNextVarHit(t,x,u)
%this function is not necessary
sampleTime = 1;
sys = t + sampleTime;
function sys = mdlTerminate(t,x,u)
sys = [];

二:搭建仿真模型,配置参数

matlab <wbr>s-function <wbr>测试例子

三:输入仿真参数

>> A=[-0.5572 -0.7814;0.7814 0];
>> B=[1 -1;0 2];
>> C=[1.9691 6.4493];

四:运行仿真,查看波形


matlab <wbr>s-function <wbr>测试例子
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

issta

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值