小鹿数值仿真-纯国产仿真算法平台(局部替代Matlab与trnsys)-教程与交流

小鹿数值仿真-国产冷、热、电数值模拟平台

第一章 功能介绍、使用入门



前言

------简略个人介绍,本人是热能与动力工程专业的,在社会浮沉十来年,做过算法(热力空调制冷),搞过软件,帮助过一些高校、企业的宝子们做算法解算、工况模拟、数字孪生等。除了产品思路外,写算法和编程的技能基本都是在CSDN上自学的,故把交流的帖子写在这里,希望也能够反馈一些灵感给CSDN平台的宝子们。
------为什么要搞这个数值模拟仿真平台?大方面的情怀就是巴拉巴拉巴拉…随着川普贸易战科技战的展开,逐渐传来了matlab对中国高校、科研机构禁用等仿真软件禁用的消息,也对我这个专业应用造成了很大的困扰。一来很多老师绕过禁用使用matlab编写空调制冷的模拟算法,结果拓展途径没了,希望能够对接数字孪生、对接网站、链接物联网控制器等还得找matlab官方花钱搞,或者需要比较高的计算机技能,自己折腾好久,哪怕有这股劲儿也会面临软件不开放接口的窘境。咱的目标,是在暖通空调节能、制冷节能、燃气管网、市政管网、热力管网五个领域,在国内逐步替代matlab(都是热动所能涉及到的,和流体、换热相关的领域)。
------额~~小方面的原因就是,自己边工作边做这个花了接近四年的业余时间了,希望分享出去能有更多的用户,收集更多的反馈,将其完善的更好,争取真正能够做到上一段落中的大情怀巴拉巴拉…


一、小鹿数值仿真是干啥的?

先上截图:小路数值仿真首先,它是一个满足任意专业的工科工程师,在不需要学习复杂编程技能情况下(会高中学的加减乘除、判断、循环就行),就能写出模块化算法、项目组态、可后台运行算法项目的工具。无需编程即可自定义变量名称、unity/网页等前端可方便地对接变量的便捷化开发工具。基本满足化工、热力、管网等行业的组态应用需求。如果您是程序员,项目里想写点算法,但又不想自己写数据库、对接接口、编译、图形展示等一大堆功能,用这个也能很简单的就实现。
然后,就是针对特定专业的特色功能了:
1.智能管网/电网解算,热动、市政管网专业需要不可压缩流体的流体管网智能解算功能,成熟度98%(留2%怕自己骄傲);微电网会用到的电网矩阵解算,咱也做到了低频的瞬态解算,成熟度80%(还差三极管的精度调试和节点电压为负值时的一些问题)。
2.丰富的流体物性库调用支持,126种工质,暖通制冷计算需要使用nist的refprop计算空气、制冷剂的物性(国际国内基本认可此库的精度),咱能对接,而且打包了便捷使用的用法,成熟度100%(近8年的使用测试调试);
3.强制流量解算,暖通制冷行业中,压缩机设备的运行模拟是很特殊的,流量取决于压缩机本身的吸气、吸气密度以及后端的压强,本平台应该是国内唯一一个成功在智能流体管网解算中嵌入强制流量支持的软件。
4.管网水锤自动解算,这研究的人少,近些年才逐渐变多,实验参数也少,理论计算能支持,精度调试需要对照实际实验参数,需要的可以单独联系我。
5.支持天然气物性解算以及长输管线的节点压力、天然气的流量等自动解算。
6.注:目前还没做到两相流计算的底层支持,有懂这个可以将算法写进模块中尝试一下,这方面有待提高。

二、简易入门,使用自带模块库,搭建一个简易项目入门

1.打开软件并登录

----左下角用户标点击可登录,还没有帐户的可注册一下。
----新注册帐户自动可免费试用一个月。
----登陆后,也可生成推荐码,推荐好友使用,两个人可同时增加两周试用时间。也就是说,如果您有刷拼多多那股劲儿,分享二十个好友,就能用40周,快一年了。这么宽松的授权,主要还是期望用的人多一些,都用起来,没有想通过个人用户来赚点啥。
在这里插入图片描述

