色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

S-function詳解與模型參考自適應(yīng)仿真案例

冬至子 ? 來(lái)源:控我所思VS制之以衡 ? 作者:控我所思 ? 2023-06-30 17:03 ? 次閱讀

1前言

S-Function是system-function系統(tǒng)函數(shù)的縮寫(xiě),是指采用非圖形化的方式描述的一個(gè)功能塊。S-Function提供給用戶自己編寫(xiě)程序來(lái)滿足自己要求模型的接口。

2 s-function總體架構(gòu)

S-function包括主函數(shù)和6個(gè)子函數(shù),子函數(shù)包括

1.mdlInitializeSizes(初始化)

2.mdlDerivatives(連續(xù)狀態(tài)微分)

3.mdlUpdate(離散狀態(tài)更新)

4.mdlOutputs(模塊輸出)

5.mdlGetTimeOfNextVarHit(計(jì)算下次采樣時(shí)刻)

6.mdlTerminate(仿真結(jié)束)。

2.1 s-function 執(zhí)行過(guò)程

  1. 在仿真開(kāi)始時(shí),執(zhí)行mdlInitializeSizes
  2. 若系統(tǒng)包含連續(xù)部分,則調(diào)用mdlDerivatives;若系統(tǒng)包含離散部分,則調(diào)用mdlUpdate
  3. 調(diào)用mdlOutputs,產(chǎn)生輸出
  4. 若滿足條件,則執(zhí)行mdlGetTimeOfNextVarHit
  5. 循環(huán)執(zhí)行1--3,直至仿真停止
  6. 執(zhí)行mdlTerminate,仿真停止

2.2 s-function 輸入輸出參數(shù)與狀態(tài)變量

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

S-function是基于狀態(tài)空間表達(dá)式而設(shè)置的仿真模塊,需要了解這個(gè)仿真模塊的輸入輸出和內(nèi)部的狀態(tài)變量。

輸入變量:

t :系統(tǒng)時(shí)間

x :系統(tǒng)狀態(tài)

u : 系統(tǒng)輸入,即在simulink models中連接至S-function的線上的數(shù)據(jù)。注意區(qū)分x和u

flag : 系統(tǒng)狀態(tài),由系統(tǒng)自動(dòng)生成,決定了系統(tǒng)應(yīng)當(dāng)執(zhí)行哪個(gè)S-function子函數(shù)

除了這四個(gè)必須有的變量,還可以自行根據(jù)需要添加變量,供子函數(shù)調(diào)用

輸出變量:

sys : 系統(tǒng)本身,可以理解為下一時(shí)刻的系統(tǒng);同時(shí)sys的前幾個(gè)數(shù)值(sys[1]等)是系統(tǒng)的輸出,即在simulink中S-function伸出線上的數(shù)據(jù)

x0 : 系統(tǒng)初始狀態(tài)

str : 狀態(tài)排序字符串,通常指定為[]。

ts : 可認(rèn)為是采樣時(shí)間

(simStateCompliance 不用管)

3 子函數(shù)

3.1 mdlInitializeSizes函數(shù)

function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes

% 不需要更改的內(nèi)容
sizes = simsizes;

% 需要更改的內(nèi)容:狀態(tài)、輸出、輸入的數(shù)量
sizes.NumContStates = 0; %連續(xù)狀態(tài)的數(shù)量
sizes.NumDiscStates = 0; %離散狀態(tài)的數(shù)量
sizes.NumOutputs = 0; %輸出的數(shù)量
sizes.NumInputs = 0; %輸入的數(shù)量
sizes.DirFeedthrough = 1; %輸出y和輸入u是否是直通(輸出的向量中是否直接含有輸入)
sizes.NumSampleTimes = 1; %采樣時(shí)間

sys = simsizes(sizes);

% 需要更改的內(nèi)容:狀態(tài)變量的初始值
x0  = [];

% 不需要更改的內(nèi)容
str = [];

% 按需要更改,ts的第一個(gè)數(shù)字表示采樣時(shí)間,第二個(gè)數(shù)字表示偏移量;連續(xù)系統(tǒng)不需要改
% [0 0]——表示默認(rèn)采樣時(shí)間(默認(rèn)為0.2秒采樣一次);
% [-1 0] ——表示根據(jù)連接模塊的采樣頻率進(jìn)行采樣;
ts  = [0 0];

% 按需要更改
simStateCompliance = 'UnknownSimState';

1.jpg

3.3 mdlOutputs函數(shù)

function sys=mdlOutputs(t,x,u)

sys = [];

3.4 mdlGetTimeOfNextVarHit函數(shù)

function sys=mdlGetTimeOfNextVarHit(t,x,u)
% 計(jì)算下一個(gè)采樣點(diǎn)的絕對(duì)時(shí)間,只有當(dāng)在mdlInitializeSizes中指定了變步長(zhǎng)離散采樣時(shí)間時(shí),才使用該程序
sampleTime = 1;    %  Example, set the next hit to be one second later.
sys = t + sampleTime;

