搜索
bottom↓
回复: 37

【基于模型设计:STM32CubeMx+STM32小车】

  [复制链接]

出0入0汤圆

发表于 2018-12-6 16:55:34 | 显示全部楼层 |阅读模式
结合汽车功能,简单的将汽车中的蠕行、巡航、加减速功能在小车中实现;
需求输入如下:
        Vehicle Lever Function                Component Lever        Control Lever       
1        FID_Still&Stop                StandBy        No Vol       
2        FID_Creep                Creep_Spd        Inc Vol       
3        FID_Accleration                Acc_Spd        Intense Inc  Vol       
4        FID_Deccleration                Dec_Spd        Dec Vol       
5        FID_Break                Break_Spd        Intense Dec Vol       
6        FID_Constand Speed                Const_Spd        Const Vol       
小车拓扑:
采用STM32CubeMx建立底层接口软件:
1.RCC 外部时钟;
2.TIM1、TIM2的通道1输出PWM;
3.PA6 输入进行车速监测;
4.PB0、PB1按键输入;
采用Matlab/Simulink实现应用层控制:
用一个按键实现小车状态从Stop->Creep->Acc->Dec->Break功能:
通过按键触发不同PWM占空比实现以上功能;
Simulink代码生成直接调用MDK;
业余时间玩一下,后续更新

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出100入85汤圆

发表于 2018-12-6 17:46:17 来自手机 | 显示全部楼层
不错,您继续

出0入0汤圆

发表于 2018-12-6 17:47:50 | 显示全部楼层
还有这种操作?

出0入90汤圆

发表于 2018-12-6 17:52:03 | 显示全部楼层
挺好的,ST CUBEMX有这种建模的功能吗?要是能做那还是挺好的,可以做架构了

出0入0汤圆

发表于 2018-12-6 18:37:23 | 显示全部楼层
占位置等更新

出0入0汤圆

发表于 2018-12-6 19:14:09 | 显示全部楼层
关注 ,第一次见这种设计

出0入8汤圆

发表于 2018-12-6 19:27:25 | 显示全部楼层
后面的是自己手工画的吧

出0入22汤圆

发表于 2018-12-6 22:38:20 来自手机 | 显示全部楼层
关注下,,,

出0入0汤圆

发表于 2018-12-7 07:32:17 来自手机 | 显示全部楼层
这操作很666,期待下文

出0入0汤圆

发表于 2018-12-10 09:50:42 | 显示全部楼层
本帖最后由 four_zhg 于 2018-12-10 09:52 编辑

不错,用matlab中的simulink建模这是以后的趋势啊,期街坊楼主的后续

出0入0汤圆

发表于 2018-12-10 10:06:09 | 显示全部楼层
楼主能开个贴教大家怎们用simulink建模开发mcu吗?

出0入0汤圆

发表于 2018-12-10 14:16:18 | 显示全部楼层
SIMULINK 一般是汽车航空等行业专用,强大的难以想象。

出0入0汤圆

发表于 2018-12-10 16:31:56 | 显示全部楼层
也想了解simulink建模开发mcu,是所有的Mcu都支持吗?

出0入0汤圆

发表于 2018-12-10 16:42:15 | 显示全部楼层
哇,一直知道simulink是拖图标来搞定的,但没想到还有着这种操作,膜拜楼主~

出0入0汤圆

发表于 2018-12-10 17:42:56 | 显示全部楼层
这种方式应该是很好的趋势,mark一下。

出0入0汤圆

发表于 2018-12-10 18:19:25 | 显示全部楼层
还可以这样弄,得学习学习

出160入0汤圆

发表于 2018-12-10 18:25:59 | 显示全部楼层
等楼主更新

出0入0汤圆

发表于 2018-12-10 18:43:14 | 显示全部楼层
等楼主更新

出0入0汤圆

 楼主| 发表于 2018-12-12 23:27:32 | 显示全部楼层
2018.12.12 更新 小车应用层软件结构、速度采集功能:
1、ASW应用层软件架构如下:
输入层:STM32_Inputs
该模块放置的是Matlab封装好的STM32 输入外设,像Read IO、Timer的捕获等;
算法层:ASW Function
该模块实现对外部信号的处理、小车功能控制、外部输出信号处理;
输出层:STM32_Outputs
该模块放置的是Matlab封装好的STM32的外设,像Write IO、Timer PWM等;
2、速度采集功能
虽然STM32外设支持脉冲的捕获,但并没有用,而是尽可能通过simulink搭建数学模块实现脉冲计数,从而实现车速监测,同事可实现
车辆的行驶里程
需求及功能实现如下:
需求:
实现小车速度采集后,可以基于模型设计的小车玩的事情就很多了,根据汽车功能可以知道,车辆的定速巡航、ACC自适应巡航、车辆蠕行、以及整车车速限制功能,都需要速度作为输入条件;
功能实现:
在网上买的小车半径r是3.3cm,赠送的码盘间隔Tip是20个,通过STM32Cube设置某一IO为Read,而simulink只是单纯的读取该IO的跳变信号即可,对读取到的触发信号进行计数,计数实现
是通过simulink搭建离散积分器实现;通过控制小车的PWM信号作为积分器的Reset条件,这么做可以对停车后的脉冲清零;采集到的脉冲 n,那么可认为当前车速v=n*(2*Pi*r)/Tip/t,这里的t是
以小车驱动为基准的时间;目前只是搭建了simulink功能,经过MIL测试是没问题的,还没在小车上验证,验证好后会根据车速信号做定速巡航等功能,后续再更新!

