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

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

使用Matlab创建C语言描述的神经网络
使用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大神指点:
解决方法如下:
单击此处
找到这里:
在上右键选择断开与库的关联。

发现出问题的是这个函数:
删除它,然后将前面的木块修改为
并修复断开的“导线”
改完后Ctrl+B就可以正常生成代码了。

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

编译:
输出:
观察:
OK,最后修改一下看看AVR的资源占用情况。

相关文档
最新文档