



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、I.SaberMAST 模型分类MAST 可以描述以下三类系统,每一类系统的模型写法各不相同。(1)连续模拟系统(continuousanalogsystems)在仿真连续模拟系统时仿真器按照仿真时刻反复求解一系列代表仿真模型的微分方程。此类系统的每一个节点(node)都包括两个系统变量(systemvariable),一个 across 量和一个 through 量, 通常每个量都与一个单位(unit)关联, 在 cosmosscope 中显示波形时可以显示相应单位。以电气模型为例,每一个节点都包括一个 across 量(电压)和一个 though 量(电流),单位分别是 V 和 Ao连续模
2、拟系统还包括液压系统和磁路系统。(2)事件驱动系统(eventdrivensystems)此类系统的典型代表是数字逻辑系统,仿真器只有在事件发生时(如输入量发生变化)才计算并更新各个输出。此类系统的节点只包含一个无单位量。(3)数据流系统(dataflowsystems)此类模型的典型代表是控制系统,和连续模拟系统类似,可以按照时域或频域仿真,但是严格区分输入量和输出量,节点只包含一个无单位量。2.MAST 基本概念2.1MASTtemplate 基本形式jMASTtemplate 是用 MAST 语言描述一个仿真模型的基本单位。MASTtemplate 是按照特定的语法编写的纯文本文件,后缀
3、是.sin。MASTtemplate 的基本格式包括以下几个部分:I(1)templateheader 一声明 template 的名称(reference),管脚(pin)和参数(argument)基本形式如下:templateTEMPLATE_NAMEPIN1PIN2PIN3尸 ARG1,ARG2,ARG3PIN_DECLARATIONARG_DECLARATION容易看出 templateheader 由关键字 template 开始,后面紧跟 template 的名称,再接下来是管脚(pin)的名称,然后是一个等号(=),接下来是参数名、值得注意的是等号左边的各个名称不需要用逗号(,)
4、分隔,而等号右边必须用逗号分隔各个参数。(2)templateheaderdeclaration 一对 pin 和 argument 类型的进行声明MAST 的所有变量在使用前都必须声明其类型。第一行的模板参数声明以后是管脚的类型声明和参数类型声明。形式如下:PIN_TYPEPIN_NAMEARG_TYPEARG_NAME 管脚(pin)的类型根据 template 的类型可以定义为 electrical(电气模型)、input/output(控制系统模型)和 state(数字系统模型)等。参数(argument)类型通常为无单位简单量 number。例 2-1 理想电流源templateis
5、ourcepm=iselectricalp,mnumberisequationsi(p-m)+=is对于参数较多较复杂的模型可以将参数分类,再将同一类的参数定义为一个结构(struct)(3)templatebody-对模型的行为进行描述欢迎共阅结构化(structured)的模型包含本地变量声明(localvariabledeclaration)和若干个段(section),各个段分别完成不同的任务。最重要的段是 equationssection,template 在此段中对系统变量(systemvariable)赋值。对于电气模型,需要赋值变量是节点电流;对于控制系统,是输出量。电气模型见
6、例 2-1o在连续模才系统中 equationssection 的任务在于给出用于求解通过模型管脚节点的 through 量的表达式,对于电气模型而言,即给出节点电流的表达式。仿真器利用给出的节点电流的表达式代入每个节点的 KCL 方程,从而最终求出节点电压,节点电压即系统变量。对于电压源和电感则情况有所区别,此类模型的系统变量是电流而不是电压。例 2-1 中 i(p-m)表示从节点 p 到节点 m 的电流。由于电路网络中可能有多个模型并联在相同节点,每个模型对节点电流的作用应该是使其增加相应值,所以对其赋值应该用+=o例 2-2 控制系统的加法器templateadderin1in2out=
7、kinputin1in2outputoutnumberkIzequationsout=(in1+in2)*k对于事件驱动型的数字系统,templatebody 中描述输入输出关系的段不是 equationssection,而是 when 语句(whenstatement)。例 2-3 逻辑与门templateandin1in2out=tdstatelogic_4in1in2outnumbertd=0statelogic_4out_statewhen(event_on(in1)|event_on(in2)if(in1=l4_1)&(in2=l4_1)out_state=l4_1Ielse
8、out_state=l4_0if(driven(out)=out_state)schedule_event(time+td,out,out_state)其中 template 的管脚类型为 state,数据类型是 logic_4。whenstatement 的语法为when(CONDITION)其中 CONDITION 通常用带有特定参数的 event_on()函数特定信号发生变化的事件, 即当作为 event_on()的参数的信号发生变化时 CONDITION为真,执行 when 后面的语句。对数字管脚信号的幅值必须使用 schedule_event()语句,这样才能将事件加入仿真器的事件队
9、列,从而是输出信号改变以后触发下一级的模块。schedule_event 的参数如下:schedule_event(TIME,STATE_NAME,VALUE)表示在指定时刻令指定名称的 state 变量变为给定的值。time 是仿真器提供的系统变量,表示当前仿真时刻。欢迎共阅在例 2-3 中参数 td 反映输出信号发生变化所需的延迟时间。中间变量 out_state 用于与当前输出管脚状态比较,从而在输入发生变化后仅当输出也发生改变才触发事件。对本地局部变量的复制赋值直接用等号(=).。2.2MASTtemplate 变量声明在一个 template 中除了作为模型节点的 pin 变量和设置
10、参数 argument 变量以外,通常还必须在 templatebody 中声明若干本地变量。通常可以分为无单位局部变量、var/ref 变量以及 val 变量。(1)无单位局部变量-不与单位关联, 不具有实际物理意义, 仅在模型内部有效无单位量通常用作输入参数的中间变量, 只可在 parametersection中赋值。通常声明为简单标量(scalar)类型 number。除了 number、enum 等标量类型,局部变量还可以声明为复合(composite)类型,如结构(struct)、数组(array)等。例 2-4 可变电阻templatevar_rpm=r_max,ratioelec
11、tricalp,mnumberrmax,ratio_,Iznumberrparametersif(ratio1.0|ratiom)=(v(p)-v(m)/r(2)var 和 ref 变量-在 template 中声明的系统变量,在系统范围内有效var 变量通常作为 equationsection 中的系统中间变量,用于作为 through 量(例如电流)不能直接由关系式表达的情况。var变量仅能在 eqationssection 中赋值。考虑理想电压源的情况,流过电压源的电流由外电路决定,而与模型内部无关,电流无法用内部表达式给出,所以必须引入 var变量。var 变量的声明格式如下:varU
12、NITVAR_NAME 例 2-5 理想电压源templatevsourcepm=vsIIelectricalp,mnumbervsvariivsequationsi(p-m)+=ivsivs:v(p)-v(m)=vs本例中 ivs 是 var 变量,单位是 i,表示从节点 p流向节点 m 的电流。ivs:v(p)-v(m)=vs 表示 ivs 的值由随后的关系式确定。仅从此式中无法确定 ivs,所以仿真器在保证此式成立的情况下根据总体电路来确定 ivs欢迎共阅electricalp,mnumberind(variilequationsi(p-m)+=ilil:v(p)-v(m)=d_by_d
13、t(ind*il)本例中 il 表示电感电流, d_by_dt 表示对时间求导数。由于 MAST 的表达式不支持积分运算,因此电感电流与电压的关系必须表示为电压是电流的对时间的导数,所以无法显式给出电流的表达式,故将电流声明为 var 变量。参看例 2-1 理想电流源。对于数字系统,与 var 变量类似的是 state 变量。ref 变量也是系统变量,在系统范围有效,但是在一个 template 内部声明的 ref 变量表示在另一个 template 中声明的 var 变量例 2-7 电流控制电压源templatecvtcipm=kreficielectricalp,mnumberkvarii
14、xx#、IMequationsi(p-m)+=ii:v(p)-v(m)+=k*ci(3)val 变量-本地有单位变量,仅在模型内部有效val 变量通常用作计算模型内部参数的中间变量,仅可在 valuessection 赋值。运行时仿真器将 valuesection 和 equationsection合并。同时 val 变量在仿真结束后可以用 exact 命令提取到 cosmosscope 中观察。例 2-8 线性电阻templaterespm=rIelectricalp,m.numberpIIvalppowervaliivalvvvaluesv=v(p,m)i=v/rp=v*iequation
15、si(p-m)+=i本例中 i、v 和 p 都可以用 exact 命令提取并观察。欢迎共阅2.3MAST 与 C 语言比较MAST 大部分语法形式与 C 语言相近,但也有很多区别如下:(1)每一行代码用回车换行,而不用分号(;)。当一行代码未写完就需要换行时必须用反斜线(2)逻辑和关系运算符分别是相等=、不等=、与&、或|,其他和 C 语言类似(3)注释语句以#开始,而不是/*/或者(4)每一个 section 后面的左花括号必须紧跟 section 的名称,不能出现换行,否则会报错。如value.)正确而 value)会出错。(5)变量声明比较复杂, 通常需要声明数据类型和变量类型。
16、 数据类型不同, 简单类型包括 integer、 number、 string 和 enum,复合类型包括 struct、union 和 array。3.MAST 建立模型实例 3.1 控制系统的二阶环节根据二阶环节的定义,令输入量为 u,输出量为 y(t),则 s 域的输入输出关系为Y(s)/U(s)=K/(s+p1)*(s+p2)其中 K 是开环增益,pl 和 p2 是两个极点。将等式展开可得sA2*Y(s)+(p1+p2)*s*Y(s)+p1*p2*Y(s)=K*U(s)改写为时域表达式可得d(dy/dt)/dt+a1*dy/dt+a0*y=K*u 其中 a0=p1*p2,a1=p1+p
17、2.由于 MAST 不允许表达式中出现两个微分项相乘, 所以必须展开至这种最简形式。 此外saber 并不支持在同一个表达式中出现二次和二次以上的微分,因此必须声明一个中间变量表示一次微分,从而将原来的二次微分表示为此中间变量的一次微分。根据这些分析,可以写出二阶环节的 template 如下所示例 3-1 控制系统的二阶环节templatetrans_20rderinout=a0,a1,kIinputnuin.outputnuoutIInumbera1,a2,kIIvarnuout_d1equationsout_d1:out_d1=d_by_dt(out)out:d_by_dt(out_d1
18、)+a1*out_d1+a0*out=k*in)写好此 template 以后,将其保存为 trans_20rder.sin。在 saber 中选择 File-New-Symbol,再选择Tools-Drawingtools,画好需要的模型符号。再点右键 Create-inputport 和 outputport 放置输入端口和输出端口,并命名为 in 和 out。如图所示再设置模型的 II 性(properties),添加一个属性 primitive,值为 trans_2order。再次打开 properties 时可以看到 saber 已经自动添加了 template 中声明的输入参数,此
19、处将所有输入参数的值设置为*req*。.最后把模型保存为 trans_20rder.ai_sym。为了验证模型的正确性,新建一个原理图,右键菜单选择 GetPart 书 ySymbolName,浏览并添加 trans_20rder.ai_sym,设置 a0=100,a1=8,k=100。从参数可知这是一个欠阻尼二阶环节。再添加一个阶跃信号,结果如图所示。欢迎共阅3.2 离散有效值转换模块对正弦信号等间隔采样,令每个信号周期内的采样点数为 N,则信号的有效值可以根据均方根值的定义按照以下公式计算:因此只需获得输入信号在一个周期内的平方和,就可以根据上式计算出信号的均方根值。计算输入信号在多个时间点的平方和是一个累积的过程,在每个采样时刻必须已知上一个时刻的值,因此数据的平方和计算结果必须用 MAST 的系统变量保存。在数字离散系统中,系统变量是 state。根据这些分析,写出的 template 如下:例 3-2 离散有效值转换模块templatez_rmszinsmpzout=fr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新零售背景下实体书店顾客体验升级研究报告
- 2025至2030年中国减肥药行业市场深度分析及未来发展趋势预测报告
- 解析卷北师大版9年级数学上册期末试题附答案详解【轻巧夺冠】
- 解析卷山东省乐陵市中考数学真题分类(位置与坐标)汇编章节测试试题(含答案解析)
- 解析卷人教版8年级数学下册《平行四边形》定向攻克试题(含详细解析)
- 2025版水利工程地质勘察合同范本
- 2025办公空间租赁合同(含装修及维护条款)
- 2025年度润滑油产品回收与再利用合同
- 2025年度专业图形设计电脑租赁合同范本
- 2025年度餐饮企业员工职业培训合同范本
- 生产管理办法范本
- 肾脏先天畸形超声检查
- 混凝土防暴墙拆除方案(3篇)
- 精神病患者的康复护理计划
- 心理健康与寝室生活
- 语“你相遇”文启新程-2025年秋季高一语文开学第一课-2025-2026学年高中主题班会
- 个性化教育实施策略
- 2025年安全生产考试题库(安全知识)安全培训课程试题
- 试述ABC库存管理办法
- 13.2+磁感应强度+磁通量+课件-2024-2025学年高二上学期物理人教版(2019)必修第三册
- 急诊科护理月质量分析
评论
0/150
提交评论