600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 在simulink中利用Matlab function模块求变量偏导数

在simulink中利用Matlab function模块求变量偏导数

时间:2022-01-02 13:32:05

相关推荐

在simulink中利用Matlab function模块求变量偏导数

假设已知一个多输入函数MATLAB function为:

function y=fun(u,v,w),

y=u*v*w;

end;

现要求输出y关于u的偏导数值

首先在另外一个m文件中利用diff函数求出偏导数的表达式

syms u v w;

y=fun(u,v,w);

dy_du=diff(y,u);

运行该文件即可得到y关于u的偏导数表达式:dy_du=v*w;

将表达式复制到MATLAB function中

function [y,dy_du]=fun(u,v,w);

y=u*v*w;

dy_du=v*w;

end

如下面这个轮胎模型的MATLAB function,要利用该模型得到Fx和Fy对滑移率s的偏导数

function [Fyrr,Fxrr]= fcn(Fzrr,alfa4,Srr,urr,mu)% This block supports an embeddable subset of the MATLAB language.% See the help menu for details. epsilon=0.015;Ca=30000;Cs=50000;Lamda=mu*Fzrr*(1-epsilon*urr*sqrt(Srr^2+(tan(alfa4))^2))*(1-Srr)/(2*sqrt(Cs^2*Srr^2+Ca^2*(tan(alfa4))^2));if Lamda<1f=Lamda*(2-Lamda);elsef=1;endFyrr=Ca*tan(alfa4)*f/(1-Srr);Fxrr=Cs*Srr*f/(1-Srr);

在另外的m文件中运行得到偏导数的表达式

syms Fzrr alfa4 Srr urr muepsilon=0.015;Ca=30000;Cs=50000;Lamda=mu*Fzrr*(1-epsilon*urr*sqrt(Srr^2+(tan(alfa4))^2))*(1-Srr)/(2*sqrt(Cs^2*Srr^2+Ca^2*(tan(alfa4))^2));f=Lamda*(2-Lamda);Fyrr=Ca*tan(alfa4)*f/(1-Srr);Fxrr=Cs*Srr*f/(1-Srr);dFx_ds=diff(Fxrr,Srr);dFy_ds=diff(Fyrr,Srr);

得到表达式为:

dFx_ds =(5*Fzrr*mu*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) + (5*Fzrr*Srr*mu*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1)*((Fzrr*mu*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - (Fzrr*Srr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(800*(25*Srr^2 + 9*tan(alfa4)^2)^(3/2)) + (3*Fzrr*Srr*mu*urr*(Srr - 1))/(4000000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)*(Srr^2 + tan(alfa4)^2)^(1/2))))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - (125*Fzrr*Srr^2*mu*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(3/2)) + (3*Fzrr*Srr^2*mu*urr*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2))/(80*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)*(Srr^2 + tan(alfa4)^2)^(1/2))>> dFy_dsdFy_ds =(3*Fzrr*mu*tan(alfa4)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1)*((Fzrr*mu*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - (Fzrr*Srr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(800*(25*Srr^2 + 9*tan(alfa4)^2)^(3/2)) + (3*Fzrr*Srr*mu*urr*(Srr - 1))/(4000000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)*(Srr^2 + tan(alfa4)^2)^(1/2))))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - (75*Fzrr*Srr*mu*tan(alfa4)*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(3/2)) + (9*Fzrr*Srr*mu*urr*tan(alfa4)*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2))/(400*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)*(Srr^2 + tan(alfa4)^2)^(1/2))

将其带入到matlab function中即可

function [Fyrr,Fxrr,dFx_ds_4,dFy_ds_4]= fcn(Fzrr,alfa4,Srr,urr,mu)% This block supports an embeddable subset of the MATLAB language.% See the help menu for details. epsilon=0.015;Ca=30000;Cs=50000;Lamda=mu*Fzrr*(1-epsilon*urr*sqrt(Srr^2+(tan(alfa4))^2))*(1-Srr)/(2*sqrt(Cs^2*Srr^2+Ca^2*(tan(alfa4))^2));if Lamda<1f=Lamda*(2-Lamda);Fyrr=Ca*tan(alfa4)*f/(1-Srr);Fxrr=Cs*Srr*f/(1-Srr);dFx_ds_4=(5*Fzrr*mu*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) + (5*Fzrr*Srr*mu*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1)*((Fzrr*mu*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - (Fzrr*Srr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(800*(25*Srr^2 + 9*tan(alfa4)^2)^(3/2)) + (3*Fzrr*Srr*mu*urr*(Srr - 1))/(4000000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)*(Srr^2 + tan(alfa4)^2)^(1/2))))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - (125*Fzrr*Srr^2*mu*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(3/2)) + (3*Fzrr*Srr^2*mu*urr*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2))/(80*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)*(Srr^2 + tan(alfa4)^2)^(1/2));dFy_ds_4=(3*Fzrr*mu*tan(alfa4)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1)*((Fzrr*mu*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - (Fzrr*Srr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(800*(25*Srr^2 + 9*tan(alfa4)^2)^(3/2)) + (3*Fzrr*Srr*mu*urr*(Srr - 1))/(4000000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)*(Srr^2 + tan(alfa4)^2)^(1/2))))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - (75*Fzrr*Srr*mu*tan(alfa4)*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(2*(25*Srr^2 + 9*tan(alfa4)^2)^(3/2)) + (9*Fzrr*Srr*mu*urr*tan(alfa4)*((Fzrr*mu*(Srr - 1)*((3*urr*(Srr^2 + tan(alfa4)^2)^(1/2))/200 - 1))/(20000*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)) - 2))/(400*(25*Srr^2 + 9*tan(alfa4)^2)^(1/2)*(Srr^2 + tan(alfa4)^2)^(1/2));elsef=1;Fyrr=Ca*tan(alfa4)*f/(1-Srr);Fxrr=Cs*Srr*f/(1-Srr);dFx_ds_4=(50000*Srr)/(Srr - 1)^2 - 50000/(Srr - 1);dFy_ds_4=(30000*tan(alfa4))/(Srr - 1)^2;end

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。