《考虑乘车人晕动特性的智能车路径规划与跟踪控制》学习大杂烩

本文详细介绍了作者在毕业设计中学习Simulink和Simscape的过程,主要涉及这两款工具的基础知识、建模步骤、模块使用以及在车辆动力学和人体动力学建模中的应用。作者通过实例讲解了如何在Simulink中处理数据类型和维度、搭建物理系统模型,并分享了在使用过程中遇到的问题及其解决方案,旨在为初学者提供学习参考。
摘要由CSDN通过智能技术生成

在这里插入图片描述
由于毕业设计的需求,小白开始学习人体动力学和神经动力中学关于晕动的知识以及车辆自动驾驶开发,本文主要用于个人学习记录,并不全面,都是我觉得有用的东西,主要是技术方面的问题。但是本文也可以作为和大家交流的媒介,希望可以帮助到新接触这方面的同学。

simulink

特点以及基础

框图化的工具来进行建模仿真,数学模型能描述,就能建模
交互式建模、仿真;可拓展定制;有专业模块库(比如vehicle dynamic blockset)

要求基础:matlab语言;高数;线代;专业知识;英文阅读能力

数据类型和维度

input数据(https://blog.csdn.net/weixin_45687296/article/details/127652209?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171126828616800182768898%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=171126828616800182768898&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-4-127652209-null-null.142v99pc_search_result_base2&utm_term=simulink%E4%B8%AD%E8%BE%93%E5%85%A5%E5%90%91%E9%87%8F&spm=1018.2226.3001.4187)

数据类型
在这里插入图片描述

https://blog.csdn.net/kzpx_1106/article/details/125043357?ops_request_misc=&request_id=&biz_id=102&utm_term=matlab%E4%B8%AD%E8%BE%93%E5%85%A5%E5%90%91%E9%87%8F&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-4-125043357.142v99pc_search_result_base2&spm=1018.2226.3001.4187

在matlab中需要明确,信号线中“流动的”信号维度,做到输入输出匹配

https://blog.csdn.net/qq_33419476/article/details/105546442
常量:在simulink中注意区分数据向量和矩阵,在simulink中将向量看成矩阵的话,横竖排列按照书写形式解释;看成一维数组的话,排列形式按照数项进行排列

首先得补充数学知识:什么是数组、矩阵matrix、向量vector
在这里插入图片描述
数组
在这里插入图片描述
二维数组:[1 2;3 4]也算
向量
n维向量可写成一行,也可写成一列,分别称为行向量和列向量,也就是行矩阵和列矩阵,并规定行向量和列向量都按矩阵的运算规则进行运算。
默认列向量是竖着的。
在这里插入图片描述
在这里插入图片描述
矩阵
在这里插入图片描述
矩阵的维度是指矩阵的行数
矩阵包含向量,向量组即可构成矩阵
在这里插入图片描述

如何输入向量?

https://blog.csdn.net/stardsd/article/details/51138658?ops_request_misc=&request_id=&biz_id=102&utm_term=matlab%E4%B8%AD%E8%BE%93%E5%85%A5%E5%90%91%E9%87%8F&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-51138658.142v99pc_search_result_base2&spm=1018.2226.3001.4187
行向量:a=[1,2,3,4,5] 列向量:a=[1;2;3;4;5]

建模步骤

1、建立微分方程组
2、画出方框图
在这里插入图片描述
3、对应转换到Simulink中,先把需要的模块都放进去,再进行连接输出输入端
4、优化布局,提高可读性

Simulink学习——模型布局及可读性优化相关的便利功能(https://blog.csdn.net/weixin_44281768/article/details/108550343)

5、运行调试,模型配置参数:变步长 ode45算法

模块

右键模块调用帮助,能解决遇到的90%问题

《Simulink仿真教程4—模块库介绍》(https://blog.csdn.net/qlexcel/article/details/98320980)中有简略的图片介绍,先混个脸熟,能认识再说

Step阶跃项 Ramp斜坡信号 Gain增益、倍数 Add加法 Integrator积分 constant常数 Derivative微分 Divide除法
Add:圆形状态下,注意±顺序,是逆时针排列;使用过程中,各个量要维度匹配。维度不匹配的话,会将标量转化为矩阵形式。
Product:基本一样同add,输入数量3,就是3个乘法,可以输入*/来结合乘除法;注意!乘法运算原则中按照矩阵和元素的区别。
Gain:可以选择Element-wise,作为标量使用;可以选择Matrix,作为矩阵使用,分别为左乘增益,右乘增益以及矩阵是向量的左乘增益。
在这里插入图片描述

Step:Step time是阶跃时间,Initial value是初始值,Final value是最终值,Sample time指的是采样时间,是系统进行仿真所取得时间间隔,一般选默认设定,大多数情况下不需要特殊设定。

Ground:可以将不连接其他的模块输入接地,防止报错。
Terminator:终止模块,连接输出接地
Display的使用,链接某输出才行,数组显示器
在这里插入图片描述
传递函数Transfer Fcn

在这里插入图片描述
在这里插入图片描述

Matlab中传递函数的几种输入方式https://blog.csdn.net/wanrenqi/article/details/111550588

信号合并模块Mux
虚拟模块,虽然视觉上将多个信号合并为一个信号,但是实际上并没有改变其内部数据结构,只是视觉上看起来简洁并且可以同一管理,往往可以使用Mux模块将多个信号汇聚之后显示到同一个scope的同一个坐标系中,这样scope就不需要提供多个输入输出端口了

信号分解模块Demux
【2:第一路分配两个数;-1:表示第二三路随机分配】
在这里插入图片描述总线创建与选择模块
Busc

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值