# Problem with a function

1 回表示 (過去 30 日間)
Paul Rogers 2020 年 10 月 21 日
コメント済み: Paul Rogers 2020 年 10 月 24 日
Hello everyone, I wrote this function:
function dz = nocontrol(v,z,parameters)
gammaT=??????????;
phi_0 =0.6;
psi_0 =0.6857;
psi_c0 = 0.3;
B=1.8;
Lc = 3; %m
W = 0.25;
H = 0.18;
C = 0;
dz = zeros(2,1);
dz(1)=(1/(4*B*B*Lc))*(z(2)-gammaT*(z(1))^0.5);
psi_c=psi_c0+H*(1+1.5*(z(2)/W-1)-0.5*(z(2)/W-1).^3);
dz(2) =(1/Lc)*(psi_c-z(1));
end
my problem is that I don't know how to write properly gammaT. I'd like to express it as a function, something like this:
gammaT_max = 0.8;
gammaT_min = 0.7;
A = (gammaT_max - gammaT_min)/2; %amplitude
b = gammaT_max - ((gammaT_max - gammaT_min)/2);
gammaT = A*sin(w*t)+b
but I don't know how.
##### 2 件のコメントなしを表示なしを非表示
madhan ravi 2020 年 10 月 21 日
what's your question? Are you asking if the way you defined the gamma function is correct?
Paul Rogers 2020 年 10 月 21 日

I'd like to define gammaT as a function of the time, but I don't knwo how.

サインインしてコメントする。

### 採用された回答

Walter Roberson 2020 年 10 月 21 日
You have defined gammaT as a variable that you multiply by, but it needs to be a function of time. You will likely need something like
gammaT = @(t) A*sin(w*t)+b
dz(1)=(1/(4*B*B*Lc))*(z(2)-gammaT(SOMETHING)*(z(1))^0.5);
The SOMETHING would have to be replaced with your time variable, but it is not obvious that you have a time variable. Perhaps v is your time variable.
##### 3 件のコメント1 件の古いコメントを表示1 件の古いコメントを非表示
Walter Roberson 2020 年 10 月 22 日
You do not have a time variable, so I had to substitute the closest I could find.
function dz = nocontrol(v,z,parameters)
gammaT=parameters(1);
phi_0=parameters(2);
psi_0=parameters(3);
psi_c0=parameters(4);
B=parameters(5);
Lc=parameters(6);
W=parameters(7);
H=parameters(8);
C = 0;
gammaT_max = 0.8;
gammaT_min = 0.7;
A = (gammaT_max - gammaT_min)/2; %amplitude
b = gammaT_max - ((gammaT_max - gammaT_min)/2);
gammaT = @(t) A*sin(W*t)+b
dz = zeros(2,1);
dz(1)=(1/(4*B*B*Lc))*(z(2)-gammaT(v)*(z(1))^0.5);
psi_c=psi_c0+H*(1+1.5*(z(2)/W-1)-0.5*(z(2)/W-1).^3);
dz(2) =(1/Lc)*(psi_c-z(1));
end
Paul Rogers 2020 年 10 月 24 日
thanks a lot, you really solved me something I couldn't figured out.
just the argument in the sin was't W but another variable w in radians.
It woorks now

サインインしてコメントする。

### カテゴリ

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

R2014b

### Community Treasure Hunt

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

Start Hunting!

Translated by