3.5 mdlTerminate函數(shù)

function sys=mdlTerminate(t,x,u)
% 終止函數(shù),可添加當(dāng)Simulink終止時(shí)所需執(zhí)行內(nèi)容

sys = [];

4 舉例

4.1 二階模型

對(duì)于如下被控對(duì)象,其傳遞函數(shù)為:

1.jpg

圖片

仿真結(jié)果:曲線重合,三種模型表達(dá)方式相同

圖片

4.2 簡(jiǎn)單自適應(yīng)控制系統(tǒng)(MRAC)

4.2.1 系統(tǒng)模型與證明

1.jpg

圖片

s-function input

function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 2;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 3;
sizes.NumInputs      = 0;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 0;
sys = simsizes(sizes);
x0  = [0.5,0];
str = [];
ts  = [];
function sys=mdlDerivatives(t,x,u)
r=sin(4*t);
nmn1=10;
nmn2=25;
sys(1)=x(2);
sys(2)=-nmn1*x(2)-nmn2*x(1)+nmn2*r;
function sys=mdlOutputs(t,x,u)
r=sin(4*t);
nmn1=10;
nmn2=25;
xm=x(1);
dxm=x(2);
ddxm=-nmn1*x(2)-nmn2*x(1)+nmn2*r;
sys(1)=xm;
sys(2)=dxm;
sys(3)=ddxm;

s-function controller

function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 1;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 2;
sizes.NumInputs      = 6;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 0;
sys = simsizes(sizes);
x0  = [0];
str = [];
ts  = [];
function sys=mdlDerivatives(t,x,u)
xm=u(1);
dxm=u(2);
ddxm=u(3);
x1=u(4);
dx1=u(5);
e=x1-xm;
de=dx1-dxm;
nmn=6;
s=de+nmn*e;
v=ddxm-2*nmn*de-nmn^2*e;
gama=0.5;
sys(1)=-gama*v*s;
function sys=mdlOutputs(t,x,u)
xm=u(1);
dxm=u(2);
ddxm=u(3);
x1=u(4);
dx1=u(5);
e=x1-xm;
de=dx1-dxm;
nmn=6;
mp=x(1);
ut=mp*(ddxm-2*nmn*de-nmn^2*e);
sys(1)=mp;
sys(2)=ut;

s-function plant

function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 2;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 3;
sizes.NumInputs      = 2;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0  = [0.5,0];
str = [];
ts  = [0 0];
function sys=mdlDerivatives(t,x,u) 
m=2;
ut=u(2);
sys(1)=x(2);
sys(2)=1/m*ut;
function sys=mdlOutputs(t,x,u)
m=2;
sys(1)=x(1);
sys(2)=x(2);
sys(3)=m;

理想位置輸出與真實(shí)位置輸出

圖片

