Merhaba, Matlab function bloğuna kod yazarken resimde görülen hatayı alıyorum. Hatanın nerden kaynakladığını bulamadım. Yardımcı olur musunuz?
function [k, x]= fcn(u) %#codegen if (u<0.8) while (u==1.2) x = 1; %Buck k = 0; %Buck end elseif (u>1.1) while (u<0.7) k = 1; %Boost x = 0; %Boost end else k = 0; %Buck x = 1; %Buck end
Simulink kullanmıyorum ama, bazı durumlarda k'nın tanımsız olduğunu yazmış. Mesela if'in içindeki ilk while dongusu gercekten calısabilecek mi? u < 0.8 ve aynı zamanda while u == 1.2 olabilir mi?
Caglar Bey cevabınız için teşekkür ederim. Evet dediğiniz gibi bir problemin olduğunu farkettim. Kodu oluşturamadım malesef. Döngüleri yapamıyorum. Yapılmasını istediğim işlemi anlatsam döngülerde yardımcı olur musunuz?
Aşağıdaki kodda yardımcı olur musunuz? 1. satır ve 3. satırdaki şartlara göre 2. ve 4. satırdaki işlemleri döngüye almak çalışıyorum. Ama tanımsızlık hatası veriyor. Yardımlarınızı bekliyorum.
u, 0.9 değerine eşitse,
u 1.2 değerine gelene kadar x=1 olsun
u 1.2 değerine eşit büyükse veya 1.2 ile 0.9 arasındaysa
u 0.9'a eşit olana kadar y=1 olsun.
function [x,y] = fcn(u)
%#codegen
while (1)
if (u<=0.9) %Şarj
for u=1.2
x=1;
y=0;
end
elseif (u>=1.2) || (u>0.9) && (u<1.2) %Deşarj
for u=0.9
x=0;
y=1;
end
else
x=0;
y=0;
end
end
end