使用Matlab 创建C 语言描述的神经网络

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用Matlab创建、训练一个简单的神经网络(使用神经网络来模拟Sin函数),并且将训练好的神经网络转移到AVR微处理器当中。

假设现实中有一个时不变系统?, 现在需要在内存当中模拟这个?系统。问题是这个?系统有一个输入X和一个输出Y并且我们不知道X、Y的关系(可能很很很很很很复杂)。方法是给予系统不同的输入X,观察输出Y。然后根据X,Y训练一个神经网络来代替这个?系统。

首先我们“测量”在不同输入下系统的输出:

x=0:0.1:2*pi;

y=sin(x)+x;

这个就是我们“测量”到的系统的输入和输出关系。有了关系,就好办事。接着启动nftool工具。

注意输入和目标分别为X和Y。

设定隐层神经元的数量,默认为20个,可以修改一下(我把它改为7个)

这里就可以训练网络了。

训练完成后可以查看这个网路到底及格啵。

如果网路合格就导出吧。

接着使用gensim(net, 0.1)命令将网络放在simulink当中,并且将测试数据和示波器替换成输入端口和输出端口。

然后设定代码生成的一些选项:

采样间隔

完成后Ctrl+B构建系统,不过……

居然出错了!经Google大神指点:

使用Matlab创建C语言描述的神经网络2011年1月15日星期六解决方法如下:

单击此处

找到这里:

在上右键选择断开与库的关联。

发现出问题的是这个函数:

删除它,然后将前面的木块修改为

并修复断开的“导线”

改完后Ctrl+B就可以正常生成代码了。

接着来验证下神经网络的正确性。

编译:

输出:

观察:

OK,最后修改一下看看AVR的资源占用情况。

相关文档
最新文档