2.页面布局讲解

----左侧“+”号,新建项目按钮;
----左侧“文件夹图标”,打开项目按钮;
----左侧"FDSZL",是已经打开项目按钮,点击切换过去。
----模块列表,列表中有分组名称、模块名称在左侧,鼠标悬浮背景框可有动态变化,点击模块列表,可新建并弹出一个,摆放到画布中。
----画布顶部分页按钮,一个项目一张画布组态可能面积不够,最多可有16页。
----右上角,是节点列表,四种节点,两种链接符号,可连接不同画布之间的管路。
----右侧是控制按钮,从上到下,分别是保存项目(点动)、运行项目(自锁,再点击一下可结束运行,运行失败也会恢复)、暂停(自锁,按下暂停,再按一下继续运行)、步进(点动,点一下就运行一个循环,可控制一步一步往下运行,常用于调试数据)、导出数据库、导入数据库、清理全部(清理后台运行程序)、初始化(重新初始化所有模块的变量,90%用不到)。
----左下角是显示属性页面,可显示模块、节点、连线(后面会介绍)的属性。
在这里插入图片描述
----下图左下角切换主题,重启生效,可明亮色调、暗色调相互切换。
----左侧“模块编辑数据通讯”按钮,点击可进入模块编辑界面,此时模块列表产生变化,下部多出三个按钮。
----鼠标悬浮于模块上,会弹出四个编辑按钮,分别是锁定模块(不可再被编辑)、打开模块编辑工具、将模块编译成exe、删除模块。
----模块列表左下方,设有添加分组、编译全部模块、保存全部模块按钮。
在这里插入图片描述
----暗色调主题界面
在这里插入图片描述

3.新建项目

----点击左侧“+”号,弹出名称编辑框,此框仅支持英文、数字,其他不支持;
在这里插入图片描述
----输入“ceshi”作为项目名称(“测试”全拼),点击确定,左侧列表会显示“CESHI”项目选项,点击CESHI按钮,会进入此项目的画布,咱在模块列表中,点击SOCURCE模块,会弹出一个模块图标并跟随鼠标运动。(请注意,是单机,不是拖拽),然后鼠标移动到自己想放置的地方,再单机一下鼠标,模块就会被放进画布中。
在这里插入图片描述

4.搭建模块,摆放进入画布

----请依照下图模块类型和数量摆放
在这里插入图片描述

5.管路连线,将流通管路连接起来

----鼠标悬浮在空心的端口上,单机,再移动鼠标,会生成一条连线,颜色和端口颜色类似
----然后鼠标在放在另一个模块的实心端口上,若没有变灰报错,一根连线就完成啦。
----相同颜色(属性)的端口才能链接,只能由出口链接进入口,否则线会变灰。(看似规则好麻烦,但这规则保证了后续模块化的更大的操作空间,后续文章功能会体现)
请添加图片描述

6.工质编辑(已经支持nist库,也可调用其他第三方库)

----双击空白处,弹出项目变量编辑器,如下图:
----单机"FORM"变量,这个单词是系统自带的“工质组成”意思的缩写
在这里插入图片描述------右下角物质选框,找到水,单击选中,就编辑完工质啦,选中后,FORM会自动跳转为一个数字,125,这个就代表水。(支持多选,但是在很熟悉之前,这个入门项目宝子们可以先只选择水)。
----点击“全部库值1入库”,那么在库值1的变量列表的值,都会被复制到运行值当中,包括模块中也是。
在这里插入图片描述
----双击模块可查看模块的变量值在这里插入图片描述

7.运行调节工况

----回到画布,右侧点击运行按钮,项目开始运行,点击下图泵的开关,可开启泵,拖拽阀门的进度条可调节阀门
在这里插入图片描述
----调节后,可以看到变量变化,随着阀门的调节实时变化,管道模块上方显示的数字是质量流量,千克每秒。
在这里插入图片描述
----也可以双击各个模块,在模块里修改变量值,进行调节,如下图所示。
在这里插入图片描述
在这里插入图片描述
若想修改开关、进度条所能修改的变量,进入模块编辑器修改,后续文章会编写教程

