matlab function block in Simulink

1 回表示 (過去 30 日間)
Sarah Kern
Sarah Kern 2020 年 2 月 11 日
Hello,
I dont understand whats going on in my matlab function block.
I have the following Code
function y = Lenkwinkelbegrenzung3(Fx_V, Fy_V, Mz_V, F_max_1, F_max_2, F_max_3, F_max_4, f1,f2,F_Fehler_1,F_Fehler_2, f3, f4, F_Fehler_3, F_Fehler_4, l_h, l_v, w_vl, w_hl, w_hr, w_vr)
E = [1,0,1,0,1,0,1,0;
0,1,0,1,0,1,0,1;
-w_vl,l_v,w_vr,l_v,-w_hl,-l_h,w_hr,-l_h;
1,0,0,0,0,0,0,0];
F_soll = [Fx_V; Fy_V; Mz_V; 0];
%Definition des Rechtsannihilators G_ra
E_Ra = null(E);
%Definition der Moore-Penrose Inverse G_plus
E_Moore = transpose(E)/(E*transpose(E));
%Definition der Gewichtungsmatrix Q
Q = [1/F_max_1 0 0 0 0 0 0 0;
0 1/F_max_1 0 0 0 0 0 0;
0 0 1/F_max_2 0 0 0 0 0;
0 0 0 1/F_max_2 0 0 0 0;
0 0 0 0 1/F_max_3 0 0 0;
0 0 0 0 0 1/F_max_3 0 0;
0 0 0 0 0 0 1/F_max_4 0;
0 0 0 0 0 0 0 1/F_max_4];
delta_U = -inv(transpose(E_Ra)*Q*E_Ra)*transpose(E_Ra)*Q*E_Moore*F_soll;
y= E_Moore*F_soll+E_Ra*delta_U;
An in my matlab skript I get a reasonable output with y(1) = 0,
but as soon as I implement it in a matlab function block in simulink my y(1) doesnt equal zero anymore.
Can anyone explain to me why?
I dont understand why this is happening and what can I do about it
Thanks for reading

回答 (0 件)

カテゴリ

Help Center および File ExchangeSimulink Functions についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by