initialization - Modelica:初始打印时只打印一次
问题描述
我在系统模型中多次使用的组件内有以下 Modelica 代码:
parameter fileName = "world.log"
equation
when initial() then
if not Modelica.Utilities.Files.exist(fileName) then
Streams.print("Hello World", fileName);
end if;
end when;
我希望在创建的文件中准确找到一行代码,但通常会打印 5 行或更多行,但有时它似乎按预期工作。在 Windows 10 上使用 Dymola 2019。有人可以澄清发生了什么吗?文件存在性检查似乎不可靠!?
解决方案
when initial()
根本与事件无关。它被转换为一个初始方程,因此可以执行多次。当只执行一次方程时,外部对象要可靠得多。
推荐阅读
- javascript - 如何在本地主机上开发时使 Progressive Web App 的启动画面图标可用
- algorithm - 查找关节点组
- date - #docusignAPI 获取数据发送时间
- algorithm - 通过最大流量约束在未加权图中找到最短路径
- angular6 - Angular 6 [ngValue] 未定义
- javascript - 如何使用 JQuery 在空文档中附加 HTML 标签?
- python - 如何修复烧瓶应用程序中的 url_prefix?
- vue.js - 如何在 Vue JS 中使用 v-for 将多维数组显示为一级选择选项
- c# - 使用内置中间件在 .NET Core 中发行令牌
- php - Laravel 监听包事件