I get an error when trying to run my function using a simulink block.

function [DefuelSwitch, Defuel, EnginesOnSwitch] = defuelingtrigger(u)
% Unpack the inputs
time = u(1);
%fprintf('Pilot: Time[%f]\n',time);
% Switches
DefuelSwitchInput = u(2);
EnginesOnSwitchInput = u(3);
Defuel = u(4);
DefuelSwitch = DefuelSwitchInput;
EnginesOnSwitch = EnginesOnSwitchInput;
Defuel = -(RefuelQuantity) ;
if (DefuelSwitch == 1) && (EnginesOnSwitch == 1)
DefuelSwitch = 0;
EnginesOnSwitch = 0;
disp('Both switches can not be ON at the same time')
y = [DefuelSwitch, Defuel, EnginesOnSwitch];
end
% Pack the outputs
y(2) = DefuelSwitch;
y(4) = Defuel;
y(3) = EnginesOnSwitch;
end
%the imputs are in my simulink model and its only returning one output.
% im a novice so any suggestions will be appreciated!

 Accepted Answer

if (DefuelSwitch == 1) && (EnginesOnSwitch == 1)
If that condition is not true, you do not assign anything to y, but you need the value of y after the end of the if statement.

2 Comments

thanks alot! I'm on the next level of errors now! (i'm making this a game before i lose my mind)
i'll let you know when i beat the boss error XD

Sign in to comment.

More Answers (0)

Categories

Find more on General Applications in Help Center and File Exchange

Products

Release

R2022b

Community Treasure Hunt

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

Start Hunting!