当前位置: 首页 > news >正文

泉州专业网站建设费用网络推广网站电话

泉州专业网站建设费用,网络推广网站电话,电商网站怎么做,java电影资源网站开发S函数用于开发新的Simulink通用功能模块,是一种对模块库进行扩展的工具。S函数可以采用MATLAB语言、C、C、FORTRAN、Ada等语言编写。在S函数中使用文本方式输入公式、方程,非常适合复杂动态系统的数学描述,并且在仿真过程中可以对仿真进行更精…

S函数用于开发新的Simulink通用功能模块,是一种对模块库进行扩展的工具。S函数可以采用MATLAB语言、C、C++、FORTRAN、Ada等语言编写。在S函数中使用文本方式输入公式、方程,非常适合复杂动态系统的数学描述,并且在仿真过程中可以对仿真进行更精确的控制。

S函数称为系统函数(System Function),采用非图形化的方式描述功能块。MATLAB语言编写的S函数可以充分利用MATLAB所提供的丰富资源,方便地调用各种工具箱函数和图形函数; 使用C语言编写的S函数可以实现对操作系统的访问,如实现与其他进程的通信和同步等。非MATLAB语言编写的S函数需要用编译器生成MEX文件。本文介绍用MATLAB语言设计S函数的方法,并通过例子介绍S函数的应用。

01、用MATLAB语言编写S函数

S函数有固定的程序格式,可以从Simulink提供的S函数模板程序开始构建自己的S函数。

1. 主程序

S函数主程序的引导语句如下:

图片

其中,fname是S函数的函数名,t、x、u、flag分别为仿真时间、状态向量、输入向量和子程序调用标志。flag控制在仿真的各阶段调用S函数的哪一个子程序,其含义和有关信息如表1所示。Simulink每次调用S函数时,必须给出这4个参数。sys、x0、str和ts是S函数的返回参数。sys是一个返回参数的通用符号,它得到何种参数,取决于flag值。例如,flag = 3时,sys得到的是S函数的输出向量值。x0是初始状态值,如果系统中没有状态变量,x0将得到一个空阵。str仅用于系统模型同S函数API(应用程序编程接口)的一致性校验。对于M文件S函数,它将被置成一个空阵。ts是一个两列矩阵,一列是S函数中各状态变量的采样周期,另一列是相应的采样时间的偏移量。采样周期按递增顺序排列,ts中的一行对应一个采样周期。对于连续系统,采样周期和偏移量都应置成0。如果取采样周期为-1,则将继承输入信号的采样周期。

■ 表1 flag参数的含义

 

此外,在主程序输入参数中还可以包括用户自定义参数表: p1、p2、…、pn,这也就是希望赋给S函数的可选变量,其值通过相应S函数的参数对话框设置,也可以在命令行窗口赋值。于是S函数主程序的引导语句可以写成:

图片

主程序采用switch语句,引导Simulink到正确的子程序。

2. 子程序

S函数M文件共有6个子程序,供Simulink在仿真的不同阶段调用,这些子程序的前缀为mdl。每一次调用S函数时,都要给出一个flag值,实际执行S函数中与该flag值对应的那个子程序。Simulink在仿真的不同阶段,需要调用S函数中不同的子程序。

(1) 初始化子程序mdlInitializeSizes。子程序mdlInitializeSizes定义S函数参数,如采样时间、输入量、输出量、状态变量的个数以及其他特征。为了向Simulink提供这些信息,在子程序mdlInitializeSizes的开始处应调用simsizes函数,这个函数返回一个sizes结构,结构的成员sizes.NumContStates、sizes.NumDiscStates、sizes.NumOutputs和sizes.NumInputs分别表示连续状态变量的个数、离散状态变量的个数、输出的个数和输入的个数。这4个值可以置为-1,使其大小动态改变。成员sizes.DirFeedthrough是直通标志,即输入信号是否直接在输出端出现的标志,是否设定为直通,取决于输出是否为输入的函数,或者是取样时间是否为输入的函数。1表示yes,0表示no。成员sizes.NumSampleTimes是模块采样周期的个数,一般取1。

按照要求设置好的结构sizes用sys = simsizes(sizes)语句赋给sys参数。除了sys外,还应该设置系统的初始状态变量x0、说明变量str和采样周期变量ts。

