24小时热门版块排行榜    

查看: 2601  |  回复: 6

如瑜?运�

银虫 (初入文坛)

[求助] simulink如何将m文件创建成一个模块,求助呀 已有1人参与

我的m文件原文件如下,我要输出的是一个Fm与时间的关系的一个模块到simulink当中,但是一直都弄不出来,有的说用embedded matlab function,我弄了好久,也没弄出来,我只是想把Fm作为一个激励输入到simulink当中,求高手给个具体的方法和过程,或者帮我编一个s-function函数,我对simulink也不熟,s-function也不会
clc;clear;
syms fs fx;
k=0.6069;
zb=43;
b=11;
rp=72.5;
rrp=5;
E=206000;
i=1;
u=0.3;
kc=0;
P=zeros(1,5);
ks=P;
PP=zeros(1,3);
kk=PP;
ph=PP;
w=0.018;
   for pha=3*2*pi/43:4*pi/43:12*2*pi/43
       s=1+k^2-2*k*cos(pha);
       T=k*(zb+1)*cos(pha)-(1+zb*k^2);
       fs=pi*b*E*rp*s^(3/2);
       fx=4*(1-u^2)*(rp*s^(3/2)+2*rrp*T);
       ks(i)=fs/fx;
       ks(i)
       kc=kc+abs(ks(i));
       kc
       i=i+1;
   end
kp=237190;  %单齿刚度
chd=5.375;  %重合度
nb=600/43;   %摆线齿轮转速
wm=2*pi*nb*zb/60; %频率
t=0:0.001:0.3;
for j=1:1:3
    kk(j)=sqrt(2-2*cos(2*pi*j*(chd-5)))*kp/(pi*j);
    ph(j)=atan((1-cos(2*pi*j*(chd-5)))/sin(2*pi*j*(chd-5)));
    kk(j)
    ph(j)
   
end
    km=kc+kk(1)*cos(wm.*t-ph(1))+kk(2)*cos(2*wm.*t-ph(2))+kk(3)*cos(3*wm.*t-ph(3));
   % plot(t,km)
    Fm=km*w*b/1000;
    plot(t,Fm)
下面这个就是m文件的仿真图片
simulink如何将m文件创建成一个模块,求助呀
我用embedded matlab function编了一个文件,但是出错,下面是我编程和错误的图片,还有simulink的模型
function y = fcn(t)
%#eml
eml.extrinsic('clc','clear','syms');
clc;clear;
%syms fs fx;
k=0.6069;
zb=43;
b=11;
rp=72.5;
rrp=5;
E=206000;
i=1;
u=0.3;
kc=0;
P=zeros(1,5);
ks=P;
PP=zeros(1,3);
kk=PP;
ph=PP;
w=0.018;
   for pha=3*2*pi/43:4*pi/43:12*2*pi/43
       s=1+k^2-2*k*cos(pha);
       T=k*(zb+1)*cos(pha)-(1+zb*k^2);
       fs=pi*b*E*rp*s^(3/2);
       fx=4*(1-u^2)*(rp*s^(3/2)+2*rrp*T);
       ks(i)=fs/fx;
       ks(i)
       kc=kc+abs(ks(i));
       kc
       i=i+1;
   end
kp=237190;  %单齿刚度
chd=5.375;  %重合度
nb=600/43;   %摆线齿轮转速
wm=2*pi*nb*zb/60; %频率
%t=0:0.001:0.3;
for j=1:1:3
    kk(j)=sqrt(2-2*cos(2*pi*j*(chd-5)))*kp/(pi*j);
    ph(j)=atan((1-cos(2*pi*j*(chd-5)))/sin(2*pi*j*(chd-5)));
    kk(j)
    ph(j)
   
end
    km=kc+kk(1)*cos(wm*t-ph(1))+kk(2)*cos(2*wm*t-ph(2))+kk(3)*cos(3*wm*t-ph(3));
   % plot(t,km)
    y=km(t)*w*b/1000;
simulink如何将m文件创建成一个模块,求助呀-1
simulink如何将m文件创建成一个模块,求助呀-2
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

CSU_HUSTer

新虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
matlab FCN即可,设置名字与m文件函数文件名一致
2楼2014-06-17 19:31:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

如瑜?运�

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by CSU_HUSTer at 2014-06-17 19:31:56
matlab FCN即可,设置名字与m文件函数文件名一致

好像可以,但是为什么出来的都是好几条平行的直线。就是示波器上的图形显示的是Fm的每个值,每个值是一条直线,没办法跟时间关联起来
3楼2014-06-19 12:53:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

CSU_HUSTer

新虫 (正式写手)

???????:
3?: Originally posted by ?????? at 2014-06-19 12:53:01
????????????????????????ü?????е???????????????????????????Fm????????????????????????????????????...

???????????д???
4楼2014-06-19 14:50:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

如瑜?运�

银虫 (初入文坛)

引用回帖:
4楼: Originally posted by CSU_HUSTer at 2014-06-19 14:50:43
你的输入输出没写对吧...

下面是我的程序,您看看对不,示波器的图显示是那样
function [Fm]=gangdu(t)
syms fs fx;
k=0.6069;
zb=43;
b=11;
rp=72.5;
rrp=5;
E=206000;
i=1;
u=0.3;
kc=0;
P=zeros(1,5);
ks=P;
PP=zeros(1,3);
kk=PP;
ph=PP;
w=0.018;
   for pha=3*2*pi/43:4*pi/43:12*2*pi/43
       s=1+k^2-2*k*cos(pha);
       T=k*(zb+1)*cos(pha)-(1+zb*k^2);
       fs=pi*b*E*rp*s^(3/2);
       fx=4*(1-u^2)*(rp*s^(3/2)+2*rrp*T);
       ks(i)=fs/fx;
       ks(i)
       kc=kc+abs(ks(i));
       kc
       i=i+1;
   end
kp=237190;  %单齿刚度
chd=5.375;  %重合度
nb=600/43;   %摆线齿轮转速
wm=2*pi*nb*zb/60; %频率
%t=0:0.001:0.3;
for j=1:1:3
    kk(j)=sqrt(2-2*cos(2*pi*j*(chd-5)))*kp/(pi*j);
    ph(j)=atan((1-cos(2*pi*j*(chd-5)))/sin(2*pi*j*(chd-5)));
    kk(j)
    ph(j)
   
end
    km=kc+kk(1)*cos(wm*t-ph(1))+kk(2)*cos(2*wm*t-ph(2))+kk(3)*cos(3*wm*t-ph(3));
    plot(t,km)
    Fm=km*w*b/1000;
simulink如何将m文件创建成一个模块,求助呀-3
simulink如何将m文件创建成一个模块,求助呀-4
5楼2014-06-19 15:05:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

寒域110

金虫 (小有名气)

楼主,你会用这个模块了吗?求助啊
6楼2015-02-15 15:57:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guodeqi0816

新虫 (初入文坛)

楼主您的问题解决了吗   我现在也遇到您这个问题   想把m文件做成类似simulink中的阶跃信号输入模块    可以指点下不
7楼2015-12-15 09:09:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 如瑜?运� 的主题更新
信息提示
请填处理意见