日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何在S函数中对变量或者输入信号进行求导

發(fā)布時間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在S函数中对变量或者输入信号进行求导 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如何在S函數(shù)中對變量或者輸入信號進(jìn)行求導(dǎo)
經(jīng)常在有的時候,我們需要使用S函數(shù)來進(jìn)行仿真,但是有的時候我們往往需要對變量進(jìn)行求導(dǎo)或者積分。看到這里,你可能會問在S函數(shù)的output函數(shù)的輸出結(jié)果不是會對mdlDerivative函數(shù)的輸出結(jié)果進(jìn)行積分么?這個確實(shí)不假,但是有的時候你需要在其他函數(shù)中用到這個變量的積分,那這個時候應(yīng)該怎么辦呢?或者需要對變量進(jìn)行求導(dǎo)呢?我們知道diff函數(shù)是用來對變量或者函數(shù)進(jìn)行求導(dǎo)的,但是在S函數(shù)中變量只是一個時刻的采樣點(diǎn),根據(jù)數(shù)學(xué)我們知道都一個數(shù)進(jìn)行求導(dǎo),那么結(jié)果進(jìn)行為零的。
自己經(jīng)過一段的時間的折騰,好像也折騰出了一點(diǎn)的結(jié)果,因此分享出來和大家討論一下,大家應(yīng)該也有更好的方法,或者建議。廢話太多了,直接上代碼吧!

function [sys,x0,str,ts]=daoshu(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case { 4, 9 }
sys = [];
otherwise
error([‘Unhandled flag = ‘,num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates =1; %連續(xù)狀態(tài)
sizes.NumDiscStates = 2; %離散狀態(tài)
sizes.NumOutputs = 3;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 0;
sys=simsizes(sizes);
x0=[0,0,0];
str=[];
ts=[];
function sys=mdlDerivatives(t,x,u) %實(shí)現(xiàn)對輸入的積分
x(1)=u(1);
sys=x(1);
function sys=mdlUpdate(t,x,u) %實(shí)現(xiàn)對輸入的求導(dǎo)
x(2)=u(1);
x(3)=t;
sys=[x(2),x(3)];
function sys=mdlOutputs(t,x,u)
if (t-x(3))>0 %避免在最初的一個采樣點(diǎn),分母為零,導(dǎo)致輸出結(jié)果異常的大
dt=(u(1)-x(2))/(t-x(3));
else
dt=0;
end
xx=x(1);
sys = [xx,dt,u(1)];

模型圖

結(jié)果圖
其中紅色的是輸入曲線y=sin(2*pi*x);藍(lán)色的是求導(dǎo)的曲線y=2*pi*cos(2*pi*x);黃色的是積分的曲線,只是不知道S函數(shù)中的積分中的積分常數(shù)是如何確定的,導(dǎo)致算了一下,積分常數(shù)應(yīng)該是1\(2*pi)。

總結(jié)

以上是生活随笔為你收集整理的如何在S函数中对变量或者输入信号进行求导的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。