solve a function without solving for the variable within the function
2 views (last 30 days)
Show older comments
I am trying to make a Routh Array solver. It works very well when you put integers into it but if I have a variable (like "K" for gain) I can't seem to get it to not solve for K but rather present "K" as part of its answer. I have the code I am working on below. I would like the answers with "K" int them to come out with K in them.
%% 4 element Routh Array
clc
clear all
%S^4 solver
syms k; %Holde K in the array as itself
var=((0.07*k)+0.015)
K=solve(var)
% load the Routh array
%a0s + a1sn + a2sn + a3sn + a4sn
%Example s^4 + 3s^3 + 3s^2 + 2S + 1
a0=1; a1=2.3; a2=1.37; a3=2.65; a4=K; aout=0;
%S4
a0=1 ; a2=3 ; a4=1 ;
S4=[a0 a2 a4];
%S3
a1=3 ; a3=2 ; aout=0;
S3 = [a1 a3 aout];
%S2
b1=((a1*a2)-(a0*a3))/a1; b2=((a1*a4)-(a0*aout))/a1;
S2 = [b1 b2];
%S1
c1=((b1*a3)-(a1*b2))/b1;
S1 = [c1];
%S0
d1=((c1*b2)-(b1*0))/c1;
S0=[d1];
disp('4 Pole S4 Routh Array output NORMAL')
disp(S4)
disp(S3)
disp(S2)
disp(S1)
disp(S0)
ia0=a4; ia1=a3; ia2=a2; ia3=a1; ia4=a0;
%S4
ia0=1 ; ia2=3 ; ia4=1 ;
iS4=[ia0 ia2 ia4];
%S3
ia1=3 ; ia3=2 ; aout=0;
iS3 = [ia1 ia3 aout];
%S2
b1=((ia1*ia2)-(ia0*ia3))/ia1; b2=((ia1*ia4)-(ia0*aout))/ia1;
iS2 = [b1 b2];
%S1
c1=((b1*ia3)-(ia1*b2))/b1;
iS1 = [c1];
%S0
d1=((c1*b2)-(b1*0))/c1;
iS0=[d1];
disp('4 Pole S4 Routh Array output INVERTED')
disp(iS4)
disp(iS3)
disp(iS2)
disp(iS1)
disp(iS0)
0 Comments
Answers (0)
See Also
Categories
Find more on Stability Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!