matlab运行没有图片,simulink模型运行时没报错,但scope没有图像,什么原因?
BP网络的代码:
function [sys,x0,str,ts]=BPwangluo(t,x,u,flag)
switch flag
case 0
[sys,x0,str,ts]=mdlInitializeSizes;
case 2
sys=mdlUpdates(x,u);
case 3
sys=mdlOutputs(t,x,u);
case {1,4,9}
sys=[];
otherwise
error(['unhandled flag=',num2str(flag)]);%异常处理
end
function[sys,x0,str,ts]=mdlInitializeSizes
sizes=simsizes;%用于设置模块参数的结构体用simsizes来生成
sizes.NumContStates=0;%模块连续状态变量的个数
sizes.NumDiscStates=6;%模块离散状态变量的个数
sizes.NumOutputs=3;%模块输出变量的个数
sizes.NumInputs=14;%模块输入变量的个数
sizes.DirFeedthrough=1;%模块是否存在直接贯通,1表示存在直接贯通,若为0,则mdlOutputs函数里不能有u
sizes.NumSampleTimes=1;%模块的采样时间个数,至少是一个
sys=simsizes(sizes);%设置完后赋给sys输出
x0=zeros(6,1);%系统状态变量设置
str=[];
ts=[1 0];%采样周期设为0表示是连续系统,
function sys=mdlUpdates(x,u)
x1=[u(5);x(2)+u(5);(u(5)-u(6))];%3个状态量(电机的偏差、偏差和以及偏差变化量),u(5)是偏差,u(4)是上一次的偏差,x(2)是之前的偏差和
x2=[u(7);x(5)+u(7);(u(7)-u(8))];%3个状态量(电机的偏差、偏差和以及偏差变化量),u(7)是偏差,u(8)是上一次的偏差,x(5)则是之前的偏差和
sys=[x1(1);x1(2);x1(3);x2(1);x2(2);x2(3)];
function sys=mdlOutputs(t,x,u)
xite=0.2;
alfa=0.05;
IN=6;H=8;OUT=3;
wi=rand(8,6);%产生一个的随机8*6数矩阵,随机数在(0,1)区间
wi_1=wi;wi_2=wi;wi_3=wi;wi_4=wi;wi_5=wi;wi_6=wi;
wo=rand(3,8);%产生一个的随机3*8数矩阵,随机数在(0,1)区间
wo_1=wo;wo_2=wo;wo_3=wo;wo_4=wo;wo_5=wo;wo_6=wo;wo_7=wo;wo_8=wo;
Oh=zeros(1,8);%产生一个1*8的零矩阵(行矩阵)
I=Oh;
xi=[u(9),u(5),u(3),u(10),u(7),u(11)];%神经网络的6个输入,电机2的期望值、误差以及实际值,电机1的期望值、误差以及实际值
emfa1=[x1(1);x1(2);x1(3)];emfa2=[x2(1);x2(2);x2(3)]%6个状态变量(两个电机的偏差、偏差和、偏差变化量)(两个3*1矩阵,列向量)
I=xi*wi';%隐层的输入(1*8的矩阵)
for j=1:1:8
Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));%隐层的输出值(1*8矩阵)行矩阵
end
K1=Oh*wo';%输出层的输入(1*3矩阵)
for i=1:1:3
K(i)=exp(K1(i))/(exp(K1(i))+exp(-K1(i)));%得到输出层的输出:惩罚因子、学习率(1*3矩阵,行向量)
end
%%以下是权值调整
%隐含层至输出层的权值调整
dyu1=sign((u(3)-u(4))/(u(1)-u(2)+0.0001));
dyu2=sign((u(11)-u(12))/(u(13)-u(14)+0.0001))
for j=1:1:3
dK(j)=2/(exp(K1(j))+exp(-K1(j)))^2; %输出层的输出的一阶导
end
for i=1:1:3
delta31(i)=u(5)*dyu1*emfa1(i)*dK(i); %输出层的delta1
delta32(i)=u(7)*dyu2*emfa2(i)*dK(i); %输出层的delta2
delta3(i)= (delta31(i)+delta32(i))/2; %输出层的delta的均值,3*1矩阵,列向量
end
for j=1:1:3
for i=1:1:8
d_wo=xite*delta3(j)*Oh(i)+alfa*(wo_1-wo_2);
end
end
wo=wo_1+d_wo; %3*8矩阵
%以下是输入层至隐含层的权值调整
for i=1:1:8
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;%(1*8矩阵)
end
segma=delta3'*wo; %(1*8矩阵,行向量)
delta2 = dO.*segma; %1*8矩阵
d_wi = xite*delta2'*xi+alfa*(wi_1-wi_2);
wi=wi_1+d_wi;
wo_6=wo_5;
wo_5=wo_4;
wo_4=wo_3;
wo_3=wo_2;
wo_2=wo_1;
wo_1=wo; %储存输出层本次调整后的权值
wi_6=wi_5;
wi_5=wi_4;
wi_4=wi_3;
wi_3=wi_2;
wi_2=wi_1;
wi_1=wi; %储存隐层本次调整后的权值
sys=[K(1),K(2),K(3)];
matlab运行没有图片,simulink模型运行时没报错,但scope没有图像,什么原因?相关推荐
- Django启动服务器时,报错mysql的2059错误的原因。
当启动django自带的服务器时,报错2059: > _mysql_exceptions.OperationalError: (2059, ) > django.db.utils.Oper ...
- 【Python】import pandas时,报错 pandas Missing required dependencies ['numpy'] 原因分析
结论:在需要 import pandas 时,同级目录下不要有 unittest.py同名文件,否则,会与pandas自带的unittest冲突,导致 import pandas 失败. 错误使用场景 ...
- siesta在Linux运行,请教,为什么siesta编译中没报错,然而运行的时候跑不起来呢...
杈撳嚭鐨勬枃浠舵槸杩欐牱鐨� DM.Energy.Tolerance 1.0d-5 eV DM.Require.Harris.Convergence .true. DM.Harris.Toleranc ...
- siesta在Linux运行,请教,为什么siesta编译中没报错,然而运行的时候跑不起来呢 - 第一原理 - 小木虫 - 学术 科研 互动社区...
杈撳嚭鐨勬枃浠舵槸杩欐牱鐨� DM.Energy.Tolerance 1.0d-5 eV DM.Require.Harris.Convergence .true. DM.Harris.Toleranc ...
- dparsf是什么_老师,我用DPARSF做Slice Timeing时老报错,请问您是什么原因呢?
错误报告如下: ------------------------------------------------------------------------ Running job #1 ---- ...
- 安mysql一直转圈_在访问数据库时没报错一直转圈,mysql版本不同的连接方式
如url访问获取数据库信息,一直转圈.一般为数据库无法连接.需要检查数据库连接信息 mysql5.0以下的连接方式: db.properties jdbc.driver=com.mysql.jdbc. ...
- Chrome插件请求数据时 请求报错(blocked:mixed-content)
Chrome插件请求数据时请求报错(blocked:mixed-content) 问题原因 解决方案 方案1:配置https 方案1:使用background.js请求http 问题原因 问题原因是我 ...
- python 运行画图时,报错:“RuntimeError: Invalid DISPLAY variable“
python 运行画图时,报错:"RuntimeError: Invalid DISPLAY variable" 错误描述 错误原因 matplotlib的默认backend是Tk ...
- 使用uniapp做微信小程序,在小程序编辑器运行时编译报错:appid不合法,导致启用不了。
使用uniapp做微信小程序,在小程序编辑器运行时编译报错:appid不合法,导致启用不了.这个好坑爹啊,我这么淑女的小可爱都想骂人了,我好累,写个博客发泄发泄吧! 复现我的问题:神操作--代码跟别人 ...
- 运行python脚本时,报错InsecurePlatformWarning: A true SSLContext object is not available,解决方法
运行python脚本时,报错InsecurePlatformWarning: A true SSLContext object is not available,解决方法 参考文章: (1)运行pyt ...
最新文章
- csgo 人数文件_学生机简单开一个CSGO的社区服务器
- ffmpeg支持x264插件
- 注册页面所涉及的知识
- python 16进制加法_在python中追加2个十六进制值
- 就知道调bert,都不知道加个对比学习吗?
- leetcode1487. 保证文件名唯一
- oracle dg 日志手动应用,做了DG之后,日志没有被应用
- bootstrap 学习 ---css样式学习
- linux svn 客户端安装
- 数字孪生-输电铁塔及线路的结冰、融化
- 如何管理项目成本:工时管理
- b站取消视频自动播放、自动续播(电脑端)
- 如何在html修改图片大小,HTML – 如何在CSS中动态调整图像大小?
- 笔记本电脑下面的任务栏一直转圈圈
- 全站替换https攻略
- 「迅捷」校园网多设备认证
- Hamming Embedding 汉明嵌入
- oracle date类型字段,Oracle Date类型
- some以及every的区别
- 365打卡小程序搭建教程
热门文章
- 解决requests.text乱码问题content.decode()
- python机器学习-糖尿病数据挖掘
- php 中echo命令详解,DOS中的ECHO命令详解
- SLAM--搭建自己的视觉里程计VO-RGBD相机(一)
- hbase 查询某列_hbase shell使用STARTROW、ENDROW、FILTER查出指定的列
- Pandas:金融数据下载和分析
- 阿里云云计算 10 ECS的使用
- 极客大学产品经理训练营 产品思维和产品意识 解决方案的设计与积累 作业3
- 翻译:Swift 5.1中的Protocol面向协议的编程教程:从入门到精通
- Java 最长递增子序列_最长递增子序列问题 Java