当前位置: 首页 > news >正文

Modelica建模,Modelica语言的学习,技术调研工作

Modelica建模,Modelica语言的学习,技术调研工作

参考资料:

苏州同元软控信息技术有限公司 - 同元

Modelica

再探冷却

modelica学习-CSDN博客

1、 Modelica简介

Modelica是由Modelica协会维护、免费开放的物理系统面向对象的统一建模语言规范,为机、电、液、控等多领域复杂工程系统提供了统一的物理建模语言规范。

Modelica作为多学科统一建模仿真的国际标准,被仿真界广泛采用,系统多领域统一建模仿真,已成为世界公认的MBSE和CPS的核心关键支持技术。

 Modelica 语法、函数、包、连接器、组件、子系统

https://modelica.org/libraries.html 第三方的库

MSL

1.1、 Modelica 下载安装:

支持Modelica语言的开源软件有

1) OpenModelica,

2) JModelica(新版本不再开源,但是最后的开源版本仍可下载)

3) Scilab项目中的SCICOS 。

可以使用 openmodelica 软件来进行modelica建模,测试 ,openmodelica 的下载安装   Download Windows。  下载对应的版本 :Index of /omc/builds/windows/releases/1.21/0/64bit

典型商业软件主要有 [2]  :

1)  苏州同元的MWorks(中国),

2) 伊萨的SimulationX,

3) 达索的Dymola,

4) 西门子的AMESim(支持Modelica),

5) MapleSoft(Maple厂家)的MapleSim,

6) Wolfram (Mathemetica厂家)的MathModelica。

1.2、 Modelica 基础语法: 

1) 模型定义

model SomeModelName "An optional description"

  // By convention, variables are listed at the start

equation

  /* And equations are listed at the end */

end SomeModelName;

  

2) 继承

model SpecializedModelName "An optional description"   extends Model1; // No modifications 

extends Model2(n=5); // Including modification   // By convention, variables are listed at the start

equation   /* And equations are listed at the end */

   ... ... 

end SpecializedModelName;

 3) 变量

Real x;

Real x, y;

Real alpha “angular acceleration”;

· 内建类型:

4大类型: Real , Integer, Boolean, String  (4大内置参数类型)

· 参数: parameter 修饰

能够在变量声明前加入parameter(参数)限定词,以表明该变量是先验已知的。我们可以认为这个参数作为模型的“输入数据”,是不随时间变化的常数。

· 常数: constant 修饰

与parameter(参数)限定符关系密切的是constant(常数)限定词。

· 离散变量: discrete

· 派生类型:

type NewTypeName = BaseTypeName(/* attributes to be modified */);

type Temperature = Real(unit="K"); // Could be a temperature difference

type AbsoluteTemperature = Temperature(min=0); // Must be positive 

model BaseTypeName 

type BaseTypeName1 = Real(unit="m2"); 

type NewTypeName = BaseTypeName1;// /* attributes to be modified */; 

type Temperature = Real(unit="K"); // Could be a temperature difference  type AbsoluteTemperature = Temperature(min=0); // Must be positiveequation 

end BaseTypeName; 

· 枚举类型:

type AssertionLevel = enumeration(warning, error); 

type StateSelect = enumeration(never, avoid, default, prefer, always);

修改语句:

Real x(start=10);

 parameter Real x0=10 "Start value of prey population";

Real x(start=x0) "Prey population"; 

extends QuiescentModelWithInheritance(gamma=0.3, delta=0.01);

 extends QuiescentModelWithInheritance(x(start=5));  

Record类型定义

record类型可以有自己的变量,但是不允许包含方程

record Vector

"A vector in 3D space"  Real x;  Real y;  Real z;

end Vector

record Complex "Representation of a complex number" 

Real re "Real component"; 

Real im "Imaginary component";

end Complex;

parameter Vector v(x=1.0, y=2.0, z=0.0);

parameter Vector v = Vector(x=1.0, y=2.0, z=0.0);

Demo展示:

demo1:   模拟一个乒乓球从1米的高度,掉落到地上,并来回弹起来的效果:

1) 对弹跳球的建模¶

 model BouncingBall "The 'classic' bouncing ball model"
    type Height = Real(unit = "m");
    type Velocity = Real(unit = "m/s");
    parameter Real e = 0.8 "Coefficient of restitution";
    parameter Height h0 = 1.0 "Initial height";
    Height h;
    Velocity v;
initial equation
    h = h0;
equation
    v = der(h);
    der(v) = -9.81;
    when h <= 0 then
      reinit(v, -e*pre(v));
    end when;
end BouncingBall;

modelica模拟的效果图:、

从上面的模拟图中能发现,当最后球静止的时候,球落在地面以下的位置了。这显然不符合现实世界。我们可以对其改进一番看看。

2) 改进版本:

model StableBouncingBall
  "The 'classic' bouncing ball model with numerical tolerances"
  type Height=Real(unit="m");
  type Velocity=Real(unit="m/s");
  parameter Real e=0.8 "Coefficient of restitution";
  parameter Height h0=1.0 "Initial height";
  constant Height eps=1e-3 "Small height";
  Boolean done;
  Height h;
  Velocity v;
