[求助]S函数中能否调用M函数

我现在写了一个S-FUNCTION

里面调用了一些M函数,当把S函数的名字写入S—FUNCTION块的时候

总是出现

??? SWITCH expression must be a scalar or string constant.

Error in ==> HSV at 32

switch flag,

不知道该如何处理了,请教大家了

AreaCXJTFT等都为M函数,如果我调用方式出现错误,请指出阿,:biggrin: :biggrin:

程序如下:

看着很麻烦,其实就是判断区域Area后,根据Area的值选择输出的计算方式:

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

switch flag,

case 0

[sys,x0,str,ts] = mdlInitializeSizes; % Initialization

case 3

sys = mdlOutputs(t,x,u); % Calculate outputs

case { 1, 2, 4, 9 }

sys = []; % Unused flags

otherwise

error(['Unhandled flag = ',num2str(flag)]); % Error handling

end;

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

sizes = simsizes;

sizes.NumContStates= 0;

sizes.NumDiscStates= 0;

sizes.NumOutputs=7;

sizes.NumInputs=2;

sizes.DirFeedthrough=0;

sizes.NumSampleTimes=1;

sys = simsizes(sizes);

str = [];

ts = [-1 0];

function sys = mdlOutputs(t,x,u)

P=u(1);

Tamp=u(2)+273.15;

if (273.15<=Tamp<=1073.15) &( 0.007<=P<=100)

if (273.15<=Tamp<=623.15)

Pst=Ps(Tamp);

Pb12=Pst;

if P>=Pb12

Area=1;

else

Area=2;

end

