STM32/STM8技术william hill官网
直播中

打马过草原

9年用户 884经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

如何在STM32中实现模糊自整定PID算法?

最近在做模糊PID的相关研究,发现在matlab上似乎比较方便,但是怎么在STM32单片机里面写成C语言的形式呢?
大家有没有做过相关的研究呢?
下面是MATLAB做的fuzzy参数
23.jpg
21.jpg
22.jpg



回帖(11)

打马过草原

2015-5-22 14:10:55
沙发自己的先有坛友一起做的吗?
举报

梦醒没你

2015-5-22 14:19:44
实际模糊控制的算法计算过程是离线完成的,你只要在matlab里面生成模糊控制表,在单片机中只要查表操作就可以完成模糊PID控制了。
举报

打马过草原

2015-5-22 14:36:34
引用: 梦醒没你 发表于 2015-5-22 14:19
实际模糊控制的算法计算过程是离线完成的,你只要在matlab里面生成模糊控制表,在单片机中只要查表操作就可以完成模糊PID控制了。

有些问题没有解决,想要问一下前辈:
查表的问题,比如我E 是 NB ; EC是 NB ,查表得到Kp是PB ,这个PB接着是不是进行解模糊(这里用重心法)呢? 另一方面,我查表后输出的语言变量既然都是可以通过解模糊把实际值算出来(比如刚刚的Kp得到PB,PB用重心法算到一个值0.2),那么我 KP KI KD 三张表里面的 语言变量 NB NM NS ZO PS PM PB 都可以用一个值来代替了,在单片机就是建个二维数组。可以这么想吗?
举报

感谢相遇

2015-5-22 14:43:25
推荐一本书:
本书以基于模型的设计为主线,讲述了M代码和Embedded MATLAB代码的快速编写与调试、浮点Simulink/Stateflow模型的建立、调试与验证以及用户驱动模块的创建;详细介绍了基于模型设计的全过程,主要包括:需求的验证与跟踪、模型的系统测试与设计验证、浮点到定点模型的转换、模型嵌入式C代码的自动生成以及软件/处理器/硬件在环测试。整个过程满足DO~178B航空电子规范,可显著提高工作效率、降低开发成本,并且增加了代码的安全性与鲁棒性,避免了产品开发的潜在市场风险。
里面的用matlab建模之后,可以自动生成C代码部分可以参考一下。
举报

谁来救我

2015-6-1 21:50:58
引用: 感谢相遇 发表于 2015-5-22 14:43
推荐一本书:
本书以基于模型的设计为主线,讲述了M代码和Embedded MATLAB代码的快速编写与调试、浮点Simulink/Stateflow模型的建立、调试与验证以及用户驱动模块的创建;详细介绍了基于模型设计的全过程,主要包括:需求的验证与跟踪、模型的系统测试与设计验证、浮点到定点模型的转换、模型嵌入式C代码的自动生成以及软件 ...

请问是什么书呢
举报

孙文侠

2015-6-5 16:37:58
引用: 谁来救我 发表于 2015-6-1 21:50
请问是什么书呢

应该是这本《基于模型的设计及其嵌入式实现 》
举报

LQH9249

2015-11-30 20:48:25
谢谢分享谢谢分享谢谢分享
       谢谢分享谢谢分享                       谢谢分享
       谢谢分享谢谢分享                谢谢分享         
                  谢谢分享              谢谢分享谢谢分享谢谢分享
             谢谢分享              谢谢分享        谢                谢
             谢谢分享              谢谢分享        谢                谢
             谢谢分享              谢谢分享        分                分
             谢谢分享              谢谢分享        享                享
             谢谢分享              谢谢分享        谢                谢
             谢谢分享              谢谢分享        谢                谢
谢        谢谢分享               谢谢分享       分                分
谢谢     谢谢分享              谢谢分享        享                享
谢谢分 谢谢分享              谢谢分享        谢                谢
谢谢分 谢谢分享                               谢       谢
谢谢分谢谢分享                         谢                 谢
         谢谢谢谢                    分                               分
             谢谢                   享                                     享
举报

籽籽2016

2016-7-15 10:20:40
大神解决了吗

举报

籽籽2016

2016-7-15 10:21:33
引用: 打马过草原 发表于 2015-5-22 14:36
有些问题没有解决,想要问一下前辈:
查表的问题,比如我E 是 NB ; EC是 NB ,查表得到Kp是PB ,这个PB接着是不是进行解模糊(这里用重心法)呢? 另一方面,我查表后输出的语言变量既然都是可以通过解模糊把实际值算出来(比如刚刚的Kp得到PB,PB用重心法算到一个值0.2),那么我 KP KI KD 三张表里面的 语言变量 NB NM  ...

大神解决了没有
举报

籽籽2016

2016-7-15 10:21:47
引用: 打马过草原 发表于 2015-5-22 14:36
有些问题没有解决,想要问一下前辈:
查表的问题,比如我E 是 NB ; EC是 NB ,查表得到Kp是PB ,这个PB接着是不是进行解模糊(这里用重心法)呢? 另一方面,我查表后输出的语言变量既然都是可以通过解模糊把实际值算出来(比如刚刚的Kp得到PB,PB用重心法算到一个值0.2),那么我 KP KI KD 三张表里面的 语言变量 NB NM  ...

大神解决了没有???
举报

Chenglin

2017-3-27 23:57:36
楼主模糊PID仿真做的挺好的,值得借鉴
举报

更多回帖

发帖
×
20
完善资料,
赚取积分