simulink中怎样用S-function代替微分环节du/dt

simulink中怎样用S-function代替微分环节du/dt
其他人气:365 ℃时间:2020-10-02 01:23:35
优质解答
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 1;
sizes.NumOutputs = 1;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [0 0];
str = [];
ts = [1e-6];
function sys=mdlUpdate(t,x,u)
to=1e-6;
d=(u(1)-x(1))/to;
sys=[u(1) d];
function sys=mdlOutputs
sys=x(2);太复杂了!本人愚钝,看不懂, 我想想用S函数写du/dt, 我想只是用fuction y=u ,下面是函数代码,一个输入一个输出和微分环节一样上面的就是s函数写的du/dt啊,只是我没有去验证而已,大体上就是这样的,不过里面还有点小错误。离散的du/dt=(当前值-上一次的值)/采样时间fuction y=u这个就不是s-function了,而是普通的函数。下面的仿真采用ode4,步长1e-4。1/Z的采样时间1e-4。信号源:正弦波,幅值1,频率1,相位0Embedded MATLAB Function代码:function y = fcn(u1,u2)y = (u1-u2)/1e-4;
我来回答
类似推荐
请使用1024x768 IE6.0或更高版本浏览器浏览本站点,以保证最佳阅读效果。本页提供作业小助手,一起搜作业以及作业好帮手最新版!
版权所有 CopyRight © 2012-2024 作业小助手 All Rights Reserved. 手机版