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 容器)进…...
CANN/ops-tensor贡献指南
贡献指南 【免费下载链接】ops-tensor ops-tensor 是 CANN (Compute Architecture for Neural Networks)算子库中提供张量类计算的基础算子库,采用模块化设计,支持灵活的算子开发和管理。 项目地址: https://gitcode.com/cann/o…...
众包平台AI渗透率达33-46%:人机协同如何重塑文本任务生态
1. 项目概述:一场关于“AI渗透率”的田野调查最近,一份关于众包平台中大型语言模型使用率的调查报告,在圈内引发了不小的讨论。报告的核心结论很直接:在当前的文本类众包任务中,大约有33%到46%的产出,背后都…...
LobeHub 这玩意儿,到底香在哪?
先说结论:LobeHub 是目前我在前端圈里看到的,最接近“智能体操作系统”的一个东西。不是吹,是真的好用到让我有点慌。事情是这样的前阵子我在搞一个自动化工单系统,本来打算自己撸一套 Agent 调度逻辑,结果写到第三天我…...
CANN SHMEM NotifyWait机制使用说明
NotifyWait机制使用说明 【免费下载链接】shmem CANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。 项目地址: https://gitcode.com/cann/shmem 环境要求和准备 SDMA功能在9.0.0及以…...
基于GSAP与线性插值实现丝滑自定义光标动画
1. 项目概述:一个丝滑的现代自定义光标如果你厌倦了浏览器那个千篇一律的箭头指针,想为你的个人作品集、创意网站或者某个酷炫的着陆页注入一点灵动的生命力,那么这个名为“Cuberto Cursor”的项目绝对值得你花时间研究。它不是一个简单的图片…...
3步让你的老旧Mac焕发新生:OpenCore Legacy Patcher终极升级指南
3步让你的老旧Mac焕发新生:OpenCore Legacy Patcher终极升级指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 想让2007年后的老旧Mac也能流畅运…...
ncmToMp3:打破音乐平台枷锁,让你的网易云音乐真正自由播放
ncmToMp3:打破音乐平台枷锁,让你的网易云音乐真正自由播放 【免费下载链接】ncmToMp3 网易云vip的ncm文件转mp3/flac - ncm file to mp3 or flac 项目地址: https://gitcode.com/gh_mirrors/nc/ncmToMp3 你是否曾为下载的网易云VIP音乐只能在特定…...
ARM Cortex-A9 MPCore调试架构与扫描测试技术详解
1. ARM Cortex-A9 MPCore调试架构概述在嵌入式系统开发领域,ARM Cortex-A9 MPCore处理器因其出色的性能表现和灵活的调试功能而广受青睐。作为一款多核处理器,其调试系统设计尤为复杂,需要兼顾芯片测试(DFT)和生产验证的双重需求。Cortex-A9的…...
SpringBoot配置中的变量引用技巧
在SpringBoot应用中,配置文件的灵活性是其一大优势。我们经常需要在配置文件中引用其他属性的值来动态生成新的配置项。本文将通过一个实例讲解如何在SpringBoot的application.yml文件中使用变量引用技术,特别是如何将一个变量的值作为Map的键名。 背景 假设我们有一个Spri…...
CodeGreen:跨平台软件能耗精准测量工具解析
1. CodeGreen:跨平台软件能耗精准测量工具解析在当今计算环境中,软件能耗已成为影响运营成本和环境可持续性的关键因素。随着AI工作负载的爆炸式增长,传统性能优化已无法满足绿色计算的需求。CodeGreen应运而生,这是一款面向开发者…...