elseif (623.15

Pb23=P23(Tamp);

Pst=Ps(Tamp);

if (623.15

if P==Pst

Area=4;

elseif (Tamp==647.096)&(P==22.064)

GV=0.003106;

Area=4;

end

elseif P

Area=2;

else

Area=3

end

else (863.15<=Tamp<=1073.15)

Area=2;

end

else

return

end

switch Area,

case 1

PS=16.53; %1区基本方程3.1中压力常数,MPa

TS=1386; %1区基本方程3.1中温度常数,K

GH=1;

GS=1;

GV=1;

LH=TS*R0*(TS/Tamp)*AreaARr(P,Tamp);

LS=R0*((TS/Tamp)*AreaARr(P,Tamp) -AreaAR(P,Tamp));

LV=TS*R0*AreaARY(P,Tamp)/(PS*1000);

subArea=1;

case 2

TS=540; %TS=540K

PS=1; %PS=1Mpa

LH=1; %2_过热蒸汽区中水的比焓不计算

LS=1; %2_过热蒸汽区中水的比熵不计算

LV=1; %2_过热蒸汽区中水的比容不计算

if P<=10

GH=R0*T0*(TS/Tamp)*AreaBaH(P,Tamp);

GS=R0*AreaBaS;

GV=R0*T0*(P/PS)*AreaBaV(P,Tamp);

else

GH=R0*T0*(TS/Tamp)*AreaBaH(P,Tamp);

GS=R0*AreaBaS;

GV=R0*T0*(P/PS)*AreaBaV(P,Tamp);

end

subArea=2;

case 3

TS=647.096; %TS=647.096K

LH=1;

LS=1;

LV=1;

GH=R*TS*(AreaCTFT(P,Tamp)+AreaCDFD(P,Tamp));

GS=R*(AreaCTFT(P,Tamp)-AreaCF(P,Tamp));

GV=AreaCV(P,Tamp);

subArea=3;

case 4

LH=R*T*(AreaCNDTFT(P,Tamp)+AreaCNDDFD(P,Tamp));

LS=R*(AreaCNDTFT(P,Tamp)-AreaCNDF(P,Tamp));

LV=AreaCNDV(P,Tamp);

GH=R*T*(AreaCXJTFT(P,Tamp)+AreaCXJDFD(P,Tamp));

GS=R*(AreaCXJTFT(P,Tamp)-AreaCXJF(P,Tamp));

GV=AreaCXJV(P,Tamp);

subArea=4;

otherwise

return

end

sys=[LH,LS,LV,GH,GS,GV,subArea];

matlab 中调用s函数表达式,[求助]S函数中能否调用M函数相关推荐

  1. js调用php函数兵每秒刷新,深入理解JavaScript立即调用函数表达式(IIFE)

    立即调用函数 目录一.了解立即调用函数表达式 二.立即调用函数表达式报错了? 三.使用立即调用函数的正确姿势 四.常见使用场景 写在最后 一.了解立即调用函数表达式 1.1 思维导图 1.2 什么是立 ...

  2. 一文探索 JavaScript 最强大特性—函数表达式

    函数是 ECMAScript 中最有意思的部分之一,这主要是因为函数实际上是对象.每个函数都是 Function 类型的实例,而 Function 也有属性和方法,跟其他引用类型一样.因为函数是对象, ...

  3. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别

    函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...

  4. 深入理解JavaScript系列(2):揭秘命名函数表达式(转)

    前言 网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点. 简 单的说,命名函数 ...

  5. js-面向对象的程序设计,函数表达式

    面向对象的程序设计: 1.属性类型:数据属性.访问器属性 数据属性:wirtable:false –只读:如果尝试为它赋值,会忽略 Configurable:false-不能从对象中删除属性 在调用O ...

  6. 函数表达式和函数定义

    匿名函数:函数如果没有名字,就是匿名函数 * 函数的另一种定义方式 函数表达式: 把一个函数给一个变量,此时形成了函数表达式 var 变量=匿名函数; 例子: * var f1=function () ...

  7. 函数声明与函数表达式的区别

    一. 定义函数的方式 定义函数有两种方式:函数声明和函数表达式. 函数声明的语法是这样的: function functionName(arg0,arg1){//函数体 } 首先是function关键 ...

  8. javascript函数声明和函数表达式

    JavaScript中定义函数最常用的方式是函数声明和函数表达式.这两种技术非常相似,有时甚至难以区分,但在后续章节中可以看到,它们之间还是存在着微妙的区别. JavaScript定义函数最基本方式是 ...

  9. javascript高级程序设计之函数表达式

    1.闭包 指有权访问另一个函数作用域中的变量的函数.创建闭包的常见方式,在一个函数内部创建另一个函数. 1.1 闭包与变量 闭包只能取得包含函数中任何变量的最后一个值. 1.2 关于this对象 匿名 ...

最新文章

  1. mybatis使用注解开发
  2. 十大响应式Web设计框架
  3. 127. Leetcode 242. 有效的字母异位词 (哈希表)
  4. Symfony 4.3 发布,带来搜索引擎自动保护
  5. alchemy php,Python下SQLAlchemy的简单介绍
  6. SAP C4C Lead明细页面里Account字段的绑定路径
  7. 安卓相机 高帧率_Android MediaCodec和摄像头:如何实现更高的帧速率从相机获取帧原始数据?...
  8. 玄学········为什么在eclipse上更改程序之后运行之后好像没更改一样
  9. SaaS 正在 Rails 化
  10. python模拟浏览器下载文件_模拟浏览器下载文件?
  11. python编程语言_Python编程语言的历史
  12. 【译】45种Javascript技巧大全
  13. IOS逆向(9)DebugServer + LLDB
  14. 虚拟机实现远程桌面连接
  15. 《Processing SPARQL queries over distributed RDF graphs》——读书笔记
  16. 中国甜奶油粉市场趋势报告、技术动态创新及市场预测
  17. ORB_SLAM2运行TUM数据和实时数据
  18. 文件系统学习 RAID原理学习 RAID0 RAID1 RAID2 RAID3 RAID4 RAID5 RAID6 RAID10
  19. 读书笔记:《不抱怨的世界》
  20. 齿轮与减速器输出端连接方式

热门文章

  1. Spring Boot集成kafka完整版
  2. 学习笔记:vsphere6 迁移物理机,指定被迁移的IP报错
  3. 如何实现1像素的表格
  4. 【sublime Text】sublime Text3安装可以使xml格式化的插件
  5. jQuery在绑定事件时如何传入参数
  6. Reinhold就Jigsaw投票一事向JCP提交公开信
  7. CentOS下实现postgresql开机自启动
  8. IMAP 称作交互邮件访问协议
  9. WF工作流开发回顾:介绍
  10. CISCO路由器配置基础2