📄 main.cpp
字号:
#include <math.h>
#include "RBFfunction.h"
#include "RBF.h"
#include "system.h"
#include "matplot.h"
static double ydArray[OPS];//参考输出序列
static double yArray[OPS];//非线性系统输出序列
static double uArray[OPS];//控制输入序列
void main()
{
double referArray[DIMY][DIMREFER];//权重系数矩阵
double centerArray[6] = {0, 0.1, 0.3, 0.5, 0.9, 1.4};//基函数中心序列
double r[2];
double u[2];
double y[2];
double yd[2];
double yi[2];
double neTemp[DIMY];
double xL[DIMX];
r[0] = Input(0);
y[0] = 0;
yd[0] = 0;
yi[0] = 0;
RandomRefer( referArray , 10);//初始化系数矩阵
for( int step = 0; step < OPS; step++ )
{
for( int i =0; i < 1 / STEP; i++ )
{
xL[0] = y[0];
neNetOutputk1( xL, neTemp, referArray, centerArray);
u[0] = -neTemp[0] + ( 1-STEP) * y[0] + r[0]*STEP;//非线性的输入
y[1] = systemOutputk1( u[0], y[0] );//非线性系统的输出
yd[1] = ExpOutputk1( r[0], yd[0]);//参考系统输出
xL[0] = y[0];
neTemp[0] = y[1] - u[0];
RBFlearnproc( xL, neTemp, referArray, centerArray );//RBF网络学习
neNetOutputk1( xL, neTemp, referArray, centerArray);
yi[0] = neTemp[0] + u[0];//辨识网络输出
r[1] = Input( (int)( step/STEP + i ) );//输入信号
r[0] = r[1];
y[0] = y[1];
yd[0]= yd[1];
}
ydArray[step]= yd[0];
yArray[step]= y[0];
uArray[step]= u[0];
}
matDraw( uArray, yArray, ydArray );//由matlab画出各信号序列
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -