Simulink学习笔记【PID UG联动仿真】
Simulink进行PID控制及调参:
- 建立系统动力学框图(把状态方程翻译出来),设置成subsystem
- 建立PID反馈回路。示波器叫scope,多变量输出用demux和mux。
- 可以用自动调参Tune模块,调整响应速度和稳定性,达到较优状态,更新参数并重新run
- 或者可以使用内置的状态空间法建立动力学模型:用状态方程模块State-Space,直接输入ABCD及初值矩阵即可
- 可以添加多个PID控制:PID是对y(t)的偏差值进行计算处理,得到u(t)的新数值。PID本身的阶跃响应曲线(响应速度、稳定性)一定程度上反应了实际系统的响应特征,因为冲激函数的卷积是阶跃函数。因此,多个PID控制的话需要先把各自PID的结果相加,然后再输入到系统状态方程里面(作为输入u)。
- 可以在3s加入一个转角的小扰动,用Step函数*2+作差处理,制造冲激信号。这样可以看到两个PID分别发挥作用。
- 想要导出数据重新作图,把mux的数据连线到out模块,运行,回到matlab里面看工作区,有out表格,tout是时间,yout是研究的变量,value里面有四列,位移,速度,角度,角加速度。
Simulink & UG联动仿真:
步骤总述:
- 在UG里面建立机械系统模型。
- 确定系统输入和输出,UG里面的输出是Simulink的输入,反之亦然,总之要建立UG和Simulink的闭合回路。注意:工厂输出是UG到Simulink,工厂输入是Simulink到UG,这两个概念都是在UG里面定义的,所以以UG为参考。
- 在Simulink建立控制系统框图,把动力学模块用UG模块替代;
- 进行联合仿真分析。
详细步骤:
- 在UG里面关联MATLAB。用户默认设置,仿真,运动,分析,右边选RecurDyn求解器,控制/动力学模块下,采样时间0.001,MATLAB可执行文件选择电脑中matlab的安装地址exe,Windows那行里面填好。
- UG里面导入模型,打开prt文件。(剩下的操作和之前类似,打开运动导航器,新建仿真……)
- 设置仿真环境,RecurDyn结算方案选“协同仿真”。注意,设置之前需要先右键左侧菜单的模型(step上面的一行),修改求解器为RecurDyn求解器。
- 跟之前一样,建立连杆和运动副。RecurDyn会自动给固定连杆建固定副的,不用自己设置。注意滑块滑动副可以把全局坐标系的坐标原点设置成原点。转动副可以重点观察一下方位,到底怎么转角度是正值(我觉得可能局部坐标系和全局重合比较方便看)
- 点击菜单(M),插入,工厂,工厂输入。在最上面一行的“加载“里面选择”矢量力“,全局坐标系正方向,指定原点先选择面上的点,确定面的x坐标,再选择”点对话框“,直接设置坐标y和z,放在中心。幅值选择函数,函数管理器,插入,”工厂输入“,Pin001,回去幅值那边把这个函数施加上去。(可以调整显示图例大小,这样才能看到力的箭头,参考之前的笔记)
- 建立传感器*4,测量对象选择滑块的位移(分量z,相对,选择滑块运动副)、速度(分量z,相对,选择滑块运动副)、摆杆运动副的角度(分量RZ,相对,选择旋转副)、角速度(分量RZ,相对,选择旋转副)。
- 插入工厂输出*4,分别将上面4个传感器都定义为工厂输出(每个传感器一个输出)。
- 添加解算方案,分析类型是控制/动力学,时间30s,步数1000步,重力对摆杆运动很重要所以要加上。保存。
- 对模型求解,协同仿真选Simulink。目前还没有结果。
- 回到文件夹下面,多出来两个m文件Plant和PlantIO。
- 打开Simulink,建立控制框图,和上次建的一样就好(用最简单的一环控制转角)。
- 后续思路是把状态空间模型块替换成UG的模块,输出分别用四个示波器显示就好,角度有一个初始值需要加进去(因为simulink定义的坐标系目标角度是0°,而UG模型本身有一个初始-5°的角度,所以UG模型的目标角度是5°。注意全部用弧度表示!!)。
- 把两个多的m文件在MATLAB打开,运行plant文件,出现了一个运动框图,可以复制粘贴进自己画的控制框图里。
- 绘制好框图后,稍微做一些调整。联动的时候容易出现崩溃的情况,因此插入一个延时函数transport delay,0.001s=1ms,放在PID和UG模块之间,经过延时再输入进来。
- 建立一个示波器,显示PID的结果,也就是驱动力。
- 再来看看PID模块。直接run一下试试(记得把simulink的stop time改成30s和UG一致,但是好像还是不够,还有什么地方也要调……),看结果发现位移是匀速运动(动态平衡),因为只做了一环控制。回到UG可以看动图,在初始的一瞬间就达到了平衡……好吧……
- 修改PID模块参数,可以看不同的效果。
- 双击NX的模块,可以看到我们设置的工厂输入和工厂输出。
- 可以加两环控制。还可以去UG里面直接看运动结果图,更清楚一些。
相关文章:
Simulink学习笔记【PID UG联动仿真】
Simulink进行PID控制及调参: 建立系统动力学框图(把状态方程翻译出来),设置成subsystem建立PID反馈回路。示波器叫scope,多变量输出用demux和mux。可以用自动调参Tune模块,调整响应速度和稳定性࿰…...
【Python】30个Python爬虫的实战项目!!!(附源码)
Python爬虫是数据采集自动化的利器。本文精选了30个实用的Python爬虫项目,从基础到进阶,每个项目都配有完整源码和详细讲解。通过这些项目的实战,可以全面掌握网页数据抓取、反爬处理、并发下载等核心技能。 一、环境准备 在开始爬虫项目前…...
uni-app 界面TabBar中间大图标设置的两种方法
一、前言 最近写基于uni-app 写app项目的时候,底部导航栏 中间有一个固定的大图标,并且没有激活状态。这里记录下实现方案。效果如下(党组织这个图标): 方法一:midButton的使用 官方文档:ta…...
什么是Sass,有什么特点
Sass 概述 什么是 Sass? Sass(Syntactically Awesome Style Sheets)是一种 CSS 预处理器,它扩展了 CSS 的功能,使其更加强大和灵活。Sass 允许开发者使用变量、嵌套规则、混合宏、继承等高级特性,从而编写…...
服务器端渲染 (SSR) 与客户端渲染 (CSR)
嘿程序员!我们都知道,新时代的 Javascript 已经彻底改变了现代网站的结构和用户体验。如今,网站的构建更像是一个应用程序,伪装成一个能够发送电子邮件、通知、聊天、购物、支付等的网站。今天的网站是如此先进、互动,…...
数据结构(Java版)第一期:时间复杂度和空间复杂度
目录 一、数据结构的概念 1.1. 什么是数据结构 1.2. 算法与数据结构的关系 二、算法效率 三、时间复杂度 3.1. 大O的渐进表⽰法 3.2. 计算冒泡排序的时间复杂度 3.3. 计算二分查找的时间复杂度 四、空间复杂度 4.1. 空间复杂度 4.2. 冒泡排序的空间复杂度 4.3.…...
基于web的音乐网站(Java+SpringBoot+Mysql)
目录 1系统概述 1.1 研究背景 1.2研究目的 1.3系统设计思想 2相关技术 2.1 MYSQL数据库 2.2 B/S结构 2.3 Spring Boot框架简介 3系统分析 3.1可行性分析 3.1.1技术可行性 3.1.2经济可行性 3.1.3操作可行性 3.2系统性能分析 3.2.1 系统安全性 3.2.2 数据完整性 …...
用go语言后端开发速查
文章目录 一、发送请求和接收请求示例1.1 发送请求1.2 接收请求 二、发送form-data格式的数据示例 用go语言发送请求和接收请求的快速参考 一、发送请求和接收请求示例 1.1 发送请求 package mainimport ("bytes""encoding/json""fmt""ne…...
GeekChallenge 2024 第十五届极客大挑战 pwn AK
GeekChallenge 2024 第十五届极客大挑战 pwn AK 🍀前言☘️ez_shellcode(shellcode,栈溢出)🌿分析🌿解题🌿exp ☘️买黑吗喽了吗(整数溢出,栈溢出)dz…...
禅道是什么,nas是什么,ssh是什么,finalshell是什么,git命令feat 、fix分别什么意思
禅道(Zentao)是一款开源的项目管理软件,专为软件开发团队设计。它集成了项目管理、产品管理、质量管理、文档管理和事务管理等多种功能,旨在帮助团队提高工作效率和项目交付质量。禅道支持敏捷开发方法,同时也适用于传…...
点云-半径搜索法-Radius Search
核心作用 在于通过设定一个空间范围(半径)寻找点的邻域点集合,从而支持对局部区域的分析和操作。 因为空间半径不会随着密度变化而改变点云输出的结果,处理密度变化大的点云时很重要。 应用场景 稀疏点检测:当点云密度…...
P11290 【MX-S6-T2】「KDOI-11」飞船
题目大意:有i种加油站,最开始速度为1,每次加油可以使速度*v,每次加油有一个时间代价,求到达终点所需最小时间。 思路:不妨考虑dp,贪心是错误的。 对于速度而言,,所以速…...
WebGIS地图框架有哪些?
地理信息系统(GIS)已经成为现代应用开发中不可或缺的一部分,尤其在前端开发中。随着Web技术的快速发展,许多强大而灵活的GIS框架涌现出来,为开发人员提供了丰富的工具和功能,使他们能够创建交互式、高性能的…...
量化加速知识点(整理中。。。)
量化的基本概念 通过减少模型中计算精度,从而减少模型计算所需要的访存量。 参考...
BLIP-2模型的详解与思考
大模型学习笔记------BLIP-2模型的详解与思考 1、BLIP-2框架概述2、BLIP-2网络结构详解3、BLIP-2的几点思考 上一篇文章上文中讲解了 BLIP(Bootstrapping Language-Image Pretraining)模型的一些思考,本文将讲述一个BLIP的升级版 BLIP-2&am…...
2024年11月22日 十二生肖 今日运势
小运播报:2024年11月22日,星期五,农历十月廿二 (甲辰年乙亥月庚寅日),法定工作日。 红榜生肖:马、猪、狗 需要注意:牛、蛇、猴 喜神方位:西北方 财神方位:…...
小米C++ 面试题及参考答案上(120道面试题覆盖各种类型八股文)
进程和线程的联系和区别 进程是资源分配的基本单位,它拥有自己独立的地址空间、代码段、数据段和堆栈等。线程是进程中的一个执行单元,是 CPU 调度的基本单位。 联系方面,线程是进程的一部分,一个进程可以包含多个线程。它们都用于…...
SQL SELECT 语句:基础与进阶应用
SQL SELECT 语句:基础与进阶应用 SQL(Structured Query Language)是一种用于管理关系数据库的编程语言。在SQL中,SELECT语句是最常用的命令之一,用于从数据库表中检索数据。本文将详细介绍SELECT语句的基础用法&#…...
微服务即时通讯系统的实现(服务端)----(1)
目录 1. 项目介绍和服务器功能设计2. 基础工具安装3. gflags的安装与使用3.1 gflags的介绍3.2 gflags的安装3.3 gflags的认识3.4 gflags的使用 4. gtest的安装与使用4.1 gtest的介绍4.2 gtest的安装4.3 gtest的使用 5 Spdlog日志组件的安装与使用5.1 Spdlog的介绍5.2 Spdlog的安…...
《Spring 依赖注入方式全解析》
一、Spring 依赖注入概述 Spring 依赖注入(Dependency Injection,DI)是一种重要的设计模式,它在 Spring 框架中扮演着关键角色。依赖注入的核心概念是将对象所需的依赖关系由外部容器(通常是 Spring 容器)进…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
