设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7794|回复: 8

[求助] 如何动态改变一个Item的属性

[复制链接]
发表于 2009-3-19 22:39:06 | 显示全部楼层 |阅读模式
5仿真币
如何动态的改变一个Item自身的属性(参数)?
% n, `% M9 d. E: K4 r难道在通过Equation进行计算之后还需要把变化后的结果再通过out、然后通过Set来对该Item进行设置才行?9 P" q$ t4 w  h) F
这也太麻烦了吧。不知道有没有更简便的方法。。。
附件: 您需要 登录 才可以下载或查看,没有帐号?注册

最佳答案

查看完整内容

既不需要 GET, 也不需要 SET. 采用 Equation (I) 模块 (在 Item 模块库中)。 在 Equation (I)模块的输入和输出的Variable Type 里面都选择 _Attribute,找到需要更改的属性。 见图片。
发表于 2009-3-19 22:39:07 | 显示全部楼层
既不需要 GET, 也不需要 SET.  采用 Equation (I) 模块 (在 Item 模块库中)。 在 Equation (I)模块的输入和输出的Variable Type 里面都选择 _Attribute,找到需要更改的属性。
' R, E2 G6 A4 O/ @2 b$ h9 N6 ?- R8 e8 J7 Y0 L
见图片。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2009-3-19 23:38:04 | 显示全部楼层
原帖由 linweixu168 于 2009-3-19 23:06 发表 2 c/ E3 b# H1 Z" U6 m& ?) u
如果需要计算肯定要重新赋值了,如果不需要计算可以动态去读取全局数组的值或者读取放在数据库中的值啊
) ~6 w, Z. ~. ?: e8 q

; J  M- H3 Y$ i% s9 ^+ H  E是重新计算的......6 N- u9 g- H6 h% x$ j0 {" c
也就是说计算之后必须通过Set再赋值一遍是吧?' V0 j5 ], Z  }/ q. H! t
好像Equation中传入的值是值传递的(引用传递可以修改原值的)
发表于 2009-3-19 23:51:30 | 显示全部楼层
不需要连接一个 Set 模块。可以在 Equation 的输入和输出都定义相同的属性名称,比如说,名字叫 ProcessTime,然后在Equation 中直接写 - d; h% p9 v! I* T
* k$ f. J( A$ D/ G
ProcessTime=ProcessTime+2; 7 i5 T$ t% L$ o' q7 f/ Q

5 Q$ Q- F8 }/ c这样就可以把原来的属性值加2之后再赋给同名属性。
 楼主| 发表于 2009-3-20 10:24:37 | 显示全部楼层
原帖由 iesim 于 2009-3-19 23:51 发表
* ~6 C5 j2 S3 w. H不需要连接一个 Set 模块。可以在 Equation 的输入和输出都定义相同的属性名称,比如说,名字叫 ProcessTime,然后在Equation 中直接写
- ]. Z3 |% i4 e' \9 H4 m! [) G1 f, y2 \( h9 K+ ^
ProcessTime=ProcessTime+2;
8 {8 a3 p/ m* Y: G8 _0 P0 s% A% @8 [  W0 E( X- }0 [
这样就可以把原来的属性值加2之后再赋给同名属性。 ...
/ D, ]3 H3 S3 B: ^
3 p1 k, B1 M# D# B) z" B, j8 u
不对呀,我要改变的是一个Item的属性值,按你的操作最后的结果仍然影响不到该属性值。
2 e/ T  r) J2 z- f9 a* {比如说一个Item的属性为a,通过一个Get取得该Item的属性,传入Equation的connector命名为aa,输出connector命名为aa,即使执行了aa=aa+2;
) O# p: H5 G" m( k8 O  T该Item的属性a值仍然是不变的。
 楼主| 发表于 2009-3-20 10:39:14 | 显示全部楼层
哦,谢谢,我把VariableType选成了_Connector0
2 |6 n8 ?8 _5 v, |* I- A9 b8 e: ?( J- u# M+ a* \! t$ _
[ 本帖最后由 higer 于 2009-3-20 10:44 编辑 ]
发表于 2009-3-20 10:41:27 | 显示全部楼层
原帖由 higer 于 2009-3-20 10:39 发表 5 r  B) m7 o% y% S  }1 I
哦,谢谢,我用成了Equation模块,所以比较麻烦。

: ]) d4 [1 W0 ?: K& s. P
' s# ^% `6 e) |' R$ H$ ?- t3 U' N一般来说,在离散模型中,尽可能采用 Equation(I) 模块,由通过的小球来触发程序的计算;在连续模型中,采用 Equation 模块。
 楼主| 发表于 2009-3-20 10:46:11 | 显示全部楼层
原帖由 linweixu168 于 2009-3-20 10:39 发表
8 X: ^1 i0 q3 u& [0 ~
7 V' g$ X% S+ O; C; @同学建议你把基本功打牢,再用一些模块实现你复杂的想法。模块不熟,就不能实现了

/ O* `! T: G; U: i! k! @  g" X" i8 H- K, [6 ^
关键是那么厚两本手册,怎么看下去啊?我只有边用边学,边学边用咯。
发表于 2009-3-20 20:48:52 | 显示全部楼层
就是要对者手册学,里面有大量案例和讲解,那样即系统又全面,你这样打游击很难全面掌握,而且很容易把一些模块很简单就能实现的问题搞复杂,因为你不了解那个模块。
- k+ [% {7 Z! Q) {1 Z& ?: I' C: @个人观点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2025-12-12 03:18 , Processed in 0.014467 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表