- 博客(128)
- 资源 (3)
- 收藏
- 关注

原创 chhttty个人博客总目录
博主会定期更新博客,记录自己工作、学习过程中的一些思考。对于理论性的内容,博主会根据自己的理解表述出来,如果理解有误,欢迎指出。对于应用性的内容(比如模型仿真、生成代码、脚本编程),博主会尽量把流程写清楚,并展示脚本运行结果或生成代码结果,达到一个可验证和可复现的效果。
2020-04-19 16:43:14
44490
40
原创 直流减速电机控制实验:Simulink应用层开发(2)
本文主要根据《直流减速电机控制实验:Simulink应用层开发(2)》中所拆解的需求以及实施方案,进行Simulink模型搭建。
2025-03-26 22:13:35
85
原创 直流减速电机控制实验:Simulink应用层开发(1)
本章主要提出应用层软件需求以及拆解分析需求,下一篇博文会根据本文分析的结论进行建模和单元测试。
2025-03-17 21:39:50
87
原创 直流减速电机控制实验:CubeMX配置底层软件
本文通过STM32CubeMX配置了STM32的时钟、GPIO输入、PWM输出、串口输出,并手写代码验证了这些配置的正确性。后续集成Simulink代码的过程中,会以本文中的GPIO、PWM相关的函数为基础。
2025-03-11 21:01:37
56
原创 直流减速电机控制实验:实验介绍
首先会配置GPIO输入,用于检测按键是否被按下,接着会配置两个引脚用于PWM输出到L298N,与《LED灯闪烁实验》不同,本文将定时器中断配置为10ms,减少CPU开销。另外,配置一个串口,用于输出调试的信息。ST-LINK V2是STM32开发生态系统中常用的硬件调试接口,能够连接微控制器与开发环境,实现程序的下载、调试和分析。本实验结合Matlab/Simulink工具链和STM工具链,实现通过STM32开发板控制直流减速电机的正反转。直流减速电机是本文实验的被控对象,本文会控制电机正转、反转、停转。
2025-03-03 21:16:33
67
原创 LED灯闪烁实验:代码集成
LED灯闪烁实验已经全部完成,在该实验中使用了较多的工具链,涉及底层软件、建模、软件编译等。首先,通过STM32CubeMX工具进行STM32底层软件配置,可以大大减少手写代码的工作量。另外由于做了可视化,也降低了STM32的上手难度,提升效率。利用Simulink建模,可以在PC环境下验证应用层算法的正确性而不依赖于具体控制器,实现应用层算法和底层软件、控制器硬件的解耦。另外,图形化的建模方式也更加有利于开发者思考与分析,大量的封装库文件也可以降低开发的工作量。
2025-02-24 21:07:33
66
原创 LED灯闪烁实验:Simulink应用层开发
模型可以不依赖于硬件单独仿真,因此可以与底层软件解耦;将验证的过程直接在模型完成,可以避免一些bug带到后面的阶段;模型封装了很多常用模块(例如上文的方波生成器),可以避免重复造轮子;
2025-02-19 21:08:03
163
原创 LED灯闪烁实验:CubeMX配置底层软件
本文通过STM32CubeMX配置了STM32的时钟及GPIO,并手写代码验证了系统定时器中断和GPIO配置的正确性。后续集成Simulink代码的过程中,会以本文为基础。
2025-02-16 11:28:23
909
原创 LED灯闪烁实验:实验介绍
每个章节都会单独进行验证工作,例如Simulink开发的应用层软件,会在Simulink-TestHarness中进行仿真,通过Scope示波器模块输出0-1交替的结果。CubeIDE集成双方的代码后,会烧写到开发板中验证是否按照定义的时间进行闪烁。ST-LINK V2是STM32开发生态系统中常用的硬件调试接口,能够连接微控制器与开发环境,实现程序的下载、调试和分析。STM32F103C8T6最小系统板是基于STM32F103C8T6微控制器的开发板,本实验会涉及使用板载的连接PC13引脚的LED灯。
2025-02-16 11:01:32
139
原创 Simulink建模基础:数学运算
本文研究了Math Function模块、Trigonometric Function模块和Abs模块的用法,在实践中使用的频率是比较高的。>>返回个人博客总目录。
2024-08-03 11:24:08
4423
原创 Simulink建模基础:基本算数运算
本文研究了在Simulink中进行基本的算术运算的模块及其代码,这些在建模中是最常见的。>>返回个人博客总目录。
2024-07-31 21:58:40
4279
原创 Simulink建模基础: 基本模块的使用
本文讲了一些基本模块的使用,其实之前已经写了大量的Simulink内容,但是忽略了最基本的东西,所以回来补充一下。>>返回个人博客总目录。
2024-07-27 11:03:50
4438
原创 Simulink建模基础: 基本数据类型
本文研究了Simulink中的浮点型(double、single)、整型(int8、uint8等)和布尔型数据类型。建模时需注意浮点数比较的精度、整数溢出问题以及布尔类型的位域优化,以提升模型效率和可靠性。返回个人博客总目录。
2024-06-19 20:35:39
5946
2
原创 Simulink相关配置:模型诊断配置
本文介绍了模型诊断配置,通过配置一部分诊断项为error后,有助于工程师减少开发中的问题,并且规范开发流程。>>返回个人博客总目录。
2024-06-15 15:40:32
3865
1
原创 Matlab编程技巧:导入MDF文件
本文研究了如何用脚本解析MDF文件,将其中的信号回灌到Simulink模型中进行仿真。>>返回个人博客总目录。
2023-12-25 20:59:30
3306
2
原创 C语言编程:最小二乘法拟合直线
本文本文研究通过C语言实现最小二乘法拟合直线。在工程应用中,一次和二次多项式的拟合用的比较多。二次多项式拟合可以参考一次的推导过程和编程过程,需要求解三阶行列式求解三个系数。>>返回个人博客总目录。
2023-08-15 20:45:38
3108
原创 C语言基础:预处理指令的使用
通过#define可以定义一个宏,预处理阶段的时候,如果在代码中遇到一个宏,就会将其替换成宏所对应的内容。函数输入半径,返回圆的面积。其中用到了圆周率,直接将数值3.14写道代码中。这样的数字被称为“魔法数字”。正确的做法是将其定义为一个宏,然后在函数中使用这个宏。3.14这样做有两个好处,首先,其他人阅读代码的时候,对于数字很难理解其中的含义,但是宏定义是可以从字面上知道意义的,可以增加代码的可读性。
2023-07-23 09:34:40
640
1
原创 仿真与测试:通过Signal Builder模块生成输入信号
本文研究通过Signal Builder模块生成输入信号的方法,这种方式比较适合简单的子系统测试,或者一些实际情况下不容易达到的边界条件输入的测试。目录。
2023-02-12 21:06:51
7364
1
原创 建模规范:命名规范
本文研究MAAB建模规范中的命名规范,同时结合工作实际谈谈博主的理解。本文参考的MAAB规范版本是Version 5.0。文章目录1 命名规范2 命名规范内容2.1 基本规则2.2 企业命名规范1 命名规范命名规范是第一个在MAAB中定义的规范,其中规定了文件夹,模型,变量,接口等应该如何命名。2 命名规范内容2.1 基本规则1)在命名规范中,可以对模块、信号等命名使用的字符只能是以下几种:英文字母大小写:a-z, A-Z阿拉伯数字:0-9下划线:_2)除此之外,都不可以用于命名。例
2022-07-04 19:55:40
4931
原创 Simulink算法建模: 状态机基础
文章目录1 Simulink中的Chart模块2 状态机建模3 模型仿真4 代码生成5 总结本文研究简单的状态机建模及其生成的代码。1 Simulink中的Chart模块Chart模块用于描述状态之间的跳转关系,在汽车软件开发过程中经常用到。在状态机中需要定义状态、状态间跳转条件、输入输出及本地变量等。本文会用一个简单的例子来研究状态机建模,并通过生成的代码了解其中的原理。2 状态机建模假如现在有一个需求,车速高于某个值的时候,输出变量为运动状态,低于该值的时候为静止状态。针对该问题第一反应是用
2022-05-28 13:19:28
16475
6
原创 Simulink建模基础: 查表模块及其代码
本文描述查表模块的建模并研究生成的代码。文章目录1 Simulink中的查表模块2 查表模块示例模型2.1 设置Table and Breakpoints2.2 设置Algorithm2.3 设置DataType2.4 简单仿真3 代码生成4 总结1 Simulink中的查表模块查表模块中定义了断点和查表值(都是数组)的对应关系,然后通过输入数值在断点中的位置,“查出”对应在查表值中的数值,然后输出。查表模块是汽车软件开发中的一种常用的模块,因为在实际工作中,很多物理量之间的对应关系是难以用数学公式
2022-05-25 15:32:02
15176
10
原创 Simulink相关配置:生成C++类
博主最近在工作中用Simulink生成C++类的代码,因此将一些感悟记录下来。本文通过一个简单的例子研究Simulink生成C++类的代码以及一些相关配置。文章目录1 创建模型2 C++类生成配置及代码生成3 配置类名、函数名、IO传参4 总结1 创建模型首先打开Simulink,随意创建一个简单的模型,如下图。这里建立的控制逻辑比较简单,只是把输入信号放大两倍再输出,在C代码中对应的就是简单的乘以2。2 C++类生成配置及代码生成关于Embedded Coder相关配置本文不再赘述,可以参考
2022-04-08 20:57:14
7615
3
Autosar支持包.rar
2020-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人