Repeat user input and output

1 view (last 30 days)
Jonathan Hawkins
Jonathan Hawkins on 6 Apr 2021
Edited: DGM on 7 Apr 2021
I know the code below is a lot and needs work, but I am trying to create a table based off input from user. I would like help with asking user input if L=1, and L=3 another set of questions. I want to minimize the amount of code used for each input from user. I believe the time will have a concatenation error in the table if user input ":". Any recommenadations are greatly appreicated.
if L == 1
Q1 = 'Start Time?';
St0 = input(Q1);
Q2 = 'Oil-Pressure?';
Op0 = input(Q2);
Q3 = 'Jacket-Water Temp?';
Jw0 = input(Q3);
Q4 = 'Frequency?';
F0 = input(Q4);
Q5B = 'Amperage?';
A0 = input(Q5B);
Q6B = 'Voltage?';
V0 = input(Q6B);
kW0 = (V0/1000)*A0*pf;
PoU0 = kW0/kWR; %% Percent of unit / Initial Start
Q7 = 'Time?';
St1 = input(Q7);
Q8 = 'Oil-Pressure?';
Op1 = input(Q8);
Q9 = 'Jacket-Water Temp?';
Jw1 = input(Q3);
Q10 = 'Frequency?';
F1 = input(Q10);
Q11 = 'Amperage?';
A1 = input(Q11);
Q12 = 'Voltage?';
V1 = input(Q12);
kW1 = (V1/1000)*A1*pf;
PoU1 = kW1/kWR; %% Percent of unit / :15 minutes
Q13 = 'Time?';
St2 = input(Q13);
Q14 = 'Oil-Pressure?';
Op2 = input(Q14);
Q15 = 'Jacket-Water Temp?';
Jw2 = input(Q15);
Q16 = 'Frequency?';
F2 = input(Q16);
Q17 = 'Amperage?';
A2 = input(Q11);
Q18 = 'Voltage?';
V2 = input(Q18);
kW2 = (V2/1000)*A2*pf;
PoU2 = kW2/kWR; %% Percent of unit / :30 minutes
Q19 = 'Time?';
St3 = input(Q19);
Q20 = 'Oil-Pressure?';
Op3 = input(Q20);
Q21 = 'Jacket-Water Temp?';
Jw3 = input(Q21);
Q22 = 'Frequency?';
F3 = input(Q22);
Q21 = 'Amperage?';
A3 = input(Q21);
Q22 = 'Voltage?';
V3 = input(Q22);
kW3 = (V3/1000)*A3*pf;
PoU3 = kW3/kWR; %% Percent of unit / :45 minutes
Q23 = 'Time?';
St4 = input(Q23);
Q24 = 'Oil-Pressure?';
Op4 = input(Q24);
Q25 = 'Jacket-Water Temp?';
Jw4 = input(Q25);
Q26 = 'Frequency?';
F4 = input(Q26);
Q27 = 'Amperage?';
A4 = input(Q27);
Q28 = 'Voltage?';
V4 = input(Q28);
kW4 = (V4/1000)*A4*pf;
PoU4 = kW4/kWR; %% Percent of unit / 1:00 minutes
Q29 = 'Time?';
St5 = input(Q29);
Q30 = 'Oil-Pressure?';
Op1 = input(Q8);
Q31 = 'Jacket-Water Temp?';
Jw5 = input(Q31);
Q32 = 'Frequency?';
F5 = input(Q32);
Q33 = 'Amperage?';
A5 = input(Q33);
Q34 = 'Voltage?';
V5 = input(Q34);
kW5 = (V5/1000)*A5*pf;
PoU5 = kW5/kWR; %% Percent of unit / Cool-down
%% Results
Time = [St0;St1;St2;St3;St4;St5];
kWP = [kW0;kW1;kW2;kW3;kW4;kW5];
Percent = [PoU0;PoU1;PoU2;PoU3;PoU4;PoU5];
Volts = [V0;V1;V2;V3;V4;V5];
Amps = [A0;A1;A2;A3;A4;A5];
Frequency = [F0;F1;F2;F3;F4;F5];
Oil = [Op0;Op1;Op2;Op3;Op4;Op5];
JW = [Jw0;Jw1;Jw2;Jw3;Jw4;Jw5];
T1 = table(Time,kWP,Percent,Volts,Amps,Frequency,Oil,JW)
else
Q1 = 'Start Time?';
St0 = input(Q1);
Q2 = 'Oil-Pressure?';
Op0 = input(Q2);
Q3 = 'Jacket-Water Temp?';
Jw0 = input(Q3);
Q4 = 'Frequency?';
F0 = input(Q4);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW0 = (V0/1000)*A0*pf;
PoU0 = kW0/kWR; %% Percent of unit / Initial Start
Q7 = 'Time?';
St1 = input(Q7);
Q8 = 'Oil-Pressure?';
Op1 = input(Q8);
Q9 = 'Jacket-Water Temp?';
Jw1 = input(Q3);
Q10 = 'Frequency?';
F1 = input(Q10);
Q11A = 'Amperage A?';
A1A = input(Q11A);
Q12A = 'Voltage A?';
V1A = input(Q12A);
Q5B = 'Amperage B?';
A1B = input(Q5B);
Q6B = 'Voltage B?';
V1B = input(Q6B);
Q5C = 'Amperage C?';
A1C = input(Q5C);
Q6C = 'Voltage C?';
V1C = input(Q6C);
A1 = (A1A+A1B+A1C)/3;
V1 = (V1A+V1B+V1C)/3;
kW1 = (V1/1000)*A1*pf;
PoU1 = kW1/kWR; %% Percent of unit / :15 minutes
Q13 = 'Time?';
St2 = input(Q13);
Q14 = 'Oil-Pressure?';
Op2 = input(Q14);
Q15 = 'Jacket-Water Temp?';
Jw2 = input(Q15);
Q16 = 'Frequency?';
F2 = input(Q16);
Q17A = 'Amperage A?';
A0A = input(Q5A);
Q18A = 'Voltage A?';
V2A = input(Q12A);
Q5B = 'Amperage B?';
A2B = input(Q5B);
Q18B = 'Voltage B?';
V2B = input(Q6B);
Q17C = 'Amperage C?';
A2C = input(Q5C);
Q6C = 'Voltage C?';
V2C = input(Q6C);
A2 = (A2A+A2B+A2C)/3;
V2 = (V2A+V2B+V2C)/3;
kW2 = (V2/1000)*A2*pf;
PoU2 = kW2/kWR; %% Percent of unit / :30 minutes
Q19 = 'Time?';
St3 = input(Q19);
Q20 = 'Oil-Pressure?';
Op3 = input(Q20);
Q21 = 'Jacket-Water Temp?';
Jw3 = input(Q21);
Q22 = 'Frequency?';
F3 = input(Q22);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW3 = (V3/1000)*A3*pf;
PoU3 = kW3/kWR; %% Percent of unit / :45 minutes
Q23 = 'Time?';
St4 = input(Q23);
Q24 = 'Oil-Pressure?';
Op4 = input(Q24);
Q25 = 'Jacket-Water Temp?';
Jw4 = input(Q25);
Q26 = 'Frequency?';
F4 = input(Q26);
Q27 = 'Amperage?';
A4 = input(Q27);
Q28 = 'Voltage?';
V4 = input(Q28);
kW4 = (V4/1000)*A4*pf;
PoU4 = kW4/kWR; %% Percent of unit / 1:00 minutes
Q29 = 'Time?';
St5 = input(Q29);
Q30 = 'Oil-Pressure?';
Op1 = input(Q8);
Q31 = 'Jacket-Water Temp?';
Jw5 = input(Q31);
Q32 = 'Frequency?';
F5 = input(Q32);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW5 = (V5/1000)*A5*pf;
PoU5 = kW5/kWR; %% Percent of unit / 1:15 minutes
Q35 = 'Time?';
St6 = input(Q35);
Q36 = 'Oil-Pressure?';
Op6 = input(Q36);
Q37 = 'Jacket-Water Temp?';
Jw6 = input(Q37);
Q38 = 'Frequency?';
F6 = input(Q38);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW6 = (V6/1000)*A6*pf;
PoU6 = kW6/kWR; %% Percent of unit / 1:30 minutes
Q41 = 'Time?';
St7 = input(Q41);
Q42 = 'Oil-Pressure?';
Op7 = input(Q42);
Q43 = 'Jacket-Water Temp?';
Jw7 = input(Q43);
Q44 = 'Frequency?';
F7 = input(Q44);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW7 = (V7/1000)*A7*pf;
PoU7 = kW7/kWR; %% Percent of unit / 1:45 minutes
Q47 = 'Time?';
St8 = input(Q47);
Q48 = 'Oil-Pressure?';
Op8 = input(Q48);
Q49 = 'Jacket-Water Temp?';
Jw8 = input(Q49);
Q50 = 'Frequency?';
F8 = input(Q50);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW6 = (V8/1000)*A8*pf;
PoU8 = kW8/kWR; %% Percent of unit / 2 Hour
Q53 = 'Time?';
St9 = input(Q53);
Q54 = 'Oil-Pressure?';
Op9 = input(Q54);
Q55 = 'Jacket-Water Temp?';
Jw9 = input(Q55);
Q56 = 'Frequency?';
F9 = input(Q56);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW9 = (V9/1000)*A9*pf;
PoU9 = kW9/kWR; %% Percent of unit / 2:15 minutes
Q59 = 'Time?';
St10 = input(Q59);
Q60 = 'Oil-Pressure?';
Op10 = input(Q60);
Q61 = 'Jacket-Water Temp?';
Jw10 = input(Q61);
Q62 = 'Frequency?';
F10 = input(Q62);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW10 = (V10/1000)*A10*pf;
PoU10 = kW10/kWR; %% Percent of unit / 2:30 minutes
Q65 = 'Time?';
St11 = input(Q65);
Q66 = 'Oil-Pressure?';
Op11 = input(66);
Q67 = 'Jacket-Water Temp?';
Jw11 = input(Q67);
Q68 = 'Frequency?';
F11 = input(Q68);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW11 = (V11/1000)*A11*pf;
PoU11 = kW11/kWR; %% Percent of unit / 2:45 minutes
Q71 = 'Time?';
St12 = input(Q71);
Q72 = 'Oil-Pressure?';
Op12 = input(Q72);
Q73 = 'Jacket-Water Temp?';
Jw12 = input(Q73);
Q74 = 'Frequency?';
F12 = input(Q74);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW12 = (V12/1000)*A12*pf;
PoU12 = kW12/kWR; %% Percent of unit / 3 Hour
Q77 = 'Time?';
St13 = input(Q77);
Q78 = 'Oil-Pressure?';
Op13 = input(Q78);
Q79 = 'Jacket-Water Temp?';
Jw13 = input(Q79);
Q80 = 'Frequency?';
F13 = input(Q80);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW13 = (V13/1000)*A13*pf;
PoU13 = kW13/kWR; %% Percent of unit / 3:15 minutes
Q83 = 'Time?';
St14 = input(Q83);
Q84 = 'Oil-Pressure?';
Op14 = input(Q84);
Q85 = 'Jacket-Water Temp?';
Jw14 = input(Q85);
Q86 = 'Frequency?';
F14 = input(Q86);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW14 = (V14/1000)*A14*pf;
PoU14 = kW14/kWR; %% Percent of unit / 3:30 minutes
Q89 = 'Time?';
St15 = input(Q89);
Q90 = 'Oil-Pressure?';
Op15 = input(Q90);
Q91 = 'Jacket-Water Temp?';
Jw15 = input(Q91);
Q92 = 'Frequency?';
F15 = input(Q92);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW15 = (V15/1000)*A15*pf;
PoU15 = kW15/kWR; %% Percent of unit / 3:45 minutes
Q95 = 'Time?';
St16 = input(Q95);
Q96 = 'Oil-Pressure?';
Op16 = input(Q96);
Q97 = 'Jacket-Water Temp?';
Jw16 = input(Q97);
Q98 = 'Frequency?';
F16 = input(Q98);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW16 = (V16/1000)*A16*pf;
PoU16 = kW16/kWR; %% Percent of unit / 4 Hour
Q101 = 'Time?';
St17 = input(Q101);
Q102 = 'Oil-Pressure?';
Op17 = input(Q102);
Q103 = 'Jacket-Water Temp?';
Jw17 = input(Q103);
Q104 = 'Frequency?';
F17 = input(Q104);
Q5A = 'Amperage A?';
A0A = input(Q5A);
Q12A = 'Voltage A?';
V0A = input(Q12A);
Q5B = 'Amperage B?';
A0B = input(Q5B);
Q6B = 'Voltage B?';
V0B = input(Q6B);
Q5C = 'Amperage C?';
A0C = input(Q5C);
Q6C = 'Voltage C?';
V0C = input(Q6C);
A0 = (A0A+A0B+A0C)/3;
V0 = (V0A+V0B+V0C)/3;
kW17 = (V17/1000)*A17*pf;
PoU17 = kW17/kWR; %% Percent of unit / Cool-down
%% Results
Time = [St0;St1;St2;St3;St4;St5;St6;St7;St8;St9;St10;St11;St12;St13;St14;St15;St16;St17];
kWP = [kW0;kW1;kW2;kW3;kW4;kW5;kW6;kW7;kW8;kW9;kW10;kW11;kW12;kW13;kW14;kW15;kW16;kW17];
Percent = [PoU0;PoU1;PoU2;PoU3;PoU4;PoU5;PoU6;PoU7;PoU8;PoU9;PoU10;PoU11;PoU12;PoU13;PoU14;PoU15;PoU16;PoU17];
Volts = [V0;V1;V2;V3;V4;V5;V6;V7;V8;V9;V10;V11;V12;V13;V14;V15;V16;V17];
Amps = [A0;A1;A2;A3;A4;A5;A6;A7;A8;A9;A0;A11;A12;A13;A14;A15;A16;A17];
Frequency = [F0;F1;F2;F3;F4;F5;F6;F7;F8;F9;F10;F11;F12;F13;F14;F15;F16;F17];
Oil = [Op0;Op1;Op2;Op3;Op4;Op5;Op6;Op7;Op8;Op9;Op10;Op11;Op12;Op13;Op14;Op15;Op16;Op17];
JW = [Jw0;Jw1;Jw2;Jw3;Jw4;Jw5;Jw6;Jw7;Jw8;Jw9;Jw10;Jw11;Jw12;Jw13;Jw14;Jw15;Jw16;Jw17];
T1 = table(Time,kWP,Percent,Volts,Amps,Frequency,Oil,JW)
  4 Comments
