历史上的今天
今天是:2024年10月20日(星期日)
2018年10月20日 | 用STM32F407玩控制—神经网络PID控制
2018-10-20 来源:eefocus
在玩51单片机时就想玩神经网络PID控制,但51单片机的数据存储器地址空间很小,就普通的应用,要增加一个变量尚且“抖抖哗哗”,更遑论玩神经网络PID控制,那可需要非常多的变量,而玩STM32F407就不存在这方面问题了。转入正题,大部分书上的神经网络PID控制,讲的是BP神经网络PID控制,举的例子都是非线性系统,通常仿真效果都不错,但BP神经网络PID控制有一个限制,就是kp、ki、kd小于1,这就限制了它的应用范围,如果kp、ki、kd>1,那就得改进,而刘金琨的《先进PID控制 MATLAB仿真》一书中讲了一种RBF神经网络PID控制,它突破了前者的限制,其原理如图1所示,图中RBF NN1神经网络根据偏差e、Jacobian等信息计算Δkp、Δki、Δkd,RBF NN2神经网络用于系统辨识,然后算出Jacobian信息并传递给RBF NN1,PID控制器的实际PID参数为:kp=kp0+Δkp、ki=ki0+Δki、kd=kd0+Δkd,剩下的过程就是普通PID控制了,C语言中实现径向基神经网络(RBF NN)并不难,只需照抄计算公式就行,如果说有什么注意要点的话,那就是要细心、细心、再细心,我们在STM32F407中做的神经网络PID控制,其效果如图2所示,从图中可以看出,这是一个大纯滞后系统,系统中也加入有白噪声,我们可以看出控制效果还是相当好,此外,一般说来,神经网络PID控制对初始PID值的选取不是很敏感,当然也不能偏的太多。
这个专题就到此结束了,本来还想玩实时PID参数优化、预测控制等APC内容,但由于:1玩电脑头颈很累,2也兴趣转移,所以就不想再玩下去了,以后再说了。


史海拾趣
|
开贴整理QtEmbedded/Qtopia FAQ --- 不可不看的精华都在这里哦~ Qt-X11/QtEmbedded/Qtopia及其他常见包的关系? build Qtopia时经常能看到以下的包: qt-x11-2.3.2 qt-x11-3.3.x qte-2.3.x qtopia-2.x tmake-1.3 qmake, uic, moc ... 其中Qtopia编译依赖Qte; qt-x11-2.3只与编译一些tool有关, 如uic,mo ...… 查看全部问答> |
|
实例分为两部分,第1部分连续输入数据处理的电路设计是我们的课程设计,有详细的设计过程(分析过程,数据流图,以及状态机,源代码仿真和综合电路图),另一个是老师给的例题,有100多个例子吧,不过只有源代码和题目。希望能给大家做一个参考!!… 查看全部问答> |
|
我先说一下我的需求,就是要在播放影片的画面上面显示影片的码率之类的. 假设现在影片的码率是700kbps,我要在影片的某个位置显示出来,比如说左上角,这个怎么做出来呢? 或者给我指条明路. 谢谢 PS: 现在TCPMP能在我的机器上面跑了,也能正常解码.… 查看全部问答> |
|
一直从事asp.net开发,对wince开发一无所知。 目前有一个gps设备,需要开发征对此设备的应用程序开发。该设备是wince 5.0操作系统。 我使用的是vs 2008做为开发工具(C#)。 我在vs2008中新建项目-智能设备 右侧仅有智能设备选项,请问我还需要安 ...… 查看全部问答> |
|
现在的问题是,程序无法检测到其中的位数,并做出相应的处理 表象就是:在串口调试助手中输入B****E,无任何返回值 程序如下: #include //工作频率7.3728Mhz #include unsigned ch ...… 查看全部问答> |
|
我用89s52串口输出一个波形,但是一旦接至另外一个模拟电路部分,该波形就变成尖峰形状了 我的想法是用35M左右的载波调制该串口波形,然后经功率放大等电路发送出去。但是现在串口波形一接至高频部分电路,就不再是原来 ...… 查看全部问答> |
|
通常我们加载wince系统,总是编译好eboot然后下载到flash里面,根据菜单提示下载NK。而实际的产品中,可以不用BOOTLOADER,那它是怎么实现系统加载的? 还有个问题,就是OAL的代码也可以完成所有的bootloader的功能,为什么一定要写个bootloader? ...… 查看全部问答> |
|
我大四毕业设计做基于ARM9的嵌入式的linux开发.想请大家帮我选题. 我本不是这个专业的,现在毕业设计要做这个,所以我什么都不懂.现在急着做毕业设计,希望大家给个建议,帮忙选个题目. 简单一些容易做的,而且够毕业设计的水平. 谢谢谢谢… 查看全部问答> |