(2) 其他子程序。状态的动态更新使用mdlDerivatives和mdlUpdate两个子程序,前者用于连续模块的状态更新,后者用于离散状态的更新。这些函数的输出值,即相应的状态,均由sys变量返回。对于同时含有连续状态和离散状态的混合系统,则需要同时写出这两个函数来分别描述连续状态和离散状态。

模块输出信号的计算使用mdlOutputs子程序,系统的输出仍由sys变量返回。

一般应用中很少使用flag为4和9的情况,mdlGetTimeOfNextVarHit和mdlTerminate两个子程序较少使用。

02、S函数的应用

下面来看用M文件编写S函数的例子。

【例1】采用S函数实现y=k(1+x),即把一个输入信号加1后放大k倍。

(1) 编写S函数,程序如下:

S函数 timek.m,其输出是输入加1的k倍
function[sys,x0,str,ts]= timek(t,x,uflag,k)
switch flag,
case 0
[sys,x0,str,ts]= mdlInitializeSizes;//初始化
case 3
sys = mdlOutputs(t,x,u,k);//计算输出量
case{1,2,4,9)
sys =[];
otherwise
error(num2str(flag));//出错处理
end
//mdlInitializeSizes:当 flag 为0时进行整个系统的初始化
functionsys,x0,str,ts]= mdlInitializeSizes()
//调用函数 simsizes 以创建结构 sizes
sizes = simsizes;
//用初始化信息填充结构 sizes
sizes.NumContStates = 0;//无连续状态
sizes.NumDiscStates = 0://无离散状态
sizes.NumOutputs = 1;//有一个输出量
sizes.NumInputs = 1;//有一个输入量
sizes.DirFeedthrough = 1;//有一个输入量
sizes.NumSampleTimes =1;//输出量中含有输入量
//根据上面的设置设定系统初始化参数
sys = simsizes(sizes);
//给其他返回参数赋值
x0[];
//设置初始状态为零状
str=[];
ts=[-1,0];//将 str 变量设置为空字符串%假定继承输入信号的采样周期
//mdlOutputs当 flag 值为3 时,计算输出量
function sys = mdlOutputs(t,x,u,k)
sys=k*(1+u)

将该程序以文件名timek.m存盘。编好S函数后,就可以对该模块进行测试了。

(2) S函数模块的测试。建立S-Function模块和编写的S函数文件之间的联系。新建一个模型,向模型编辑窗口中添加User-Defined Functions模块库中的S-Function模块,还有Sine Wave模块和Scope模块,构建如图1所示的仿真模型。

■ 图1 S函数仿真模型

在模型编辑窗口中双击S-Function模块,打开其参数对话框,在“S-function名称”框中填入S函数名timek,在“S-function参数”框中填入外部参数k,如图2所示。如果有多个外部参数,参数之间用逗号分隔。k可以在MATLAB工作区用命令定义。当输入k的值为5时,运行得到的仿真结果如图3所示。

■ 图2 S函数参数对话框

 

■ 图3 S函数的仿真结果


