Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >FMU变量值与输入不匹配

FMU变量值与输入不匹配
EN

Stack Overflow用户
提问于 2016-08-17 20:11:28
回答 1查看 491关注 0票数 1

在我试图配置的一个简单的协同模拟中,我得到了一些奇怪的行为。我在EnergyPlus中建立了一个建筑能源模型,以测试从JModelica生成的FMU。但是,建筑能量模型会在联合模拟步骤中挂起。然后,我在JModelica中运行了FMU,得到了一些非常奇怪的结果。

Modelica代码是:

代码语言:javascript
运行
AI代码解释
复制
model CallAdd
    input Real FirstInput(start=0);
    input Real SecondInput(start=0);
    output Real FMUOutput(start=0); 
    function CAdd
        input Real x(start=0);
        input Real y(start=0);
        output Real z(start=0);
        external "C"  annotation(Library = "CAdd", LibraryDirectory = "modelica://CallAdd");
    end CAdd;
equation
    FMUOutput = CAdd(FirstInput,SecondInput);
    annotation(uses(Modelica(version = "3.2.1")));
end CallAdd;

上面的代码引用了"CAdd“,这是c代码”CAdd c“的库文件:

代码语言:javascript
运行
AI代码解释
复制
double CAdd(double x, double y){
    double answer;
    answer = x + y;
    return answer;
}

通过CMD中的以下两条命令将其编译成库文件:

代码语言:javascript
运行
AI代码解释
复制
gcc -c CAdd.c -o CAdd.o
ar rcs libCAdd.a CAdd.o

我可以用一个包装器在OpenModelica中运行上面的例子,它工作得很好。

然后,我使用JModelica将上面的代码编译为FMU进行联合仿真。JModelica编译代码为:

代码语言:javascript
运行
AI代码解释
复制
# Import the compiler function
from pymodelica import compile_fmu

# Specify Modelica model and model file (.mo or .mop)
model_name = "CallAdd"
mo_file = "CallAdd.mo"

# Compile the model and save the return argument, for use later if wanted
my_fmu = compile_fmu(model_name, mo_file, target="cs")

然后我模拟了FMU,并用JModelica Python代码得到了奇怪的结果:

代码语言:javascript
运行
AI代码解释
复制
from pyfmi import load_fmu
import numpy as np
import matplotlib.pyplot as plt

modelName = 'CallAdd'
numSteps = 100
timeStop = 20

# Load FMU created with the last script
myModel = load_fmu(modelName+'.fmu')

# Load options
opts = myModel.simulate_options()

# Set number of timesteps
opts['ncp'] = numSteps

# Set up input, needs more than one value to interpolate the input over time. 
t = np.linspace(0.0,timeStop,numSteps)
u1 = np.sin(t)
u2 = np.empty(len(t)); u2.fill(5.0)
u_traj = np.transpose(np.vstack((t,u1,u2)))
input_object = (['FirstInput','SecondInput'],u_traj)

# Internalize results
res = myModel.simulate(final_time=timeStop, input = input_object, options=opts)
# print 'res: ', res

# Internalize individual results
FMUTime = res['time']
FMUIn1 = res['FirstInput']
FMUIn2 = res['SecondInput']
FMUOut = res['FMUOutput']

plt.figure(2)
FMUIn1Plot = plt.plot(t,FMUTime[1:],label='FMUTime')
# FMUIn1Plot = plt.plot(t,FMUIn1[1:],label='FMUIn1')
# FMUIn2Plot = plt.plot(t,FMUIn2[1:],label='FMUIn2')
# FMUOutPlot = plt.plot(t,FMUOut[1:],label='FMUOut')
plt.grid(True)
plt.legend()
plt.ylabel('FMU time [s]')
plt.xlabel('time [s]')
plt.show()

这导致了结果"FMUTime“与python”t“的关系图:

除了看到这种奇怪的行为之外,FMU结果中的输入"FirstInput“和"SecondInput”与python代码中指定的u1和u2不匹配。我希望有人能帮助我更好地理解发生了什么。

最好的

贾斯汀

EN

回答 1

Stack Overflow用户

发布于 2016-08-25 00:15:09

按照@ChristianAndersson的建议更新我的JModelica安装,我上面问题中描述的问题已经解决了。

JModelica 1.17.0于2015年12月发布。

JModelica-SDK-1.12.0于2016年2月发布,由源代码构建而成,修复了问题,并提供了预期的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39005445

