diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..79728ef --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1,4 @@ +{ + "alwaysUpdateLinks": true, + "attachmentFolderPath": "./attachments" +} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..361306c --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1,5 @@ +{ + "accentColor": "", + "theme": "obsidian", + "baseFontSize": 14 +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/.obsidian/community-plugins.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/.obsidian/core-plugins-migration.json b/.obsidian/core-plugins-migration.json new file mode 100644 index 0000000..3106ebd --- /dev/null +++ b/.obsidian/core-plugins-migration.json @@ -0,0 +1,29 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "starred": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..086a8e4 --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,20 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "canvas", + "outgoing-link", + "tag-pane", + "page-preview", + "daily-notes", + "templates", + "note-composer", + "command-palette", + "editor-status", + "starred", + "outline", + "word-count", + "file-recovery" +] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..e21a18d --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": false +} \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json new file mode 100644 index 0000000..4c1cc98 --- /dev/null +++ b/.obsidian/hotkeys.json @@ -0,0 +1,18 @@ +{ + "outline:open-for-current": [ + { + "modifiers": [ + "Alt" + ], + "key": "O" + } + ], + "outline:open": [ + { + "modifiers": [ + "Alt" + ], + "key": "I" + } + ] +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-proxy-github/README.md b/.obsidian/plugins/obsidian-proxy-github/README.md new file mode 100644 index 0000000..52937df --- /dev/null +++ b/.obsidian/plugins/obsidian-proxy-github/README.md @@ -0,0 +1,48 @@ + + +# Obsidian 社区插件下载修复 + +因为某些原因,在国内经常无法下载 Obsidian 的社区插件。这个项目的主要目的就是修复这种情况,让国内的用户也可以无障碍的下载社区插件。 + + + +[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stargazers][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![MIT License][license-shield]][license-url] +[![LinkedIn][linkedin-shield]][linkedin-url] + + +
+ + + +## 目录 + +- [上手指南](#上手指南) +- [文件目录说明](#文件目录说明) +- [作者](#作者) +- [版权说明](#版权说明) +- [鸣谢](#鸣谢) + +### 上手指南 + +1. 下载 [obsidian-proxy-github.zip](https://gitee.com/juqkai/obsidian-proxy-github/releases) +2. 解压 obsidian-proxy-github.zip +3. 将解压的文件夹放入笔记目录下的插件目录内。如:XXX/.obsidian/plugins + + +### 作者 + +juqkai@163.com + +### 版权说明 + +该项目签署了 Apache License 2.0 授权许可,详情请参阅 [LICENSE.txt](https://github.com/juqkai/obsidian-proxy-github/blob/master/LICENSE) + +### 鸣谢 + + +- [Obsidian](https://Obsidian.md) + diff --git a/.obsidian/plugins/obsidian-proxy-github/main.js b/.obsidian/plugins/obsidian-proxy-github/main.js new file mode 100644 index 0000000..cfeb614 --- /dev/null +++ b/.obsidian/plugins/obsidian-proxy-github/main.js @@ -0,0 +1,268 @@ +const {Plugin, PluginSettingTab, Setting } = require("obsidian"); + +let server = 'fastgit' + +let proMap = { + fastgit:{ + down:"https://download.fastgit.org/" + ,raw:"https://raw.fastgit.org/" + ,home:"https://hub.fastgit.org/" + } + ,mtr:{ + down:"https://download.fastgit.org/" + ,raw:"https://raw-gh.gcdn.mirr.one/" + ,home:"https://api.mtr.pub/" + } + ,ghproxy:{ + down:"https://mirror.ghproxy.com/https://github.com/" + ,raw:"https://mirror.ghproxy.com/https://github.com/" + ,home:"https://mirror.ghproxy.com/https://github.com/" + } + ,gitclone:{ + down:"https://download.fastgit.org/" + ,raw:"https://raw.fastgit.org/" + ,home:"https://gitclone.com/github.com/" + } + ,mirr:{ + down:"https://gh.gcdn.mirr.one/" + ,raw:"https://raw-gh.gcdn.mirr.one/" + ,home:"https://gh.gcdn.mirr.one/" + } +} + +let include = [ + { + match: (url) => url.indexOf("/releases/download/") >= 0 + , to: (url) => url.replace("https://github.com/", proMap[server].down) + } + , { + match: (url) => url.startsWith("https://raw.githubusercontent.com/") >= 0 + , to: (url) => url.replace("https://raw.githubusercontent.com/", proMap[server].raw) + } + , { + match: (url) => url.startsWith("https://github.com/") >= 0 + , to: (url) => url.replace("https://github.com/", proMap[server].home) + } +] + +// 匹配URL +function matchUrl(e) { + console.log("开始访问:" + JSON.stringify(e)) + for (var key in include) { + let item = include[key] + console.log(key) + console.log(item) + if (e && e.url && item.match(e.url)) { + e.url = item.to(e.url) + console.log("要访问的地址:" + e.url) + if (!e.headers) { + e.headers = {} + } + e.headers["content-type"] = "application/x-www-form-urlencoded"; + e.headers["Access-Control-Allow-Origin"] = "*" + return true; + } + } + return false; +} + +// 代理访问 +function proxy(e) { + return new Promise((function (t, n) { + e.success = t; + e.error = function (e, t) { + return n(t) + } + debugger + if (app.isMobile) { + forMobile(e); + return; + } + forPC(e) + })) +} + +/** + * + * https://github.com/denolehov/obsidian-git/issues/57 + * https://capacitorjs.com/blog/bypassing-cors-with-the-http-plugin + * https://github.com/capacitor-community/http + * + * @param {*} e + */ +async function forMobile(e) { + try { + const http = require('@capacitor-community/http') + const options = {url: e.url}; + new window.Notice("发送请求:" + e.url, 10000) + new window.Notice(JSON.stringify(http.get) + "123", 10000) + // http.get(options); + const resp = await http.get(options).then((resp) => { + new window.Notice("请求成功:", 10000) + new window.Notice("请求成功:" + resp.status, 10000) + e.success(resp.data) + }).catch((error) => { + new window.Notice("出错了:" + JSON.stringify(error), 10000) + }) + new window.Notice("请求成功12", 10000) + e.success(resp.data) + + } catch (e) { + e.error(e) + new window.Notice("加载@capacitor-community/http出错", 10000) + } +} + +function forPC(e) { + try { + const https = require('https') + https.get(e.url, function (res) { + new window.Notice("https.get成功", 10000) + res.setEncoding('utf8'); + let rawData = ''; + res.on('data', (chunk) => { + rawData += chunk; + }); + res.on('end', () => { + try { + new window.Notice("https.get处理数据成功", 10000) + e.success(rawData) + } catch (e) { + new window.Notice("https.get处理数据失败", 10000) + e.error(e) + } + }); + + }).on('error', function (e) { + new window.Notice("https.get失败", 10000) + e.error(e) + }) + } catch (e) { + new window.Notice("导入http出错", 10000) + new window.Notice(JSON.parse(e), 10000) + } +} + +function apProxy() { + var ap; + this.regedit = function() { + ap = window.ajaxPromise; + window.ajaxPromise = function (e) { + if (!matchUrl(e)) { + return ap(e); + } + new window.Notice("正在通过 ProxyGithub 来代理访问社区插件!") + return proxy(e) + } + } + this.unRegedit = function() { + window.ajaxPromise = ap; + } +} + +//window.Capacitor.registerPlugin("App").request + function apCapacitor() { + var ap; + this.regedit = function() { + ap = window.Capacitor.registerPlugin("App").request; + console.log(ap) + window.Capacitor.registerPlugin("App").request = function (e){ + matchUrl(e); + new window.Notice("正在通过 ProxyGithub 来代理访问社区插件!") + ap(e); + // if (matchUrl(e)) { + // return ap(e); + // } + } + console.log("apc注册成功") + } + this.unRegedit = function() { + window.window.Capacitor.registerPlugin("App").request = ap; + } +} + +function apElectron() { + var ap; + this.regedit = function() { + ap = window.require("electron").ipcRenderer.send; + debugger + console.log(ap) + window.require("electron").ipcRenderer.send = function (a,b,e,...rest){ + debugger + matchUrl(e); + new window.Notice("正在通过 ProxyGithub 来代理访问社区插件!") + ap(a,b,e, ...rest); + // if (matchUrl(e)) { + // return ap(e); + // } + } + console.log("apc注册成功") + } + this.unRegedit = function() { + window.require("electron").ipcRenderer.send = ap; + } +} + + + + +class ProxyGithubSettingTab extends PluginSettingTab { + + constructor(app, plugin) { + console.log("加载了tab~~~~~~~~~~~~~~~~~~~~~~") + super(app, plugin) + this.plugin = plugin + } + async display() { + this.containerEl.empty() + new Setting(this.containerEl) + .setName('代理服务器') + .setDesc(`通过选择不同的服务器来切换代理,可以解决某些情况下,某个服务器无法访问的情况。当前代理服务器:${this.plugin.settings.server}`) + // .setValue(this.plugin.settings.server) // <-- Add me! + .addDropdown(dropDown => { + dropDown.addOption('mirr', '请选择'); + dropDown.addOption('fastgit', 'fastgit'); + dropDown.addOption('mtr', 'mtr'); + dropDown.addOption('ghproxy', 'ghproxy'); + dropDown.addOption('gitclone', 'gitclone'); + dropDown.addOption('mirr', 'mirr'); + dropDown.onChange(async (value) => { + this.plugin.settings.server=value + // this.plugin.settings.server = value; + await this.plugin.saveSettings(); + }); + }); + } +} + + + + +let app = new apProxy(); +let apc = new apCapacitor(); +let ape = new apElectron(); +module.exports = class ProxyGithub extends Plugin { + onload() { + new window.Notice("添加 ProxyGithub 代理访问社区插件!"); + this.addSettingTab(new ProxyGithubSettingTab(this.app, this)); + ape.regedit(); + apc.regedit(); + app.regedit(); + this.settings = {server:'mirr'} + } + async loadSettings() { + this.settings = Object.assign({}, {server:'mirr'}, await this.loadData()); + } + async saveSettings() { + await this.saveData(this.settings); + server = this.settings.server; + debugger + } + + onunload() { + ape.unRegedit() + apc.unRegedit() + app.unRegedit() + } +} + diff --git a/.obsidian/plugins/obsidian-proxy-github/manifest.json b/.obsidian/plugins/obsidian-proxy-github/manifest.json new file mode 100644 index 0000000..0773667 --- /dev/null +++ b/.obsidian/plugins/obsidian-proxy-github/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "ProxyGithub", + "name": "proxy github", + "version": "1.15.0", + "minAppVersion": "0.12.0", + "description": "因为某些原因,在国内经常无法下载 Obsidian 的社区插件。这个项目的主要目的就是修复这种情况,让国内的用户也可以无障碍的下载社区插件。", + "author": "juqkai", + "authorUrl": "https://obsidian.md", + "isDesktopOnly": false +} diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json new file mode 100644 index 0000000..fbf223b --- /dev/null +++ b/.obsidian/workspace.json @@ -0,0 +1,155 @@ +{ + "main": { + "id": "14cb96f3a18b199e", + "type": "split", + "children": [ + { + "id": "51df989e1bc4e8bb", + "type": "tabs", + "children": [ + { + "id": "196cf1899632dff2", + "type": "leaf", + "state": { + "type": "empty", + "state": {} + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "391c8943e6573aba", + "type": "split", + "children": [ + { + "id": "d49db4b443ed2c8b", + "type": "tabs", + "children": [ + { + "id": "2fa2f5a8bae14f94", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical" + } + } + }, + { + "id": "168d44cde7da1238", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + } + } + }, + { + "id": "7a4624ad6400e830", + "type": "leaf", + "state": { + "type": "starred", + "state": {} + } + } + ] + } + ], + "direction": "horizontal", + "width": 373.50746154785156 + }, + "right": { + "id": "1875bcf6f7921a80", + "type": "split", + "children": [ + { + "id": "fa216a7dc7b45dd7", + "type": "tabs", + "children": [ + { + "id": "605b61405aaae4b2", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "27f09686cd22c3c7", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "9854bf9ce1c4089d", + "type": "leaf", + "state": { + "type": "outline", + "state": {} + } + }, + { + "id": "c82ff42e762a2c24", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true + } + } + } + ], + "currentTab": 2 + } + ], + "direction": "horizontal", + "width": 200, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:打开快速切换": false, + "graph:查看关系图谱": false, + "daily-notes:打开/创建今天的日记": false, + "templates:插入模板": false, + "command-palette:打开命令面板": false, + "canvas:Create new canvas": false + } + }, + "active": "196cf1899632dff2", + "lastOpenFiles": [ + "孪生/笔记/第三周,调研.md", + "孪生/笔记/第二周,树莓派.md", + "孪生/会议记录/第二次,了解调研方向.md", + "孪生/会议记录/第一次,认识.md", + "孪生/笔记/面向流程制造的数字孪生车间可视化监控系统研究_阴艳超.pdf", + "孪生/笔记/数字孪生在制造业中的关键技术及应用研究综述_吴雁.pdf", + "孪生/笔记/数字孪生在制造中的应用进展综述_郭亮.pdf", + "孪生/笔记/我国数字孪生研究的进展、热...心期刊数据库的知识图谱分析_赵亮.pdf", + "孪生/笔记/introduction-to-digital-twin-development-cn.pdf", + "孪生/笔记/case-studies-brochure-en.pdf" + ] +} \ No newline at end of file diff --git a/孪生/会议记录/第一次,认识.md b/孪生/会议记录/第一次,认识.md deleted file mode 100644 index 7f55caf..0000000 --- a/孪生/会议记录/第一次,认识.md +++ /dev/null @@ -1,6 +0,0 @@ - -#### demo -![[881e413c6a9626ee3775ff1adf1d3ea1_.png]] - -会后下一周的工作: -[[第一周,初步使用树莓派]] \ No newline at end of file diff --git a/孪生/会议记录/第二次,了解调研方向.md b/孪生/会议记录/第二次,了解调研方向.md deleted file mode 100644 index e26dc2f..0000000 --- a/孪生/会议记录/第二次,了解调研方向.md +++ /dev/null @@ -1,90 +0,0 @@ -### 开会 - -##### 硬件 -串口通信,二进制流,设计通讯帧(参考TCP/IP) -##### 数据库 -ES - -##### 调研 -建议书/申请书 -不要直接得到结论,要多比较 - -##### 研究性问题 -决定用什么方案 - -##### 分配 -硬件、前端、后端(包括算法) - -##### 不足之处 -动手认知的逻辑,没有围绕数字孪生的主题 - -##### 写挑战报告 -1. 需求:传统做法的缺陷 - -##### 讨论 - -模拟信号到数字信号校准 - -硬件(数字孪生部分) -1. 采集信号 - 应变片等采集终端 -2. 采集融合设备 - 没有以太网,用串口线、总线,10个树莓派->一个树莓派->管理中心(场景控制节点,进行逻辑运算,核心节点)->服务器分配转发->计算节点等,服务器将数据发给前端,前端负责渲染 -3. 服务器对于所有节点平等看待,算法、场景、等都是节点,由前端编辑,每层只关心下一层,每一层有自己的逻辑,场景编辑交给有一定知识的人 - 1. 工厂只关心流水线 - 2. 低代码 -4. 前端有时间线功能,下发控制指令 -5. 下位机硬实时响应系统,主线任务是采集信号转发,对于急停信号会立即执行,有触发信号优先级,采集的信号是脉冲信号/比特流。形成基础系统,可以根据不同类协议修改 - - -- 采集 - - 协议,一台设备的传感器可能有多种,如何对接。各种设备比特流协议不同(信息帧),可能要破解。PLC分上下位机,上位机呈现渲染数据,下位机收集数据,与主控交互。 - - PLC编程使用波形图 - - 目标:介于上下位机之间的小型化的机器,需要: - - 充分接入设备传感器 -- 数据流转、传输、渲染 - - 逐步实现,替代上位机,从原有工厂的体系中获得数据 -- 工程软件/算法之分 - - 为智能算法创造接入的平台/定制深度结合算法 - - 为算法提供基础 - - 数据降维 - - 算法加速,加速库 -- 数字孪生 - 1. 1.0:数字信息上线,使用VR/AR - 2. 3.0:产线级、工厂级 - - -#### 调研划分 -1.0: -- 工厂级别,工厂漫游渲染,VR、AR -2.0: -- 产线级别,产线优化,APS、MES -3.0(核心): -- 上位机 -- 下位机 -- 中控系统 - -了解: -3D模型结构、应变重构位移 - -信号有时空坐标,算法将数据进行运算,(如何)与3D模型关联,再进行渲染,数据结构是怎样的 - -###### 调研 -- 数字孪生应用 - - 工厂内部生产线(生产管理) - - 旧的技术方案、新的 - - 车组装 - - 展示、监控 - - 数字城市 - - 数据量大 - - 分析 - - 智慧大厦 - - 现有技术方案和难点 -- 是什么、现状(包括同行评价)、难点(技术的瓶颈)、如何做, -- 树莓派任务 - - 控制灯、串口通信,串口发送指令给树莓派,树莓派再发回 - - 浮点数 - - 友善串口调试助手 - - - diff --git a/孪生/笔记/attachments/881e413c6a9626ee3775ff1adf1d3ea1_.png b/孪生/笔记/attachments/881e413c6a9626ee3775ff1adf1d3ea1_.png deleted file mode 100644 index 72d1903..0000000 Binary files a/孪生/笔记/attachments/881e413c6a9626ee3775ff1adf1d3ea1_.png and /dev/null differ diff --git a/孪生/笔记/attachments/Pasted image 20230113110339.png b/孪生/笔记/attachments/Pasted image 20230113110339.png deleted file mode 100644 index 650c13e..0000000 Binary files a/孪生/笔记/attachments/Pasted image 20230113110339.png and /dev/null differ diff --git a/孪生/笔记/attachments/Pasted image 20230127105516.png b/孪生/笔记/attachments/Pasted image 20230127105516.png deleted file mode 100644 index 3eb18c9..0000000 Binary files a/孪生/笔记/attachments/Pasted image 20230127105516.png and /dev/null differ diff --git a/孪生/笔记/attachments/Pasted image 20230128094700.png b/孪生/笔记/attachments/Pasted image 20230128094700.png deleted file mode 100644 index 78464d1..0000000 Binary files a/孪生/笔记/attachments/Pasted image 20230128094700.png and /dev/null differ diff --git a/孪生/笔记/attachments/Pasted image 20230128095432.png b/孪生/笔记/attachments/Pasted image 20230128095432.png deleted file mode 100644 index 78464d1..0000000 Binary files a/孪生/笔记/attachments/Pasted image 20230128095432.png and /dev/null differ diff --git a/孪生/笔记/attachments/Pasted image 20230128101901.png b/孪生/笔记/attachments/Pasted image 20230128101901.png deleted file mode 100644 index a25e707..0000000 Binary files a/孪生/笔记/attachments/Pasted image 20230128101901.png and /dev/null differ diff --git a/孪生/笔记/attachments/Pasted image 20230128101905.png b/孪生/笔记/attachments/Pasted image 20230128101905.png deleted file mode 100644 index a25e707..0000000 Binary files a/孪生/笔记/attachments/Pasted image 20230128101905.png and /dev/null differ diff --git a/孪生/笔记/attachments/Pasted image 20230128102536.png b/孪生/笔记/attachments/Pasted image 20230128102536.png deleted file mode 100644 index 6498eb7..0000000 Binary files a/孪生/笔记/attachments/Pasted image 20230128102536.png and /dev/null differ diff --git a/孪生/笔记/attachments/Pasted image 20230128103033.png b/孪生/笔记/attachments/Pasted image 20230128103033.png deleted file mode 100644 index 36b4ecf..0000000 Binary files a/孪生/笔记/attachments/Pasted image 20230128103033.png and /dev/null differ diff --git a/孪生/笔记/case-studies-brochure-en.pdf b/孪生/笔记/case-studies-brochure-en.pdf deleted file mode 100644 index 392289e..0000000 Binary files a/孪生/笔记/case-studies-brochure-en.pdf and /dev/null differ diff --git a/孪生/笔记/introduction-to-digital-twin-development-cn.pdf b/孪生/笔记/introduction-to-digital-twin-development-cn.pdf deleted file mode 100644 index 90d821f..0000000 Binary files a/孪生/笔记/introduction-to-digital-twin-development-cn.pdf and /dev/null differ diff --git a/孪生/笔记/基于数字孪生的白车身板件焊接完备性检测与配置方法研究_李兵.caj b/孪生/笔记/基于数字孪生的白车身板件焊接完备性检测与配置方法研究_李兵.caj deleted file mode 100644 index e78ea90..0000000 Binary files a/孪生/笔记/基于数字孪生的白车身板件焊接完备性检测与配置方法研究_李兵.caj and /dev/null differ diff --git a/孪生/笔记/我国数字孪生研究的进展、热...心期刊数据库的知识图谱分析_赵亮.pdf b/孪生/笔记/我国数字孪生研究的进展、热...心期刊数据库的知识图谱分析_赵亮.pdf deleted file mode 100644 index 6d6aca4..0000000 Binary files a/孪生/笔记/我国数字孪生研究的进展、热...心期刊数据库的知识图谱分析_赵亮.pdf and /dev/null differ diff --git a/孪生/笔记/数字孪生在制造业中的关键技术及应用研究综述_吴雁.pdf b/孪生/笔记/数字孪生在制造业中的关键技术及应用研究综述_吴雁.pdf deleted file mode 100644 index 02b38cb..0000000 Binary files a/孪生/笔记/数字孪生在制造业中的关键技术及应用研究综述_吴雁.pdf and /dev/null differ diff --git a/孪生/笔记/数字孪生在制造中的应用进展综述_郭亮.pdf b/孪生/笔记/数字孪生在制造中的应用进展综述_郭亮.pdf deleted file mode 100644 index 0e0581d..0000000 Binary files a/孪生/笔记/数字孪生在制造中的应用进展综述_郭亮.pdf and /dev/null differ diff --git a/孪生/笔记/第一周,初步使用树莓派.md b/孪生/笔记/第一周,初步使用树莓派.md deleted file mode 100644 index 16eb1c8..0000000 --- a/孪生/笔记/第一周,初步使用树莓派.md +++ /dev/null @@ -1,121 +0,0 @@ - -上次开会: -[[第一次,认识]] -### 本周所做 -#### 修复pyc -- CMDE文件夹下py生成pyc -#### 树莓派 - -[Raspberry Pi Model A+ Datasheet (rs-online.com)](https://docs.rs-online.com/473d/0900766b81527cd2.pdf) -![[Pasted image 20230113110339.png]] -如何用usb连接主机 -[树莓派通过USB方式与计算机连接(Win10) - Rehtt's Blog](https://rehtt.com/index.php/archives/99/) -[电脑连接树莓派Zero W_晨之清风的博客-CSDN博客](https://blog.csdn.net/chentuo2000/article/details/81051308) -[树莓派Zero通过USB实现和PC通信并联入互联网的方法_Keycer的博客-CSDN博客_zero连上后只能互通](https://blog.csdn.net/zgrjkflmkyc/article/details/84567669) -[networking - SSH the Pi from computer with a USB cable only - Raspberry Pi Stack Exchange](https://raspberrypi.stackexchange.com/questions/55928/ssh-the-pi-from-computer-with-a-usb-cable-only) -[Simple guide for setting up OTG modes on the Raspberry Pi Zero, the fast way! (github.com)](https://gist.github.com/gbaman/975e2db164b3ca2b51ae11e45e8fd40a) -[Raspberry pi 3 A+ ethernet/ssh over USB! Gadget Mode tutorial - YouTube](https://www.youtube.com/watch?v=7nDJPidKSPA) -安装驱动 -[Raspberry Pi Zero W 连接电脑 – 针对Windows 10 缺少RNDIS驱动 - 简书 (jianshu.com)](https://www.jianshu.com/p/564c79905f94) - -ndis -[Raspberry Pi networked via RNDIS - Waveshare Wiki](https://www.waveshare.com/wiki/Raspberry_Pi_networked_via_RNDIS) - -**Ethernet Gadget** - - -dongle(加密狗,暂时不用) -[How to connect to your Raspberry Pi Model A / A+ (A Plus) - headless configuration - Andrew Oakley (aoakley.com)](https://www.aoakley.com/articles/2015-02-05-raspberry-pi-remote-access.php) - - - -### 开会 - -##### 硬件 -串口通信,二进制流,设计通讯帧(参考TCP/IP) -##### 数据库 -ES - -##### 调研 -建议书/申请书 -不要直接得到结论,要多比较 - -##### 研究性问题 -决定用什么方案 - -##### 分配 -硬件、前端、后端(包括算法) - -##### 不足之处 -动手认知的逻辑,没有围绕数字孪生的主题 - -##### 写挑战报告 -1. 需求:传统做法的缺陷 - -##### 讨论 - -模拟信号到数字信号校准 - -硬件(数字孪生部分) -1. 采集信号 - 应变片等采集终端 -2. 采集融合设备 - 没有以太网,用串口线、总线,10个树莓派->一个树莓派->管理中心(场景控制节点,进行逻辑运算,核心节点)->服务器分配转发->计算节点等,服务器将数据发给前端,前端负责渲染 -3. 服务器对于所有节点平等看待,算法、场景、等都是节点,由前端编辑,每层只关心下一层,每一层有自己的逻辑,场景编辑交给有一定知识的人 - 1. 工厂只关心流水线 - 2. 低代码 -4. 前端有时间线功能,下发控制指令 -5. 下位机硬实时响应系统,主线任务是采集信号转发,对于急停信号会立即执行,有触发信号优先级,采集的信号是脉冲信号/比特流。形成基础系统,可以根据不同类协议修改 - - -- 采集 - - 协议,一台设备的传感器可能有多种,如何对接。各种设备比特流协议不同(信息帧),可能要破解。PLC分上下位机,上位机呈现渲染数据,下位机收集数据,与主控交互。 - - PLC编程使用波形图 - - 目标:介于上下位机之间的小型化的机器,需要: - - 充分接入设备传感器 -- 数据流转、传输、渲染 - - 逐步实现,替代上位机,从原有工厂的体系中获得数据 -- 工程软件/算法之分 - - 为智能算法创造接入的平台/定制深度结合算法 - - 为算法提供基础 - - 数据降维 - - 算法加速,加速库 -- 数字孪生 - 1. 1.0:数字信息上线,使用VR/AR - 2. 3.0:产线级、工厂级 - - -#### 调研划分 -1.0: -- 工厂级别,工厂漫游渲染,VR、AR -2.0: -- 产线级别,产线优化,APS、MES -3.0(核心): -- 上位机 -- 下位机 -- 中控系统 - -了解: -3D模型结构、应变重构位移 - -信号有时空坐标,算法将数据进行运算,(如何)与3D模型关联,再进行渲染,数据结构是怎样的 - -###### 调研 -- 数字孪生应用 - - 工厂内部生产线(生产管理) - - 旧的技术方案、新的 - - 车组装 - - 展示、监控 - - 数字城市 - - 数据量大 - - 分析 - - 智慧大厦 - - 现有技术方案和难点 -- 是什么、现状(包括同行评价)、难点(技术的瓶颈)、如何做, -- 树莓派任务 - - 控制灯、串口通信,串口发送指令给树莓派,树莓派再发回 - - 浮点数 - - 友善串口调试助手 - - - diff --git a/孪生/笔记/第三周,调研.md b/孪生/笔记/第三周,调研.md deleted file mode 100644 index 4c31133..0000000 --- a/孪生/笔记/第三周,调研.md +++ /dev/null @@ -1,79 +0,0 @@ - ###### 数字孪生应用 - -- 工厂内部生产线(生产管理) - - 旧的技术方案、新的 - - 车组装 -- 展示、监控 - - 数字城市 - - 数据量大 - - 分析 - - 智慧大厦 - - 现有技术方案和难点 -- 是什么、现状(包括同行评价)、难点(技术的瓶颈)、如何做 - -###### 现有的应用 -[汽车生产线的数字孪生:维护决策支持 – AnyLogic仿真软件](https://www.anylogic.cn/resources/case-studies/digital-twin-of-a-manufacturing-line-helping-maintenance-decision-making/) -1. AnyLogic - - CNH:生产线数字孪生 - - 问题:停机维护成本很大,要尽可能降低停机时间 - - 使用数字孪生测试不同维护方案 - - 测试对象是货车底盘焊接生产线 - - 该线可以用贯穿多个站的输送机表示。用户要求将注意力集中在自动焊接站上,当一辆货车停在其中一个工位时,机器人就会协同工作完成焊接。 - - 焊接枪上的状材料组Lamellar pack (an electricalconductor which must flex during operation),在操作时要弯曲,会损伤其中的铜层,当损伤严重时会改变导电性,最终导致状材料组融化。 - - 正常情况下更换组件只要几分钟,如果组件已经损坏,则要花费几个小时 - - 解决:使用基于智能体的数字孪生检测组件健康 - - 根据以下智能体建立数字孪生: - - 厢式货车——有不同类型的厢式货车智能体,根据厢式货车的类型来生产。每种类型都需要不同的处理操作(可能涉及不同的操作、工作站和机器人),这会影响组件的退化 - - 站点——每个站点智能体的特征是它包含的不同数量的机器人,并受特定规则的控制 - - 机器人——每个机器人配有一个传感器,向仿真模型发送一个关于机器人实际情况的信号。每个机器人的智能体,依次提供一个特定的PHM(预后和健康管理)模型,根据接收到的信号预测机器人的退化情况。 - - 测试维护策略: - - 定期维护(根据计划更换部件)。 - - 基于状态的维护(根据报警信号更换部件) - - 预测性维护(组件根据其状态和使用信息按计划更换) - - 通过使用AnyLogic,数字孪生与外部数据源对接。从外部数据源导入生产顺序、车型焊点、机器人生命周期曲线等数据,运行时由智能体自动读取。此外,可以将系统作为独立应用程序导出并交付给多台计算机,从而减少数据约束和IT部门的需求。 - - 演示: https://youtu.be/XLBfw_BgyoM - - 优点: - - 在“数字孪生”的帮助下,CNHI的管理人员和专家可以获得不同维护策略配置的经济和生产后果的详细信息和演示性信息。这是通过运行各种假设场景来实现的,在这些场景中,用户不仅可以更改不同的核心参数(例如维护策略、生产计划、工作日程等)。而且如果需要,还可以改变线路或机器人的特性 - - 使用数字孪生进行仿真易于使用工具来分析和比较方案 - 使人们能够快速了解流程更改如何影响维护成本。数字孪生可以提供各种数据,包括总产量、维护时间、备件总成本和维护工作成本。 简而言之,数字孪生是建立高效生产线运营的详细而全面的工具。 - - 燃气轮机 - - [燃气轮机制造商项目管理数字孪生模型开发 – AnyLogic仿真软件](https://www.anylogic.cn/resources/case-studies/developing-a-project-management-digital-twin-for-a-gas-turbine-manufacturer/) -2. 数字孪生应用于生产制造 - 1. 传统流水线 - 2. ![[Pasted image 20230128094700.png]] - 1. [汽车制造硬核知识,带你了解车身车间(上) - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/109922545) - 2. 主要包括焊接机器人(点焊机、螺柱焊)、工装、SHUTTLE 线、BUFFER 缓冲区、压机、RUNBAR、运输工具(中转台和横移机、升降机、Dolly、雪橇) - 3. 是什么: - 1. 数字孪生是从微观原子级到宏观几何级全面描述潜在生产或实际制造产品的虚拟信息结构。构建数字孪生的最佳结果是,任何可以通过检测实际制造产品所获得的信息,都可以从它的数字孪生中获得。 - 2. 产品数字孪生体是指物理实体的工作状态和工作进展在信息空间的全要素重建及数字化映射,是一个集成多物理、多尺度、超写实、动态概率的仿真模型,可用来模拟、监控、诊断、预测、控制产品物理实体在现实环境中的生产过程、状态和行为。 - 3. 数字孪生是单个产品的全面数字化表示,它通过模型和数据包括实际生命对象的属性、条件以及行为,数字孪生是一组可以模拟它在已部署环境中实际行为的现实模型。 - 4. 现状: - 1. 制造中四个主要应用对象 ![[Pasted image 20230127105516.png]] - 1. 产品制造 - 1. 实现个性化制造,完成个性化制造的必要条件是 实现制造产品的全面数字化。建立产品的数字孪生模型能够减少产品在设计、生产过程中消耗的时间, 满足客户定制的需要,并对产品进行全生命周期管 理以提高对市场需求的反应速度。 - 2. 数据优化——对产品生产的几何运动进行了研究,设计了一种用于保证产品尺寸的数字孪生系统,通过数字孪生体对产品坐标及加工轨迹的仿真,进行误差分析和轨迹优化,从而优化了产品的定位及加工轨迹,确保了产品的加工质量。 - 2. 制造设备 - 1. 质量分析、寿命预测——是对现有的自动化设备进行数字孪生改造,从而使生产设备在故障预测和维护中比传统自动化设备拥有更强 的竞争力。传统制造设备大多基于经验,基于几何、 物理模型进行故障预测,但这些方法过于依赖经验 数据,对偶发性、不确定性事件响应率低,而基于数 字孪生的设备可以通过几何、物理、行为和规则建模 来评估设备当前状态。因此开发具有数字孪生功能 的制造设备,对制造业产业升级实现智能制造具有 巨大的推动作用。 - 3. 制造过程 - 1. 离散工业主要是指机电产品制造行业,诸如飞机、汽车、船舶、机床及武器的制造等都属于离散工业。现阶段离散工业产品生产是由许多制造商共同完成的,因此在实际生产中不可避免地会出现装配误差等诸多问题。现在有一种数控机床的数字孪生模型,将制造数据和感官数据集成到数字孪生模型中,以提高物理机床的可靠性和加工能力。 - 2. 自动化流水线在生产过程中将产生 大量的数据流,创建一个关于制造车间的数字孪生 对不同来源的数据进行收集与分析,如物理尺寸、制造信息、操作数据和分析软件的信息流等。如果运用得当,数字孪生模型可以非常精确地模拟实体制造及其运作方式。 - 3. 在某些复杂制造方案中单一产品的数字孪生模型并不适用,因此提出了过程数字孪生这一概念,过程数字孪生是产品数字孪生的扩展和更高层次。过程数字孪生除包含单一产品外,还包括整个生产环境,并使用 虚拟现实、人工智能和高性能计算机来优化制造设备和整个生产过程。 - 4. 由于成本或系统复杂性等问题,全自动数据采集系统或方法无法在中小制造企业中得到广泛应用 - 5. 为将生产员工视为综合控制系统的一部分,开发出一种基于员工的数字孪生生产系统。除包含员工的技能与经验外,还包括员工情绪、性格等个性化属性,使系统具备更好的开放 性和更高的舒适性。 - 5. 挑战 - 1. 技术 - 1. 在 工业应用方面仍然存在许多研究挑战,如建模技术、 数据分析、信息安全和隐私保护等。 - 2. 现有的建模与模拟技术无法兼容,也无法查看模型全生命周期的所有信息。目前缺乏一种专有格式将物理实体的工程数据与模型进行整合,因此 怎样构建一个涵盖产品全生命周期管理、制造系统执行和车间运营管理的数字孪生模型将是一个重要的研究趋势。 - 3. 孪生数据将具有多格式、高重复性和海量等特征,怎样将大数据分析融入到数孪生模型中,避免生产设备的实时数据对历史数 据的覆盖,实现智能分析和预测。同时怎样将不同部门,如机械设计、电气设计、气动结构和控制单元等不同结构的数据进行融合,实现基于孪生模型的 虚拟调试将是另一个研究趋势。 - 4. 智能决策系统的构建也将是一个研究趋势。 数字孪生应当是一个可以不断积累设计和制造知识 的系统,这些知识可以重复使用和不断改进。在虚拟模型与实际生产结果存在差异或物理实体与虚拟 模型出现不同步时,决策系统需要根据已有的知识,做出最优的反馈控制。 - 5. 数字孪生系统的安全性也将是一个重要的研究趋势。数字孪生拥有整个生产系统的所有核心数据,因此数字孪生系统或平台极易被攻击和窃取。 - 2. 应用 - 1. 在产品制造加工方向,如何构建工厂级别的设备集群数字孪生模型,实现产品全加工过程的实时监控、过程优化和远程控制,一种更好的模型表述方法,是数字孪生技术未来发展的关键。 - 1. 对于工业机器人的仿真方法通常基于运 动学和刚体动力学原理。工业机器人的仿真有非 常多的模拟软件可用,一些已知的和当前使用的仿 真软件工具 ROBCAD,V-RE、Demo3D 等 。这 些模拟工具的应用为规划和优化机器人工厂、传感 器、装配系统等提供了高效和灵活的可能性。但是, 几乎所有这些系统的缺点都是缺乏灵活性,因为它 们只是为一个非常特定的应用领域开发的。数字 孪生是一个全生命周期的过程,对于特定领域的建 模方式往往在数字孪生技术的配置方面是很复杂 且极容易出错的。就目前来说,还缺少一种整体 的、融合性的虚拟仿真技术可以在数字孪生的整个 生命周期内发挥作用。 - 2. 高性能计算设备及优化算法的研究,数字孪生技术真正落到实处,需要对虚拟模型进行实时的庞大的计算。 - 3. 高精度、高性能传感器及传感器网络——在数据采集方面,数据传输装置的准确性、不同坏境下工作的可靠性也是未来发展的方向 - 4. 在许多制造企业,尤其是中小型制造企业并不具备完全数字化的能力,仅能对部分设备进行数字化,如智能仓库或供应链管理。 因此如何将数字孪生在弱数字化企业进行应用也将是一个重要的研究方向 - 6. 使用 - 1. 西门子公司设计了数字孪生驱动的多学科协同开发平台。 该平台以机电概念设计平台为核心,融合了机械技术、电气技术、自动化技术和信息处理等多种学科,并通过 Teamcenter 管理平台实现了多个学科之间的信息交互;通过对集成电气和自动化元件的设备模型进行仿真,快速验证设计结果并进行及时反馈,可持续改进和优化设计阶段的数字孪生模型 。TEAMCENTER,一个产品生命周期管理 (PLM) 系统![[Pasted image 20230128101905.png]] - 2. 昆山沪光汽车打造了集仓库管理、数据采集、监视监控、生产执行与工程设计于一体的智能生产制造平台。 通过采用数字化线束工艺设计方法,规范化线束工艺设计流程,构建工艺设计知识库,标准化工艺研发输出,从而缩短了工艺研发周期,提升了输出质量,可自动输出对接其他系统物料信息及工艺数据 。 - 3. PTC 公司和 ANSYS 公司共同构建了水泵数字孪生体,通过传感器采集设备数据,并反馈至计算系统,通过 ThingWorx 平台对数据进行分析处理,并反馈到数字孪生模型中 。 该数字孪生体能够自动模拟水泵的正常运行状态,鉴别异常运行状态,并预测产品各部件的寿命及可能出现的结果。 - 4. ![[Pasted image 20230128103033.png]]![[Pasted image 20230128102536.png]] \ No newline at end of file diff --git a/孪生/笔记/第二周,树莓派.md b/孪生/笔记/第二周,树莓派.md deleted file mode 100644 index d43345b..0000000 --- a/孪生/笔记/第二周,树莓派.md +++ /dev/null @@ -1,20 +0,0 @@ -###### 配置树莓派,安装python、pip -空间不足的解决方法 -[树莓派存储空间不足 SD卡没有充分利用_newconniukang的博客-CSDN博客_树莓派16g的内存卡不够用](https://blog.csdn.net/newconniukang/article/details/103221414) -##### 点灯 -[《树莓派项目实战》第一节 点亮LED灯_la_vie_est_belle的博客-CSDN博客_树莓派 灯](https://pyqt5.blog.csdn.net/article/details/113822675) -. -##### 串口测试 -[树莓派 | 串口03 - Windows使用串口助手发送字符给树莓派_Wallace Zhang的博客-CSDN博客_树莓派串口调试助手](https://blog.csdn.net/wallace89/article/details/120582256) - -##### Python调用串口 -安装wiringpi查看RxD、TxD -[最简单的树莓派+python3+串口通信的教程以及出现的问题的解决方式_ChuckieZhu的博客-CSDN博客_树莓派串口通信python](https://blog.csdn.net/qq_38431572/article/details/86488688) - -##### 设计协议 -参照数据链路层 -用一个字符( * )作为帧开始和结束标志 -实现加减乘除功能 -##### 实现 - -