- 博客(701)
- 资源 (13)
- 问答 (1)
- 收藏
- 关注
原创 yolov8的onnx模型转engine模型
前提是把onnx模型转换好,然后直接在配置文件里配置engine即可。一般转换时间比较长:10分钟左右呢。
2024-08-26 10:41:33 216
原创 simulink 回放can数据,离线仿真,用来验证算法,应该怎么回读mat格式文件(重要)
simulink回放的模块是can log或者can replay,可以加载mat格式文件,然后再加一个can unpakage模块就可以了。asc格式文件一般可以用cananylzer采集,或者busmaster采集到的log转换为asc文件即可。用cannalyzer吧asc格式转换为mat格式,然后用simulink回放工具回放的。
2024-08-22 10:31:38 159
原创 自动驾驶的控制算法--mpc\pp\stanley\lqr\pid等
这些算法各有特点,适应不同的应用场景。这些控制算法的MATLAB实现为自动驾驶研究提供了一个宝贵的工具箱,有助于开发者理解和比较不同控制策略的性能,以及进行实际的车辆控制系统设计。通过学习和调试这些源代码,我们可以深入理解控制理论在自动驾驶领域的应用,并有可能改进现有的算法,提升自动驾驶系统的精度和鲁棒性。:模型预测控制是一种先进的控制策略,它基于有限时间内的系统动态模型进行优化,预测未来的系统行为。文件中可能包含了PID控制器的代码,用于调整车辆的速度和方向,以减少与目标轨迹的偏差。
2024-08-15 10:27:41 419
原创 线性数据离散化模块zero-order hold和quantize的区别
离散化模块zero-order hold和quantize的区别。zero-order hold:时间横向离散化。quantize:纵向离散化。
2024-08-12 14:25:57 343
原创 simulink种deadzone死区模块的理解和使用,使用simulink开发pid的时候经常添加deadzone(重要)
使用simulink开发pid的时候经常添加deadzone,这样不就把error差值限制在deadzone的上下限范围内了吗?,就不是真实的系统输入的差值error了吗?搭建两个仿真看下,尤其是当幅值设置为5的时候最明显能看出来效果,确实是好用的,其实本质是整个数据同步减去了deadzone设置的上下限值。Dead Zone模块产生指定范围(称为截止区)内的零输出。使用deadzone是为了保证连续性,使用在误差值里面的话不影响。3、输入小于等于下限值,输出下限值。2、输入大于上限值,输出上限值。
2024-08-12 14:21:59 458
原创 Arduino Mega 2560开发板的引脚分配图及说明,以及链接can的方法
串行通信:提供4组串行通信端口,0(RX)和1(TX)作为串口1,19(RX)和18(TX)作为串口2,17(RX)和16(TX)作为串口3,15(RX)和14(TX)作为串口4。外部中断:提供6个外部中断源,分别是2(外部中断0),3(外部中断1),21(外部中断2),20(外部中断3),19(外部中断4),18(外部中断5)SPI通信:53作为SS,51作为MOSI,50作为MISO,52作为SCK。模拟引脚:A0~A15(在引脚号前加A,以区分数字引脚)TWI通信:20作为SDA,21作为SCL。
2024-07-31 11:33:25 888
原创 用can控制odrive电机角度控制不转的原因是什么?是因为参数必须是浮点数,通过can还可以配置多个控制节点,最多可以控制8个设备
odrive电机角度控制不转的原因是什么?是因为参数必须是浮点数,用工具转换一下就可以了,注意低字节和高字节的位置。我这里就是吧axis0这个电机设置为了nodeid位3,还设置了波特率为50000。
2024-07-20 03:07:53 64
原创 ENCODER_ERROR_INDEX_NOT_FOUND_YET,对于SPI的编码器, 注意由于使用的AS5048A是绝对编码器,没有索引信号,所以不用进行索引校准,直接进行偏移校准即可。
注意由于使用的AS5048A是绝对编码器,没有索引信号,所以不用进行索引校准,直接进行偏移校准即可。AS547P一般是增量式编码器。
2024-07-19 23:52:55 48
原创 使用simulink进行esp32开发,进行串口收发数据需要注意的地方,为什么收发不成功
模型直接选择使用的是那组串口就行了,一般情况下我们收发使用同一组就可以,这样收发模块填写的端口号是一样的。1,主要是因为simulink里的配置文件配置的波特率和串口接受软件配置的波特不一致导致的。2,主要有以下三个界面。
2024-07-11 22:58:24 177
原创 低通滤波以及卡尔曼滤波
先讲解几个低通滤波,低通滤波比卡尔曼滤波简单,因为卡尔曼滤波涉及到两个输入量,一个是控制量,一个是观测量,而低通滤波是一个输入量。参考地址:https://blog.csdn.net/m0_58683132/article/details/140141942。参考地址:https://zhuanlan.zhihu.com/p/161695666。1,利用工具箱配置低通滤波。2,自己搭建低通滤波。
2024-07-08 08:50:43 141
原创 Matlab安装硬件支持包、simulink离线安装硬件支持包安装,离线安装ESP32、stm32等安装包,Are you up-to-date on SoftWare Maintenance?
注意:如果提示出现“没有可从此位置安装的兼容支持包后,这个问题,请查看步骤5,是不是没有按照步骤5进行操作.一般情况下出现“没有可从此位置安装的兼容支持包”后,重新安装选择了默认路径就可以成功。如果不是很清楚,直接安装在默认的文件夹下面,即使这个文件夹下没有matlab相关的文件夹,也要这么下载,没有为什么,切记尽量按默认路径安装,更改下载的路径不成功,别怪我没提醒。:下载到哪里非常重要,如果下载的不是默认的路径下,就需要将其中这个的是这个archives文件夹,连同其他文件一并要复制出来,拷贝到。
2024-07-02 09:34:01 473
原创 simulink-esp32开发foc电机
将 ESP32 连接到计算机的 USB 端口,然后将 ESP32 置于下载模式。ST-Link/V2:ST-Link/V2 是 STMicroelectronics 提供的用于编程和调试 STM32 微控制器的调试器/编程器。ISP(In-System Programming):ISP 是一种使用专用编程器将固件刷写到 STM32 的方法。这允许您使用串行连接或 USB 下载模式将固件刷写到 STM32。串行下载:串行下载可以使用串行连接将固件刷写到 ESP32。这对于已经部署的设备非常有用。
2024-07-01 09:40:46 242
原创 simulink开发stm32,使用中断模块,无法产生中断,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方
原来是需要在配置文件里开启一下timer的中断,其他模块自动加载ioc就可以了,这个timer需要注意力,需要自己勾选一下。1,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方。结果就是可以在log中看到了,非常好。
2024-06-29 01:07:59 387
原创 stm32cubemx,adc采样的几种方总结,触发获取adc值的方法dma timer trigger中断
方法1,软件触发方法2:,Timer触发ADC采集通过DMA搬运触发获取adc值的方法Regular Conversion launched by software 软件触发 调用函数即可触发ADC转换Timer X Capture Compare X event 外部引脚触发Timer X Trigger Out event 定时器通道触发,需要设置相应的定时器。
2024-06-28 15:04:36 684
原创 当我尝试用数字写入法将脉冲发生器调到最大值时,可以在求解器中进行设置。我将其设置为 1e-7,但频率仍然无法超过 25kHz。
当我尝试用数字写入法将脉冲发生器调到最大值时,出乎意料的是它已经在 25kHz 时停止了。经过研究,我发现这与 BaseRateSampleTime 有关,可以在求解器中进行设置。我将其设置为 1e-7,但频率仍然无法超过 25kHz。有没有人有过同样的经历,或者我仍然存在配置错误?还是因为 Simulink 无法生成更快的代码?
2024-06-25 16:23:50 427
原创 使用matlab开发stm32总结,stm32-matlab常见的问题处理以及报错合集
问题:本来是好的,突然编译运行报错,说是确少包,解决方案:重启以后好了。
2024-06-23 20:50:40 266
原创 stm32使用time模块输出pwm波,stm32-matlab开发电机控制
注意在stm32配置了两路的一个互补输出,但实际上在matlab里只需要给定占空比就行了,他会自动输出互补,驱动电机,这是因为有点的电机输出需要6路,有的只需要1路,我们看下图就知道了。
2024-06-23 10:51:21 288
原创 Solver-Fixed-step size(fundamental sample time)、Sample time(模块)、Sample time(powergui)三者的辨析
但可以明确的是:B>A,即模块中的Sample time优先级大于Solver中的Fixed-step size,但前者在数量级上必须是后者的整数倍,否则仿真报错。经测试,三者的优先级关系如下:模块中的Sample time>Fixed-step size(Solver中),而Sample time(powergui中)没啥作用,存在与否,不影响下文的测试结果。模块中设置Sample time,如sine wave模块,双击模块后,打开页面的最后一行可设置采样时间,,记为B。Simulink中三者的位置。
2024-06-12 10:19:43 281
原创 libgfortran-7-dev安装包下载-------以及gcc-7-base-----libgcc-7-dev----------libgfortran4---------下载地址
GCC,GNU 编译器套装(基本软件包)GCC 支持库(开发文件)
2024-05-30 09:59:44 130
原创 文章二:华为晟腾310b的Atlas 200I A2加速模块进行视频的AI分析,硬件使用的是Oringepi alpro,mxvision框架图,yolo系类部署(推荐环境安装)
如下图:我们可以看到mxvision的yolov3推理是用的tensorflow实现的的,所以我们要运行这个工程的话,需要安装tensorflow环境,而yolov4的推理库是用pytorch编写的,所以我们需要运行yolov4的mxvision工程,需要安装pytorch环境。
2024-05-28 17:02:10 265
原创 文章一:华为晟腾310b的Atlas 200I A2加速模块进行视频的AI分析,硬件使用的是Oringepi alpro(推荐环境安装)
Version”字段值表示NPU固件版本。本文中的NPU版本号表示NPU驱动版本。NPU ID表示设备编号,可通过npu-smi info。NPU驱动和固件版本可通过npu-smi info -t board -i NPU ID命令查询。回显信息中的“Software。mxVision使用依赖npu-driver驱动包、npu-firmware固件包和CANN开发套件包。Version”字段值表示NPU驱动版本,“Firmware。主要还是参考官方的安装步骤,
2024-05-28 15:27:11 489
原创 OrangePi AIpro开发板,使用了310B,昇腾310B较于昇腾310有何性能提升?
他们对应的模组分别是:Atlas 200 AI和Atlas 200I A2。310B:基本规格 - Atlas 200I A2 加速模块。310:基本规格 - Atlas 200 AI加速模块。OrangePi AIpro开发板。
2024-05-28 14:37:54 712
原创 PID控制中积分项目的理解,消除稳态误差的作用,表示着过去(PID积分控制)
其中我们会加入比例项目,是为了快速达到稳态,否则只有比例项的话,比例系数KI太小,进入系统稳态时间太长,太大会导致振荡严重,所以需要一个KP,让系统快速进入稳态,有了KP的帮助,KI就可以给的很小,便可快速进入稳态,而且KI比较小,不至于由于积分项目的变化太大,导致系统振荡。积分项目是对于历史误差进行的累积,可以理解,系统的误差累积表示不断的在减少误差,最终消除误差,这个过程需要将误差进行累加,才可以真正知道误差的大小是多少,用最终累加的误差作为积分项目,去消除误差,保证系统的稳态。
2024-05-28 11:24:26 868
原创 pid中的d到底是什么意思?微分到底是用来做什么的,什么情况下用,避免入坑实际案例中的使用-----------PDI中的D阻尼调节
下面是没有给D参数值的情况,启动阶段抖动特别厉害,这个原因是系统响应没有负载,响应过快,启动阶段由于差值大,所以比例项计算出来的扭矩大,所以电机有一个大扭矩,但是由于过大了,所以转速很快就变大了,这个时候差值变为相反的的值,PID系统就会输出相反的大扭矩,这个时候有会反着转动,很明显在启动阶段不停震荡,这种现象必须加入D,延迟系统响应,让系统不要过快的响应给电机一个很大的扭矩,但是加入D之后会出现稳态下的高频振荡,这时候把d降低一些.积分(integral):误差积分------过去 0.04。
2024-05-27 14:19:02 362
原创 华为mindx推理rtsp数据流(推荐参考)
链接:https://pan.baidu.com/s/1TTbSmKaSlaSWVufbx8lFdg?参考链接:https://gitee.com/ascend/mindxsdk-referenceapps。这里用到的是mxpi_rtspsrc插件,地址url也有,其他的是这个插件的一些属性。1,下面是一些案例,使用了mindx中的mxvision来推理rtsps实时数据流。2,这是案例的下载地址,大家需要了可以下载。
2024-05-24 10:15:11 99
原创 PID控制中的积分到底是什么,为什么它可以将矩形线转换为曲线?simulink搭建PID控制,积分模块1/s
可以看到加速度的变化,积分到了速度,如果加速度先增大,那么速度就会出现快速曲线上升,然后加速度恒定后,速度增加的变成了一个直线,如果加速度减小,那么速度就变成了缓慢增加的过程,这样就直观的看到加速度和速度之间的关系了。PID控制中的积分到底是什么,为什么它可以将矩形线转换为曲线,1/s或者后面的离散积分模块就是做积分使用的。这个问题呢其实道理很简单,用到的是初中的知识。,这样让转速快速达到,实际情况就会变成这样。如下面matlab搭建了积分1/s。需要PID模块的,关注后私信。
2024-05-24 09:11:58 291
原创 华为昇腾AI处理器,atc模型转换和推理过程,华为的CANN库对标的是NVIDIA的cuda,所以在华为昇腾AI处理器上安装了CANN后,就可以直接使用pytorch了,以及推理框架(参考学习)
第一个是:ais_bench,这个是一般随晟腾芯片安装预装在系统中了,他是ai demo,可以直接使用juptter运行:安装以及运行链接,大部分可能直接使用这个工具是零时用一下ai推理,但是在商业环境部署中不推荐。参考链接:https://blog.csdn.net/clever101/article/details/134603562。CANN支持下面的框架,所以Yolov5这些用pytorch写的是直接可以用的,不过需要把模型转换为华为的Om模型就可以了。第二个是:mindx(
2024-05-23 11:27:01 326
原创 华为晟腾AI芯片的控制器环境安装CANN,以及ATC模型转换工具--onnx模型转华为的om模型(模型转换)
参考链接:https://x1r16g0t68h.feishu.cn/docx/I2zjdbD57oMU3dx3YWYcO7ICn5d。
2024-05-23 09:58:16 219
原创 FOC之反park变化推导笔记
至于为什么PID出来就是电压值,因为Ud和Uq的公式中有id和iq,两者之间有关系,具体的我给出两个链接。而这个反park那就是对电压的变换,最终得到Ualpha和Ubeta,Vd和Vq是Id和Iq电流经过PID控制器后得到的电压值。然后给到SVPWM进行三路PWM的占空比计算。之前的clark和park都是对电流的变化。
2024-05-22 11:13:30 514
原创 PID调节常见的问题----积分饱和等问题,以及模糊控制--参考学习(案例学习)
2,PID控制参数整定(调节方法)原理+图示+MATLAB调试。PID控制学习笔记之三—积分的处理。
2024-05-15 15:34:53 353
原创 记录一下simulink的pid controller模块某些情况下不能使用的坑
simulink的pid controller模块不能够再function-call subsystem中使用,因为我们使用simulink pid的时候系统的采样时间必须是确定的,因为再这个模块中要使用这个时间,而一般我们使用function-call subsytem的时候,采样时间是集成的,设置的是-1,所以这个时候pid模块生成代码的时候会报错(但是编译的时候不报错)建议2:系统时间确定的情况下可以使用siumlink的pid模块,因为它的工具很齐全,快速调节pid参数很方面,尤其是再仿真的时候。
2024-04-28 10:50:09 445
原创 vcu开发,
从整车控制器VCU模型入门simulink。整车控制器功能开发(九):扭矩解析功能管理。一起学习VCU建模吧-驱动扭矩计算。一起学VCU建模吧-蠕行控制。
2024-04-24 11:31:21 253
原创 This assignment writes a ‘double‘ value into a ‘logical‘ type.使用stateflow开发需要注意的数据赋值的问题,尤其是boolean类型
原因是在flow中要给boolean值必须用true,或者false,不能使用数字来代替,今天做一个灯光优先级的控制模块,使用了chartflow开发,结果里面报奇怪的错误,
2024-04-16 14:00:14 601
原创 clion中重新打开工程后,发现没有go to definition/declaration了,怎么办?没有跳转了,
clion中重新打开工程后,发现没有go to definition/declaration了,怎么办?解决办法:关闭clion,重启电脑,就好了。
2024-04-15 10:42:24 112
原创 使用simulink对stm32进行开发,并控制电机问题总结:1,出现电机卡卡滞现象,明显转不快,电机发烫,2,ADC采样电流曲线明显不对,不是正旋函数(推荐)
验证完硬件没问题,我们看下我用simulink用程序读取到的adc采样,直接没有修改log的比例尺,显示如下,看着不是很对、、对比示波器50ms一个孤峰,和simulink的log显示的类似,证明我们的数据没什么问题。原因是电机的驱动板的供电有问题,重新开关一下电机供电的驱动板子,重新刷写一下程序就好了,如果我们设置一下比例尺,这个时候再看波形,就是没问题了。1,出现电机卡卡滞现象,明显转不快,电机发烫,电流采样像是杂波,不对的原因是设置的比例不对,2,ADC采样电流曲线明显不对,不是正旋函数。
2024-04-04 21:55:41 341
原创 使用simulink开发stm32需要注意的地方--log显示数据的实时性的几种方法--stm32\adc\i2c实时性(推荐查看)
3,修改采样频率–simple time。下面是官方给出的说明,可以仔细阅读查看。2,修改log日志–配置文件中修改。1,提高串口波特率–实测有效果。
2024-04-01 16:13:39 468
原创 (1) Outport is driven by a block with non-overwritable output such as a Ground(simulink 问题解决)
这个问题的原因是状态机出来的信号需要添加同步处理模块,并且添加singal conversion模块才可以,否则会报上面的错误问题,记得在后面重新在线上把名字加上,因为这个模块有隔离作用,不能够集成原来的名字。
2024-04-01 14:39:12 534
原创 a signal of data type ‘xx‘. However, it is driving a signal of data type ‘uint8‘.枚举量 (simulink 问题解决)
我在使用枚举量的时候碰到这些问题,总是编译不过,总后的原因是我要把枚举量输出出去使用,必须转换为基本类型,否则没法进行运算处理。
2024-04-01 14:30:39 450
原创 FOC控制算法---通俗讲解(可以看懂的)
FOC控制算法,即磁场定向控制算法,是一种先进的电机控制技术。它通过精确控制电机磁场的大小和方向,实现了电机运动转矩的平稳、噪声的降低和效率的提高。简而言之,FOC算法能够对无刷电机进行精细的驱动控制,达到传统控制方法无法实现的性能。
2024-03-29 15:39:31 1671
一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之
2023-04-03
文件同名代码,修改两个文件夹中文件的名称,让文件对应起来,程序亲测好用
2022-04-28
神经网络预测天气的气温数据集免费资源
2022-01-01
javaweb管理系统,大学就业信息管理系统源码,毕业设计参考必看,毕业生必看,附完整源码何运行截图
2021-08-08
网上花店管理系统完整代码,大作业学生毕设参考学习
2021-05-12
android扫一扫查询excel,扫一扫查询数据库数据
2021-02-19
Deepstream里如何如何调用多个模型?
2022-09-06
no model name “PIL“ and Command “/usr/bin/python3 -u -c “import setuptools, tokenize,错误的解决方法
2022-08-18
java类方法的设计需要注意什么?
2020-08-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人