复制
相关文章
Access不匹配查询
大家好上节介绍了重复项查询,继续介绍选择查询中的不匹配项查询,不匹配查询也是在查询向导中创建。
无言之月
2020/06/04
2K0
用户输入括号是否匹配
public class brackets { /*算法*/ public static boolean isMatch(String str) { int i = 0; char e, x; SqStackClass<Character> st = new SqStackClass<Character>(); //建立一个顺序栈 while (i < str.length()) {
楠羽
2022/11/18
1K0
微信跨公众号支付(appid 与 openid 不匹配)
1、用一个公众号的appid来进行收款 2、这个公众号的appid需要和商户号绑定 3、用这个appid来获取用户的openid
故久
2019/12/03
5.5K0
偏差、方差和数据不匹配
Human-level指人类在目标问题上的error,比如人眼识别猫,人会识别错的error。
Steve Wang
2019/05/26
9020
如何解决iOS打包提示“AppID与profile文件不匹配”
云打包 发布 iOS端 发布 报错 Profile文件中的应用标识 与打包配置的包名不匹配。
iOS程序应用
2023/03/24
1.6K0
Codeigniter文件上传类型不匹配错误
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下:
大江小浪
2018/07/24
2.4K0
CA2017:参数计数不匹配
值 规则 ID CA2017 类别 可靠性 修复是中断修复还是非中断修复 非中断 原因 日志记录消息模板中提供的参数数目与命名占位符的数目不匹配。 规则说明 此规则标志记录器调用的消息参数数目不正确。 如何解决冲突 将模板格式的占位符的数量与传递的参数的数目匹配。 何时禁止显示警告 不禁止显示此规则发出的警告。 另请参阅 可靠性规则
用户4268038
2022/02/20
9130
检测到“RuntimeLibrary”的不匹配项
错误是引用的是静态库,但是配置成动态库导致的,只需要修改成”多线程(/MT)“就可 这段错误的意思就是我调用的是静态库,但是我程序是dll动态,但是我这dll调用静态库就调用不成了吗? 解决方案如下
用户3519280
2023/07/08
1.2K0
EasyDSS前端用户管理界面分页与页面内容不匹配的优化
EasyDSS视频平台作为一套网页视频流媒体平台,观看视频推流直播不需要安装插件,网页直接即可播放,且近期我们已经更新了系统的内核,在性能上也会有进一步的提升。
TSINGSEE青犀视频
2021/09/13
1.8K0
React路由的模糊匹配与严格匹配
模糊匹配是React Router的默认匹配方式。在模糊匹配中,路由会根据URL的路径部分进行匹配。当URL的路径部分与路由的路径部分部分匹配时,就会触发匹配。
堕落飞鸟
2023/05/20
2K0
CV岗位面试题:输入图片尺寸不匹配CNN网络input时候的解决方式?(三种以上)
解析: 1. two-fixed方法:直接对输入图片Resize缩放; 2. one-fixed方法: 固定一边,缩放另一条边; 3. free方法:去掉FC全连接层加入全局
AI算法与图像处理
2021/03/12
1.7K0
JavaScript不选中Input直接按数字输入数字
简述 JavaScript不选中编辑框Input按键盘上的数字直接输入到Input 代码 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <tit
xlj
2021/07/14
1.9K0
error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”的解决方案
error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(***.obj 中)
AIHGF
2019/02/18
5.7K0
EasyNVR系统管理基础配置下“保存”按钮与页面位置不匹配问题调整
EasyNVR做新版本的前端测试时,发现在系统管理界面中,底部保存按钮显示在界面外,脱离了白底界面,视觉上缺乏美观,因此本文是对此处做调整的简单分享。
EasyNVR
2021/09/01
5890
EasyNVR系统管理基础配置下“保存”按钮与页面位置不匹配问题调整
Ubuntu: HDF5报错: HDF5 header version与HDF5 library不匹配
Warning! ***HDF5 library version mismatched error***
知忆
2021/06/16
1.6K0
EasyNVR系统管理基础配置下“保存”按钮与页面位置不匹配问题调整
EasyNVR做新版本的前端测试时,发现在系统管理界面中,底部保存按钮显示在界面外,脱离了白底界面,视觉上缺乏美观,因此本文是对此处做调整的简单分享。
TSINGSEE青犀视频
2021/09/01
5530
EasyDSS点播视频添加水印的位置与定义的位置不匹配怎么办?
去年年底我们在EasyDSS上增加了水印功能,用户可以自由定义水印的格式及位置,不管是网页端的视频还是手机端的视频,都支持添加水印,如果大家对水印功能的开发感兴趣,可以参考我们之前的EasyDSS新增生成水印模块记录。
TSINGSEE青犀视频
2021/09/28
6710
点击加载更多

相似问题

输入与条件不匹配。

33

输出与输入不匹配

22

任务与输入不匹配

25

SAS变量值与指定的格式不匹配。

20

MYSQL值与输入不匹配

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文