谢谢网友们支持!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2018-12-12 23:29:28 | 显示全部楼层
huangdog 发表于 2018-12-6 19:27
后面的是自己手工画的吧

都是自己画的哦

出0入0汤圆

 楼主| 发表于 2018-12-12 23:30:19 | 显示全部楼层

matlab支持的,基于模型设计在汽车行业用的多哦

出0入0汤圆

 楼主| 发表于 2018-12-12 23:32:38 | 显示全部楼层
lyz3432 发表于 2018-12-10 10:06
楼主能开个贴教大家怎们用simulink建模开发mcu吗?

这个不敢当啊,我是看STM32有这个simulink包,也是在网上看大家怎么弄的

出0入0汤圆

 楼主| 发表于 2018-12-12 23:36:32 | 显示全部楼层
pinocchio 发表于 2018-12-10 16:31
也想了解simulink建模开发mcu,是所有的Mcu都支持吗?

simulink代码生成支持所有C的控制器,而simulink生成的代码需要和MCU的底层集成,这部分工作比较难,现在STM32 CubeMX和STM32 MAT的出现省去了集成这部分工作,对只关心算法层的开发人员来说省去了对单片机外设的操作了

出0入0汤圆

 楼主| 发表于 2018-12-12 23:38:18 | 显示全部楼层
honami520 发表于 2018-12-6 17:52
挺好的,ST CUBEMX有这种建模的功能吗?要是能做那还是挺好的,可以做架构了 ...

STM32CubeMx没有建模功能哦,它只是配置外设,建模是通过simulink弄得

出0入0汤圆

发表于 2018-12-13 08:33:02 | 显示全部楼层
我曾经在某学校见过,simulink配合一个MATLAB专用硬件,直接控制硬件电路完成并网逆变器,也是全用模型完成。没想到时隔多年又见到这种神奇操作了!

出0入0汤圆

发表于 2018-12-13 13:31:35 | 显示全部楼层
基于Real Time Workshop 和Embedded Encoder 的simulink模型自动代码生成,然后和测试通过的底层代码集成,不限MCU之类,该方式已经应用多年。
典型案例是国内某客车厂的柴油机冷却风扇控制器,出货量有几十万。
这种底层和应用层一起的方式,其实是一种退化。至少10年以前TI 的28F03x就提供了这种方式用于开发无刷电机控制器,但是能用好的人极少,以致没有推广开。
把两者弄在一起,不利于测试和分工,加大了对开发人员的需求。
恒润推行了N年的MBD(基于模型开发)方法都不太流行,LZ可以试试,成功了,功莫大矣!

出0入0汤圆

发表于 2018-12-13 16:22:15 | 显示全部楼层

这种方式应该是很好的趋势

出0入0汤圆

发表于 2018-12-14 14:25:58 | 显示全部楼层
这种方式应该是很好的趋势 应该是必然的方向

出0入0汤圆

发表于 2018-12-14 14:26:55 | 显示全部楼层
楼主给个搭建的教程,相互学习

出0入4汤圆

发表于 2019-2-18 17:31:40 | 显示全部楼层
好厉害啊,好多客户和同行都在用这种方式开发,但是我还不会,楼主整理个教程让大家学习学习呀

出0入0汤圆

发表于 2019-2-18 18:01:05 | 显示全部楼层
牛逼了 期待后文

出0入0汤圆

发表于 2019-2-18 19:11:27 | 显示全部楼层
终于在电子论坛看到了simulink开发的文章了,类似的技术大概在十年以前在日本的汽车开发中大量应用了,我现在在的公司就是使用matlsb工具进行柴油发动机的控制软件的逻辑业务的开发。

出0入0汤圆

发表于 2019-2-18 20:41:26 来自手机 | 显示全部楼层
散吧散吧 发表于 2019-2-18 19:11
终于在电子论坛看到了simulink开发的文章了,类似的技术大概在十年以前在日本的汽车开发中大量应用了,我现 ...

博士那个v型开发软件

出0入0汤圆

发表于 2019-2-18 22:14:05 来自手机 | 显示全部楼层
收藏一下

出0入0汤圆

发表于 2019-2-19 06:38:54 | 显示全部楼层
mark, 学习了.

出0入0汤圆

发表于 2019-2-19 09:52:47 | 显示全部楼层
终于看到用类似方法的实现思路了

出0入0汤圆

发表于 2019-2-19 10:23:44 | 显示全部楼层
说下我的感受吧,我有一块STM32F302的开发板做电机控制,用Simulink撘的模型,配合STM32-mat及MDK,用这个生产的代码,中间有好多地方会有问题,比如模型定义的变量与STM32-Cubx生成的底层的代码不一致。函数结构不合理,比如C文件的函数,头文件中没有声明,导致外部的其他C文件又不能调用,STM32-CuBx自己的生产的底层代码也有大小写不符合的错误(应该是软件包的问题);总之做问题挺多的,各个软件都有小Bug,合在一起生产的代码,也需要手动去更改,才能编译通过。

出0入4汤圆

发表于 2019-2-19 11:38:28 | 显示全部楼层
基础有点弱,但真心想学习matlab中的simulink建模,太有用了也是以后的趋势
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 08:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表