8.流网、流量守恒的体现

----此样例是一个水泵管道一分二的简单布局,所以右侧两根管道的流量加起来和主路流量相等,当我们改变右侧管道的DN通径、长度等数值时,整个流网不同地点流量和节点的压力,自动产生变化,如下列例子:
在这里插入图片描述

在这里插入图片描述

9.LUA可编写项目控制逻辑

在这里插入图片描述

OK,入门项目组态、调节、流网计算的调试体验,到这里结束啦

数据跑起来了,怎么展示呢?应用案例举例

1.氨-二氧化碳覆叠式制冷系统模拟

----还是先上图:
第一页,氨循环,包括螺杆压缩机、蒸发式冷凝器、高压贮液器、节流阀、气液分离器等
在这里插入图片描述
第二页,二氧化碳循环,螺杆压缩机、冷凝蒸发器、节流阀、低压循环筒、液泵等
在这里插入图片描述
第三页和第四页类似,库房冷风机、控制器
在这里插入图片描述
第五页,加氨、泄氨、加二氧化碳等
在这里插入图片描述

2.地源热泵系统模拟

----这个小不少,也算是一个闭环应用起来了的系统,日常编辑的体量比这个项目大一些,一个项目有个七八页
在这里插入图片描述

2.这系统,数据计算出来,怎么对接使用呢?

----还是先上图,三维的对接:unity、UE、BIM、网页等。
在这里插入图片描述
可以在其他终端进行数据读取、设置、通过计算出来的数据进行效果控制、物联网控制、实体控制等,兼容丰富的展示形式。
在这里插入图片描述
----或者作为节能软件的核心计算模块,上游对接传感器、下游对接系统调节控制器,实现智能组态、解算、应用。
----算法平台软件本身,也可以监控打印消息。

在这里插入图片描述

支持C++、C#、http对接,CSDN的文章不上代码有些说不过去

----为啥只支持这三类呢?python呢?java呢?PHP呢?…巴拉巴拉巴拉…目标对接对象中,三维引擎通常是C#或者C++代码,BIM通常是C#二次开发,网页呢http就好了,物联网的大都是C++写嵌入式(学python的不要激动,python、LUA这类解析语言,都是支持注入C++写的dll库来丰富库函数的,有C++对接的支持,就有解析语言的支持)

1.此处以C#调用C++的dll为例,上代码(纯C#代码以及http协议请留言联系我索要)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;

namespace PipeVarLinkUse
{
    class Program
    {
        [DllImport("PipeVarLinkClient.dll", EntryPoint = "PipeLinkStart", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
        public static extern int PipeLinkStart();

        [DllImport("PipeVarLinkClient.dll", EntryPoint = "VarLinkSet", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
        public static extern void VarLinkSet(string midvarname, string midvarvalue);

        [DllImport("PipeVarLinkClient.dll", EntryPoint = "VarLinkGet", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
        public static extern void VarLinkGet(string midvarname, StringBuilder midvarvalue);

        [DllImport("PipeVarLinkClient.dll", EntryPoint = "PipeLinkClose", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
        public static extern int PipeLinkClose();
        static void Main(string[] args)
        {

            PipeLinkStart();//开启pipe链接
            string midvarname = "FDSZL_MOD231_EX0_FLOW";//项目里的变量名称
            string midvarvalue= "1800";//要写入的值,string
            StringBuilder midvarvalue1= new StringBuilder("", 240); //这里注意,这个240一定不能小于240,不用修改就行。

            VarLinkSet(midvarname, midvarvalue);//给变量赋值
            VarLinkGet(midvarname, midvarvalue1);//获取变量值,这个函数,第二个变量是StringBuilder
            string gyujhghjh = midvarvalue1.ToString();//获取的变量值,赋值给string
            PipeLinkClose();//关闭pipe链接,此处可以不用,关闭程序后pipe自动就会关闭
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值