參數(shù)m估計(jì)值與真實(shí)值

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1017

    瀏覽量

    83727
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    492

    瀏覽量

    27533
  • MRAC
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    7171
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    s-function的概念

    s-function是一個(gè)動(dòng)態(tài)系統(tǒng)的計(jì)算機(jī)語(yǔ)言描述,在MATLAB里,用戶可以選擇用m文件編寫(xiě),也可以用c或mex文件編寫(xiě),在這里只給大家介紹如何用m文件編寫(xiě)s-function
    發(fā)表于 07-13 14:15

    建立m文件s-function

    輸出參數(shù),最好不做修改。接下去的工作就是根據(jù)所編s-function要完成的任務(wù),用相應(yīng)的代碼去替代模板里各個(gè)子函數(shù)的代碼即可。Simulink在每個(gè)仿真階段都會(huì)對(duì)s-function進(jìn)行調(diào)用,在調(diào)用
    發(fā)表于 07-13 14:16

    橫潤(rùn)科技《MATLAB的S-Function編寫(xiě)指導(dǎo)

    橫潤(rùn)科技《MATLAB的S-Function編寫(xiě)指導(dǎo)pdf格式100頁(yè),介紹simulink中s函數(shù)的編寫(xiě)。
    發(fā)表于 08-05 10:04

    搭建最基本的S-function模塊

    simulink中搭建模型,都是先搭simulink中有的東西,然后碰到simulink中沒(méi)有的才會(huì)去建S-function,那么在這個(gè)時(shí)候,你就很清楚你的S-function具體是干什么的,他應(yīng)該有什么輸出,有
    發(fā)表于 12-24 12:22

    matlab原版 developing S-function

    matlab原版 developing S-function
    發(fā)表于 11-14 11:31

    simulink仿真問(wèn)題:s_function

    我在仿真時(shí),用一個(gè)FCN,就是z形式的傳遞函數(shù),運(yùn)行是可以的。但是當(dāng)我用s-function,即離散化語(yǔ)言來(lái)表達(dá)這個(gè)傳遞函數(shù), 替換原來(lái)的FCN,其他的都沒(méi)變,現(xiàn)象就出不來(lái)了。有大牛知道是怎么回事嘛???謝謝了
    發(fā)表于 08-17 15:52

    S-function的工作原理解析

    S-function函數(shù)S-function工作原理
    發(fā)表于 12-31 06:17

    什么是s-function

    S-function一、什么是s-function(1)非圖形化地實(shí)現(xiàn)一個(gè)動(dòng)態(tài)系統(tǒng)(2)支持多種語(yǔ)言編寫(xiě)(3)s-function是以現(xiàn)代控制理論的狀態(tài)方程為基礎(chǔ)的二、如何編寫(xiě)一個(gè)自己
    發(fā)表于 08-30 08:10

    如何去實(shí)現(xiàn)S-Function與Simulink的數(shù)據(jù)交互呢

    什么是S-Function?如何使用S-Function函數(shù)呢?如何去實(shí)現(xiàn)S-Function與Simulink的數(shù)據(jù)交互呢?
    發(fā)表于 11-22 07:48

    基于MATLAB的時(shí)變系統(tǒng)自適應(yīng)控制的仿真

    本文介紹了基于MATLAB 的仿真工具SIMULINK,對(duì)于線性時(shí)變系統(tǒng)的模型參考自適應(yīng)控制的仿真研究,并給出了仿真結(jié)果。關(guān)鍵詞: MATL
    發(fā)表于 06-13 08:59 ?36次下載

    基于MATLAB S-Function的飛行器運(yùn)動(dòng)系統(tǒng)建模與

    本文講述了使用Matlab/S-Function 建模與仿真的一種方法。主要介紹如何對(duì)飛行器的運(yùn)動(dòng)學(xué)方程進(jìn)行S 函數(shù)建模,并分析了S 函數(shù)各模塊的編寫(xiě)及功能。分析表明對(duì)于復(fù)雜的運(yùn)動(dòng)系
    發(fā)表于 12-16 13:36 ?60次下載

    MATLAB的S-Function編寫(xiě)指導(dǎo)

    S-Function(系統(tǒng)函數(shù))為擴(kuò)展Simulink®的性能提供了一個(gè)有力的工具。以下下節(jié)闡述了什么是S-Function,為什么可以使用S-Function,以及怎樣編寫(xiě)自己的S-
    發(fā)表于 08-16 16:39 ?146次下載

    SIMULINK s-function的設(shè)計(jì)

    SIMULINK  s-function的設(shè)計(jì)Simulink為用戶提供了許多內(nèi)置的基本庫(kù)模塊,通過(guò)這些模塊進(jìn)行連接而構(gòu)成系統(tǒng)的模型。對(duì)于那些經(jīng)常使用的模塊進(jìn)行組合并封裝可以構(gòu)
    發(fā)表于 06-19 12:55 ?2276次閱讀

    系統(tǒng)辨識(shí)與自適應(yīng)控制MATLAB仿真

    自適應(yīng)控制MATLAB仿真
    發(fā)表于 11-29 15:59 ?0次下載

    使用Simulink進(jìn)行S-Function建模的教程PPT課件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用Simulink進(jìn)行S-Function建模的教程PPT課件免費(fèi)下載包括了:1 Simulink S函數(shù)仿真應(yīng)用,2 M-file S-functi
    發(fā)表于 10-08 08:00 ?0次下載
    使用Simulink進(jìn)行<b class='flag-5'>S-Function</b>建模的教程PPT課件免費(fèi)下載
    主站蜘蛛池模板: 99视频网站| 啊灬啊灬啊灬快高潮视频| 一品道门在线视频| 伊人草久久| 3D动漫网站HOXXXxes| 国产午夜婷婷精品无码A片 | 最新国产av.在线视频| 70岁妇女牲交色牲片| a级毛片高清免费视频| 东热rq大乱交| 国内精品九九视频| 久久亚洲这里只有精品18| 暖暖 免费 高清 日本 在线| 日韩欧美精品有码在线播放| 午夜福利32集云播| 野花香HD免费高清版6高清版| 最美白嫩的极品美女ASSPICS| FREE另类老女人| 国产精品久AAAAA片| 久久久96| 日本xxx护士与黑人| 小玲被公扒开腿| 中文字幕高清在线中文字幕| 被强J高H纯肉公交车啊| 国产精品大全国产精品| 久久精品一卡二卡三卡四卡视频版| 男人插女人逼逼| 午夜精品久久久内射近拍高清| 伊人久久综在合线影院| 啊好大好厉害好爽真骚| 国产专区_爽死777| 男男高h浪荡受h| 性夜影院午夜看片| 9420高清完整版在线电影免费观看 | 在线亚洲色拍偷拍在线视频| xxxxhd17欧美老师| 激情欧美日韩一区二区| 欧美亚洲色帝国| 亚洲色噜噜狠狠网站| zxfuli午夜福利在线| 久九九精品免费视频|