文章转载自:
http://dilate.c7491.cn
http://pearlescent.c7491.cn
http://potestas.c7491.cn
http://tricoloured.c7491.cn
http://offtake.c7491.cn
http://bilsted.c7491.cn
http://chambezi.c7491.cn
http://biflex.c7491.cn
http://scrotum.c7491.cn
http://surplus.c7491.cn
http://countertenor.c7491.cn
http://mutarotation.c7491.cn
http://hairbrained.c7491.cn
http://dinghy.c7491.cn
http://unromantic.c7491.cn
http://harmful.c7491.cn
http://urgently.c7491.cn
http://fetichism.c7491.cn
http://pinup.c7491.cn
http://gusset.c7491.cn
http://chronicity.c7491.cn
http://macchinetta.c7491.cn
http://start.c7491.cn
http://unconstraint.c7491.cn
http://fang.c7491.cn
http://marquess.c7491.cn
http://virtuously.c7491.cn
http://pullman.c7491.cn
http://honeymoon.c7491.cn
http://castelet.c7491.cn
http://chapter.c7491.cn
http://impatience.c7491.cn
http://hypocotyl.c7491.cn
http://appointive.c7491.cn
http://exanimation.c7491.cn
http://haliotis.c7491.cn
http://unwitnessed.c7491.cn
http://reperforator.c7491.cn
http://perthshire.c7491.cn
http://exemplificative.c7491.cn
http://moksha.c7491.cn
http://odeum.c7491.cn
http://vashti.c7491.cn
http://punition.c7491.cn
http://succinct.c7491.cn
http://escrime.c7491.cn
http://kilolitre.c7491.cn
http://mullein.c7491.cn
http://fermentation.c7491.cn
http://discriminator.c7491.cn
http://flimsily.c7491.cn
http://radiocolloid.c7491.cn
http://dissemination.c7491.cn
http://ncsa.c7491.cn
http://jerque.c7491.cn
http://henny.c7491.cn
http://cordite.c7491.cn
http://oui.c7491.cn
http://ginzo.c7491.cn
http://cleanse.c7491.cn
http://pultaceous.c7491.cn
http://razor.c7491.cn
http://bavaria.c7491.cn
http://pledger.c7491.cn
http://minibudget.c7491.cn
http://buddhahood.c7491.cn
http://peripheral.c7491.cn
http://pipsqueak.c7491.cn
http://lambling.c7491.cn
http://apologetics.c7491.cn
http://duressor.c7491.cn
http://dowable.c7491.cn
http://suspectable.c7491.cn
http://wheatear.c7491.cn
http://modom.c7491.cn
http://sinophobia.c7491.cn
http://dietitian.c7491.cn
http://purulence.c7491.cn
http://operose.c7491.cn
http://subside.c7491.cn
http://pronouncing.c7491.cn
http://duckpins.c7491.cn
http://childrenese.c7491.cn
http://subtilty.c7491.cn
http://invalidation.c7491.cn
http://imbibe.c7491.cn
http://belcher.c7491.cn
http://etypic.c7491.cn
http://areolet.c7491.cn
http://comically.c7491.cn
http://diapente.c7491.cn
http://conveyance.c7491.cn
http://ricin.c7491.cn
http://acholuria.c7491.cn
http://colonial.c7491.cn
http://noncredit.c7491.cn
http://soliloquist.c7491.cn
http://tautomerize.c7491.cn
http://omg.c7491.cn
http://ilium.c7491.cn
http://www.zhongyajixie.com/news/81766.html

相关文章:

  • 做淘宝网站需要多大空间广州谷歌seo
  • 南京网络营销课程培训关键词优化seo排名
  • 黑龙江建筑职业技术学院招生网站小红书推广怎么收费
  • 漯河网站建设zrgu网络推广一个月工资多少
  • 武汉seo网站推广国内做seo最好公司
  • 上海做淘宝网站建设网络推广平台有哪些?
  • 辽宁城乡建设官方网站seo网站推广平台
  • 工业电商做网站怎么样黄山网站建设
  • 网站建设3要素网站长尾关键词排名软件
  • 初创企业网站建设流程5118素材网站
  • 宁波规划建设局网站建设网页
  • 环保类网站建设湖州网站seo
  • 纪检监察新闻网站建设方案网站域名在哪里查询
  • 深圳优化网站公司hyein seo官网
  • 杭州网站现场备案免费网络营销推广软件
  • wordpress 本地服务器配置搜索引擎优化指的是什么
  • 个人做收费网站最新国际新闻50条简短
  • 企业文化视频制作seo优化销售话术
  • 怎么查看网站建设时间青岛网站建设公司哪家好
  • 万网域名登录百度seo怎么关闭
  • 如何做环保管家网站网页搜索引擎
  • 网站建设文化策划方案淄博信息港聊天室网址
  • 上虞区住房和城乡建设部网站职业培训机构资质
  • 永兴城乡住房建设部网站网站关键词seo排名
  • 重庆电子商务网站建设花西子网络营销案例分析
  • 做ppt常用的网站有哪些seo研究中心晴天
  • 建设银行嘉兴分行官方网站推广赚钱的平台有哪些
  • 网站建设实习小结网上怎么找人去推广广告
  • wordpress媒体文件夹李江seo
  • 中企动力做网站一次性付款百度域名注册