找回密码
 注册
关于网站域名变更的通知
查看: 454|回复: 3
打印 上一主题 下一主题

向量机拟合电机逆系统的解耦控制模型

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-1-28 19:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
最近本人搭了一个支持向量机拟合电机逆系统的解耦控制模型,下图的逆系统模型用的是simulink中的function模块,里面调用了最小二乘支持向量机工具箱simlssvm,数据都是训练好的,如图
当我把模块单独拿出来的时候,该逆系统正常运行不报错,但是当我加到原系统中时,出现错误:The extrinsic function 'simlssvm' is not available for standalone code generation. It must be eliminated for stand-alone code to be generated. It could not be eliminated because its outputs appear to influence the calling function.  Fix this error by not using 'simlssvm' or by ensuring that its outputs are unused.
# x3 o* |9 b9 r& T. e

" c4 b  X9 g& F! `0 kfunction程序如下,XYalpha的数组太长了,我就用[]代替了,个人感觉程序本身是没有问题的,因为单独拿出来能用,跪求各位大神指教!!!!:( [4 H4 |3 H$ [
% GA_LSSVM输入输出模块
* {" \, x) A  A; v- j$ Zfunction [imd,imq,ibd,ibq] = GA_LSSVM(omega1,displace_X2,displace_Y2)/ @  M" j8 ~2 U6 l4 A
% 读取训练数据及训练结果
  v0 ~. l, }8 u  s- m# \coder.extrinsic('simlssvm');, t: {. i3 I" G3 d" Q
imd = zeros(1,1);$ e4 |& i& `: Y- x% k
imq = zeros(1,1);
, [9 Y8 o6 Q8 `8 l0 Nibd = zeros(1,1);
3 X# W- L4 a( y( M/ m0 wibq = zeros(1,1);
6 J6 n6 H( F  _) P% Aalpha1 = [];0 l3 T/ T; ~. k- m7 r
alpha2 = [];3 l; n$ I6 d0 x3 b* j
alpha3 = [];0 V( N9 v9 Y7 g- K0 c: e( |" f
alpha4 = [];
, L, Z4 F, F/ @( Cb1 = [0.749494965147066];
! m7 }4 r8 a! B" o& a0 y! T9 Q2 y/ Nb2 = [0.571922877647378];
1 L6 ]3 X1 Y2 L' W8 }8 Y" jb3 = [-0.0970456665481540];! n# t4 i8 M# W: f9 a) ^
b4 = [0.782216210156907];. \, L2 C/ o- ~$ z
gam1 = [468.750000000000];: X3 O, F# u% D9 C6 p# y$ ?  o
gam2 = [468.750000000000];9 L' T8 h6 J/ O0 Q
gam3 = [468.750000000000];
0 A8 s4 A8 s* r" o; mgam4 = [468.750000000000];/ \  |8 F  [1 Q% s" s5 w
sig21 = [0.0625000000000000];
, y' ~9 d) j7 H( V; ]) Zsig22 = [0.0312500000000000];, q' E- E& [3 E0 |
sig23 = [0.625000000000000];* z0 o: W; E% d: I% W1 u2 J
sig24 = [0.625000000000000];, m8 G, Y4 N* w; O9 \# a& Q1 V0 i
X = [];# [- U/ ^! ~2 [0 R2 }  Y4 `
Y1 = [];, \, g0 ^5 u4 D# [
Y2 = [];/ b" C$ t% J4 B9 E# d/ `
Y3 = [];* ~8 F  ]  N* J5 ^+ f8 k  x6 \; p
Y4 = [];+ g1 K* a2 q4 M, A
% 输入初始化
4 U' `  |7 n" ~: e+ w" k/ ttype = 'function estimation';/ P3 |% X5 a* D, J2 p/ n
Xnew = [omega1 displace_X2 displace_Y2];0 [/ F- s/ ^' \1 a. H
% 输出初始化
( D; V) @6 Y. v6 X. T% 读取输入规模
1 e8 ~# G0 M3 {- |# o+ ^imd = simlssvm({X,Y1,type,gam1,sig21,'RBF_kernel','preprocess'},{alpha1,b1},Xnew);7 \. d8 o1 c9 Z) _5 C
imq = simlssvm({X,Y2,type,gam2,sig22,'RBF_kernel','preprocess'},{alpha2,b2},Xnew);8 z8 O$ }+ r: {& O+ D# o
ibd = simlssvm({X,Y3,type,gam3,sig23,'RBF_kernel','preprocess'},{alpha3,b3},Xnew);
! u/ J" r' z& S2 p& ]$ Xibq = simlssvm({X,Y4,type,gam4,sig24,'RBF_kernel','preprocess'},{alpha4,b4},Xnew);
: H9 f/ U2 L9 U3 p8 X+ ]( L; X% B! {4 U9 D; o* x' i

该用户从未签到

2#
发表于 2021-1-28 19:55 | 只看该作者
帮你顶一下

该用户从未签到

3#
发表于 2021-1-29 10:38 | 只看该作者
matlab function模块默认是需要生成代码的,所以一般是不能调用工具箱函数,如果需要调用需要使用下面的语句声明不生成代码。
( g5 @" y. N& Z5 ^! m0 \coder.extrinsic('funname') ; % funname为外部工具箱函数的名称

该用户从未签到

4#
发表于 2021-1-29 11:29 | 只看该作者
来学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-20 11:07 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表