initial equation
  h = h0;
  done = false;
equation
  v = der(h);
  der(v) = if done then 0 else -9.81;
  when {h<0,h<-eps} then
    done = h<-eps;
    reinit(v, -e*(if h<-eps then 0 else pre(v)));
  end when;
end StableBouncingBall;

modelica模拟的效果图:

demo2: 带滞回的温度控制

model HysteresisControl "A control strategy that doesn't chatter"

  type HeatCapacitance=Real(unit="J/K");

  type Temperature=Real(unit="K");

  type Heat=Real(unit="W");

  type Mass=Real(unit="kg");

  type HeatTransferCoefficient=Real(unit="W/K");

  Boolean heat(start=false) "Indicates whether heater is on";

  parameter HeatCapacitance C=1.0;

  parameter HeatTransferCoefficient h=2.0;

  parameter Heat Qcapacity=25.0;

  parameter Temperature Tamb=285;

  parameter Temperature Tbar=295;

  Temperature T;

  Heat Q;

initial equation

  T = Tbar+5;

  heat = false;

equation

  Q = if heat then Qcapacity else 0;

  C*der(T) = Q-h*(T-Tamb);

  when {T>Tbar+1,T<Tbar-1} then

    heat = T<Tbar;

  end when;

end HysteresisControl;

modelica模拟的效果图:

demo3: 带抖动的温度控制

model ChatteringControl "A control strategy that will 'chatter'"

  type HeatCapacitance=Real(unit="J/K");

  type Temperature=Real(unit="K");

  type Heat=Real(unit="W");

  type Mass=Real(unit="kg");

  type HeatTransferCoefficient=Real(unit="W/K");

  Boolean heat "Indicates whether heater is on";

  parameter HeatCapacitance C=1.0;

  parameter HeatTransferCoefficient h=2.0;

  parameter Heat Qcapacity=25.0;

  parameter Temperature Tamb=285;

  parameter Temperature Tbar=295;

  Temperature T;

  Heat Q;

initial equation

  T = Tbar+5;

equation

  heat = T<Tbar;

  Q = if heat then Qcapacity else 0;

  C*der(T) = Q-h*(T-Tamb);

end ChatteringControl;

modelica模拟的效果图:

电子电气相关的模型仿真

仿真效果:

相关文章:

Modelica建模,Modelica语言的学习,技术调研工作

Modelica建模&#xff0c;Modelica语言的学习&#xff0c;技术调研工作 参考资料&#xff1a; 苏州同元软控信息技术有限公司 - 同元 Modelica 再探冷却 modelica学习-CSDN博客 1、 Modelica简介 Modelica是由Modelica协会维护、免费开放的物理系统面向对象的统一建模语言规…...

Oracle数据字典之——v$lock 和v$locked_object

v$lock视图 v$lock视图列出当前系统持有的或正在申请的所有锁的情况&#xff0c;其主要字段说明如下&#xff1a; 11g如下&#xff1a; 字段名称类型说明ADDRRAW(8)锁定状态对象的地址KADDRRAW(8)锁的地址SIDNUMBER会话&#xff08;SESSION&#xff09;标识&#xff1b;TYPE…...

solidity 以太坊(Ether) 单位(很基础)

一个字面常数可以带一个后缀 wei&#xff0c; gwei 或 ether 来指定一个以太坊的数量&#xff0c; 其中没有后缀的以太数字被认为单位是wei。 在以太坊和许多其他基于以太坊的区块链系统中&#xff0c;以太币&#xff08;Ether&#xff09;是网络中的主要加密货币。 以太可以被…...

关于elementUI 分页 table 使用 toggleRowSelection

我出现问题的前提 在table表格第一页全选 &#xff0c;第二页全选 回到第一页 点击按钮 取消 第一页&#xff0c;第二页我不要的勾选 初始实现 this.selectedPeraonal是表格 selection-change方法返回的值 handleSelectionChange(val) {this.selectedPeraonal val || []…...

K8s部署RocketMQ

准备工作 我是win电脑&#xff0c;本地安装了Podman&#xff0c;并使用Kind创建了一个K8s本地环境&#xff0c;并在 win 电脑上安装了 Helm。 部署RocketMQ 1. add rocketmq helm repo 2. deploy rocketmq cluster 3. verify the rocketmq cluster 4. Create Topic by api a…...

Linux服务管理-Nginx配置

静态解析主要解析html、css动态解析需要解析php 动态资源通过轮询分配到后端的Apache服务器处理 apache是同步阻塞&#xff0c;nginx是异步非阻塞...

C语言典型例题31

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.8 请编写程序将China译为密码&#xff0c;密码的规律是&#xff1a;用原来字母后面的第4个字母代替原来的字母。 例如:C后面的4个字母是G&#xff0c;h后面第4个字母为l 代码&#xff1a; //《C程序设计教程…...

FFMPEG 工具方法

av_strerror int av_strerror ( int errnum, char * errbuf, size_t errbuf_size )ffmpeg获取与设置mp4文件旋转方向方法 设置与获取都是对AVStream的dict操作. 设置 for (i 0; i < ifmt_ctx_v->nb_streams; i) { //Create output AVStream according to input A…...

Qt QML 使用QPainterPath绘制弧形曲线和弧形文本

Qt并没有相关api直接绘制弧形文字&#xff0c;但提供了曲线绘制相关类&#xff0c;所以只能另辟蹊径&#xff0c;使用QPainterPath先生成曲线&#xff0c;然后通过曲线上的点来定位每个文字并draw出来。 QML具体做法为从QQuickPaintedItem继承&#xff0c;在派生类中实现paint…...

VMware虚拟机和Docker的备份与恢复

目录 1. VMware虚拟机的快照备份 1.1 VMware本机的快照备份 1.2 VMware快照备份到另一电脑 2. Docker知识点 2.1 Docker镜像和容器的关系 2.2 Docker的存储卷 2.3 Docker命令简介 2.4 删除Anylink镜像 3. Docker备份和恢复 3.1 确定要回滚的容器和版本 3.2 备份当前…...

新加坡服务器延迟大吗?如何进行优化

新加坡服务器延迟大吗&#xff1f;新加坡服务器的延迟通常在全国平均延迟111ms左右&#xff0c;其中移动网络约为90ms&#xff0c;联通网络106ms&#xff0c;电信网络最低约为85ms。为了进行优化&#xff0c;一般可以采取使用CDN、优化路由线路、增加带宽和服务器升级等方法。 …...

uniapp——列表图片加载太多且空间占用太大的处理方法(降低清晰度)

解决方法 列表默认显示的降低清晰度&#xff0c;预览图片的时候加载原图。 如果图片是上传到阿里云的OSS上&#xff0c;可以快速获取图片缩略图的方法 直接在后端返回的URL后面拼接字符串&#xff1a; XXX.png?x-oss-process 缩略图方法介绍&#xff1a; ?x-oss-proces…...

spring+SSM+Mybatis面试题(上)(30道)

目录 1. 何为Spring Bean容器?Spring Bean容器与Spring IOC 容器有什么不同吗?2. Spring IOC 如何理解?3. Spring DI 如何理解?4. Spring 中基于注解如何配置对象作用域?以及如何配置延迟加载机制?1.配置作用域需要注解Scope(“Singleton”)2.开启延迟加载&#xff1a;La…...

odoo17 翻译一个小bug

odoo17 翻译一个小bug 用户界面的没译过来 标红处&#xff0c;但在zh_CN.po中明显已经翻译过来了&#xff0c;采取暴力点的&#xff0c;直接把base下的base.pot删除&#xff0c;再更新一下&#xff0c;可以正常显示了...

sqli-labs-php7-master第5-10关

第五关&#xff1a; 根据提示输入ID,随便来个一 输入100&#xff0c;因为数据库没有&#xff0c;所以这里没输出内容 还是先找注入点&#xff1a;输入单引号试试 注入点找到了‘ 查询数据库列数&#xff1b;&#xff1f;id1 order by 4 -- 测试发现order by 3时页面正常&…...

全方位教程:接入视频美颜SDK与直播美颜插件的完整步骤

今天&#xff0c;小编将为您详细介绍如何接入视频美颜SDK与直播美颜插件的完整步骤。 一、准备工作 开发环境的搭建 在开始集成之前&#xff0c;确保您的开发环境已配置完毕。无论是使用iOS、Android&#xff0c;还是Web开发&#xff0c;您都需要准备好对应的开发工具链&…...

Apache Curator 分布式锁的介绍,以及案例

可重入锁&#xff08;InterProcessMutex&#xff09;&#xff1a;这种锁允许同一个客户端多次获取同一把锁而不会被阻塞&#xff0c;类似于Java中的ReentrantLock。它通过在Zookeeper的指定路径下创建临时序列节点来实现锁的功能。如果获取锁失败&#xff0c;当前线程会监听前一…...

自动化测试 — selenium + Java

什么是自动化测试 将人为驱动的测试行为转化为机器执行的过程。 自动化测试包括UI 自动化&#xff0c;接口自动化&#xff0c;单元测试自动化。按照这个金字塔模型来进行自动化测试规划&#xff0c;可以产生最佳的自贡话测试产出投入比&#xff08;ROI &#xff09;&#xff0c…...

【SpringBoot系列】接口参数的默认值与必要性

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

茶余饭后(五)

真正出类拔萃的人 往往都是狠角色&#xff0c; 他们具备着一种独特的特质 那就是&#xff1a; 目标清晰 意志如铁 底线分明 同时手段又极为高明 且勤奋不屑 在处于劣势时 他们表现的极为谦逊和低调 像一只温顺无害的小羊羔 然而一旦时机成熟 他们便会毫不犹豫的展现出强…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类&#xff0c;将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix&#xff0c;将上述三个类翻入其中&#xff0c;通过它管理每个音乐…...