Jonathan Hawkins
Jonathan Hawkins on 7 Apr 2021
Any suggestions on types of GUI's related to power engineering? I am still new with MATLAB and would love more insight to possibly use Simulink as well. The data I obtained was from an excel spreadsheet that is has some issues and wanted to plot a phasor diagram along with Voltage and Current in each test. I greatly appreicate everyone's support.
DGM
DGM on 7 Apr 2021
Edited: DGM on 7 Apr 2021
There's definitely power systems tools in simulink, etc. I'm sure there are other things on the FEX and elsewhere that I'm not familiar with. That's a bit aside from the question though.
If the data you have is already in a spreadsheet, I'd concentrate on using the spreadsheet directly. You could use xlsread(), and if you want to use a dialog to select the file, you could use uigetfile(). There should be lots of examples of the process of getting spreadsheet data into Matlab. Once you have the data in the workspace, the rest of the UI design is a matter of form following function.

Sign in to comment.

Answers (1)

Steven Lord
Steven Lord on 6 Apr 2021
Defining variables whose names are sequentially numbered is generally discouraged and is a code smell.
I second Walter Roberson's and DGM's suggestions to decouple data entry and calculation. I also recommend if you're going to require users to enter multiple sets of data in the same format that you write a function to read in one set then call it in a loop.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!