How to plot 3-D bode from the derived transfer function?
3 次查看(过去 30 天)
显示 更早的评论
I want to plot my derived transfer function in this format as shown in figure below. The transfer function is derived using state matrices and using this following expression: G_vd=q*(inv((s*I)-A))*f
I used symb to get the transfer function with 'ws=2*pi*Fs - switching frequency' as a variable. 'wo=2*pi*Fo' is a constant and I can vary 'ws' as per the ratio needed. So, now I have a transfer function with variable 'ws' and the complex frequency 's'.
This is what I obtained after simplifying. How to proceed further? I found answers where manual multiplication was performed. Also, I want to use surf command to obtain a neat surface.
G_vd =-(1.6872e+30*ws*(2.0616e+11*ws^2 - 1.5981e+19)*(- 1.0434e+209*s^14*ws^2 + 9.7644e+213*s^14*ws + 3.4484e+220*s^14 - 1.2991e+213*s^13*ws^2 + 1.2158e+218*s^13*ws + 4.2937e+224*s^13 - 5.2168e+209*s^12*ws^4 + 3.9142e+214*s^12*ws^3 + 6.8734e+220*s^12*ws^2 + 1.2884e+226*s^12*ws + 3.4203e+232*s^12 - 5.6241e+213*s^11*ws^4 + 4.8516e+218*s^11*ws^3 + 9.9349e+224*s^11*ws^2 + 9.4516e+229*s^11*ws + 2.8572e+236*s^11 - 1.0434e+210*s^10*ws^6 + 5.8925e+214*s^10*ws^5 + 3.3573e+220*s^10*ws^4 + 4.185e+226*s^10*ws^3 + 6.8393e+232*s^10*ws^2 + 3.2035e+237*s^10*ws + 1.131e+244*s^10 - 9.5051e+213*s^9*ws^6 + 7.2633e+218*s^9*ws^5 + 5.6111e+224*s^9*ws^4 + 3.0823e+230*s^9*ws^3 + 7.0634e+236*s^9*ws^2 + 9.3038e+240*s^9*ws + 4.8152e+247*s^9 - 1.0434e+210*s^8*ws^8 + 3.9566e+214*s^8*ws^7 - 1.3383e+219*s^8*ws^6 + 4.8276e+226*s^8*ws^5 + 3.4139e+232*s^8*ws^4 + 9.5864e+237*s^8*ws^3 + 2.2626e+244*s^8*ws^2 + 3.8015e+246*s^8*ws + 1.2478e+255*s^8 - 7.7621e+213*s^7*ws^8 + 4.8387e+218*s^7*ws^7 - 5.7637e+222*s^7*ws^6 + 3.5915e+230*s^7*ws^5 + 4.2122e+236*s^7*ws^4 + 2.7369e+241*s^7*ws^3 + 1.4076e+248*s^7*ws^2 + 2.6339e+249*s^7*ws + 2.0572e+257*s^7 - 5.2168e+209*s^6*ws^10 + 1.0103e+214*s^6*ws^9 - 3.5371e+220*s^6*ws^8 + 2.2567e+226*s^6*ws^7 + 3.4001e+232*s^6*ws^6 + 9.5471e+237*s^6*ws^5 + 6.907e+241*s^6*ws^4 + 9.913e+246*s^6*ws^3 + 3.7354e+255*s^6*ws^2 + 8.413e+254*s^6*ws + 2.891e+263*s^6 - 3.0095e+213*s^5*ws^10 + 1.2146e+218*s^5*ws^9 + 1.3223e+224*s^5*ws^8 + 1.7168e+230*s^5*ws^7 - 1.3395e+236*s^5*ws^6 + 2.6851e+241*s^5*ws^5 + 1.3718e+248*s^5*ws^4 + 2.9996e+249*s^5*ws^3 + 3.9942e+257*s^5*ws^2 + 2.5473e+257*s^5*ws + 4.5819e+265*s^5 - 1.0434e+209*s^4*ws^12 + 8.4668e+211*s^4*ws^11 - 6.9202e+220*s^4*ws^10 + 3.2845e+225*s^4*ws^9 + 6.818e+232*s^4*ws^8 + 3.146e+237*s^4*ws^7 - 2.2528e+244*s^4*ws^6 + 9.4169e+246*s^4*ws^5 + 3.7335e+255*s^4*ws^4 + 8.9376e+254*s^4*ws^3 + 2.891e+263*s^4*ws^2 + 4.474e+262*s^4*ws + 1.7485e+271*s^4 - 4.276e+212*s^3*ws^12 + 3.47e+215*s^3*ws^11 + 1.3494e+224*s^3*ws^10 + 2.6238e+229*s^3*ws^9 - 1.3454e+236*s^3*ws^8 + 8.7872e+240*s^3*ws^7 + 4.4564e+247*s^3*ws^6 + 1.2063e+249*s^3*ws^5 + 1.9823e+257*s^3*ws^4 + 2.6028e+256*s^3*ws^3 + 9.8906e+262*s^3*ws^2 + 8.3904e+264*s^3*ws + 2.7391e+273*s^3 - 3.4492e+220*s^2*ws^12 + 2.799e+223*s^2*ws^11 + 3.4125e+232*s^2*ws^10 - 1.8193e+235*s^2*ws^9 - 1.1279e+244*s^2*ws^8 + 3.3039e+246*s^2*ws^7 + 1.245e+255*s^2*ws^6 + 2.9442e+254*s^2*ws^5 + 9.7024e+262*s^2*ws^4 + 7.8861e+261*s^2*ws^3 + 2.5095e+270*s^2*ws^2 + 4.8895e+269*s^2*ws + 1.9905e+278*s^2 - 3.3148e+220*s*ws^12 + 2.6899e+223*s*ws^11 + 1.0516e+232*s*ws^10 + 2.0331e+237*s*ws^9 - 1.0373e+244*s*ws^8 + 6.8464e+248*s*ws^7 + 3.4325e+255*s*ws^6 - 6.7804e+256*s*ws^5 + 1.4597e+265*s*ws^4 - 4.3488e+264*s*ws^3 - 2.3319e+273*s*ws^2 + 7.6327e+271*s*ws + 3.1084e+280*s - 2.6732e+228*ws^12 + 2.1693e+231*ws^11 + 2.6488e+240*ws^10 - 1.4429e+243*ws^9 - 8.767e+251*ws^8 + 2.4141e+254*ws^7 + 9.6974e+262*ws^6 - 3.6803e+262*ws^5 - 1.497e+271*ws^4 + 4.8818e+269*ws^3 + 1.9883e+278*ws^2 + 2.9811e+273*ws + 1.2142e+282))/((1.9723e+81*ws^6 + 1.6586e+70*ws^5 - 1.3024e+93*ws^4 + 1.9498e+95*ws^3 + 2.1636e+104*ws^2 + 7.694e+89*ws - 3.024e+112)*(1.8535e+158*s^15 + 2.3223e+162*s^14 + 9.2675e+158*s^13*ws^2 + 1.8385e+170*s^13 + 1.0063e+163*s^12*ws^2 + 1.5501e+174*s^12 + 1.8535e+159*s^11*ws^4 + 5.5157e+170*s^11*ws^2 - 4.8956e+152*s^11*ws + 6.0797e+181*s^11 + 1.703e+163*s^10*ws^4 + 4.6214e+174*s^10*ws^2 - 8.0497e+160*s^10*ws + 2.6358e+185*s^10 + 1.8535e+159*s^9*ws^6 + 6.1289e+170*s^9*ws^4 - 9.7911e+152*s^9*ws^3 + 1.418e+182*s^9*ws^2 - 5.0127e+164*s^9*ws + 6.7076e+192*s^9 + 1.3934e+163*s^8*ws^6 + 4.607e+174*s^8*ws^4 - 4.0254e+160*s^8*ws^3 + 7.7101e+185*s^8*ws^2 - 2.0666e+183*s^8*ws + 1.6298e+195*s^8 + 9.2675e+158*s^7*ws^8 + 3.6774e+170*s^7*ws^6 + 6.0799e+181*s^7*ws^4 - 1.1547e+165*s^7*ws^3 + 2.0084e+193*s^7*ws^2 - 7.7771e+185*s^7*ws + 1.5541e+201*s^7 + 5.4188e+162*s^6*ws^8 + 1.5552e+174*s^6*ws^6 + 2.0123e+161*s^6*ws^5 + 7.4863e+185*s^6*ws^4 - 5.9779e+183*s^6*ws^3 + 3.717e+195*s^6*ws^2 - 3.6532e+193*s^6*ws + 3.677e+203*s^6 + 1.8535e+158*s^5*ws^10 + 1.8385e+170*s^5*ws^8 + 9.7911e+152*s^5*ws^7 - 6.07e+181*s^5*ws^6 - 8.0586e+164*s^5*ws^5 + 2.0074e+193*s^5*ws^4 - 1.0659e+186*s^5*ws^3 + 1.5545e+201*s^5*ws^2 - 5.7145e+195*s^5*ws + 9.4011e+208*s^5 + 7.7411e+161*s^4*ws^10 + 2.43e+172*s^4*ws^8 + 2.0124e+161*s^4*ws^7 + 2.3803e+185*s^4*ws^6 - 5.7559e+183*s^4*ws^5 + 2.6341e+195*s^4*ws^4 - 3.6377e+193*s^4*ws^3 + 1.22e+203*s^4*ws^2 - 5.3887e+200*s^4*ws + 2.2066e+211*s^4 + 6.1275e+169*s^3*ws^10 + 4.8956e+152*s^3*ws^9 - 4.0486e+181*s^3*ws^8 - 1.5239e+164*s^3*ws^7 + 6.6943e+192*s^3*ws^6 + 1.6657e+185*s^3*ws^5 + 5.2167e+200*s^3*ws^4 + 1.0076e+193*s^3*ws^3 + 1.3493e+208*s^3*ws^2 - 8.4161e+202*s^3*ws + 1.0712e+216*s^3 + 4.8461e+171*s^2*ws^10 + 4.0248e+160*s^2*ws^9 - 3.1534e+183*s^2*ws^8 - 1.8447e+183*s^2*ws^7 + 5.4181e+194*s^2*ws^6 + 3.6831e+193*s^2*ws^5 + 1.1917e+203*s^2*ws^4 - 1.0772e+201*s^2*ws^3 - 1.148e+211*s^2*ws^2 - 3.2874e+204*s^2*ws + 2.5068e+218*s^2 + 4.7489e+177*s*ws^10 + 3.795e+160*s*ws^9 - 3.1449e+189*s*ws^8 + 4.548e+185*s*ws^7 + 5.2104e+200*s*ws^6 + 5.7246e+195*s*ws^5 - 8.046e+208*s*ws^4 - 8.4161e+202*s*ws^3 + 1.0678e+216*s*ws^2 - 4.9815e+197*s*ws + 1.9579e+220*s + 3.7101e+179*ws^10 + 3.12e+168*ws^9 - 2.45e+191*ws^8 + 3.6677e+193*ws^7 + 4.0703e+202*ws^6 - 5.3837e+200*ws^5 - 6.2858e+210*ws^4 - 3.2874e+204*ws^3 + 8.3493e+217*ws^2 - 1.2972e+199*ws + 5.0985e+221))
Fig: taken from https://doi.org/10.1109/TPEL.2015.2464351
0 个评论
回答(1 个)
Aquatris
2024-3-20
编辑:Aquatris
2024-3-20
Here is one way:
% undamped system where w defines the natural frequency and s is the
% s-domain frequency grid variable
sys = @(s,w) 1./((s*1i).^2+2*0.05*w.*(s*1i)+w.^2); % create your tf as a function of s and w
wV = 10:1:30; % define w values you want
sV = (0:1:50);% define desired frequency
[WW,SS] = meshgrid(wV,sV);
sysV = sys(SS,WW); % evaluate your transfer function in desired sV and wV
% plot
surf(WW,SS,abs(sysV))
xlabel('W')
ylabel('Freq')
zlabel('Magnitude')
Edit: Here is another way for your transfer function, but I think something is wrong with your derivation since the values blow up real when you evaluate:
syms ws s
G_vd =-(1.6872e+30*ws*(2.0616e+11*ws^2 - 1.5981e+19)*(- 1.0434e+209*s^14*ws^2 + 9.7644e+213*s^14*ws + 3.4484e+220*s^14 - 1.2991e+213*s^13*ws^2 + 1.2158e+218*s^13*ws + 4.2937e+224*s^13 - 5.2168e+209*s^12*ws^4 + 3.9142e+214*s^12*ws^3 + 6.8734e+220*s^12*ws^2 + 1.2884e+226*s^12*ws + 3.4203e+232*s^12 - 5.6241e+213*s^11*ws^4 + 4.8516e+218*s^11*ws^3 + 9.9349e+224*s^11*ws^2 + 9.4516e+229*s^11*ws + 2.8572e+236*s^11 - 1.0434e+210*s^10*ws^6 + 5.8925e+214*s^10*ws^5 + 3.3573e+220*s^10*ws^4 + 4.185e+226*s^10*ws^3 + 6.8393e+232*s^10*ws^2 + 3.2035e+237*s^10*ws + 1.131e+244*s^10 - 9.5051e+213*s^9*ws^6 + 7.2633e+218*s^9*ws^5 + 5.6111e+224*s^9*ws^4 + 3.0823e+230*s^9*ws^3 + 7.0634e+236*s^9*ws^2 + 9.3038e+240*s^9*ws + 4.8152e+247*s^9 - 1.0434e+210*s^8*ws^8 + 3.9566e+214*s^8*ws^7 - 1.3383e+219*s^8*ws^6 + 4.8276e+226*s^8*ws^5 + 3.4139e+232*s^8*ws^4 + 9.5864e+237*s^8*ws^3 + 2.2626e+244*s^8*ws^2 + 3.8015e+246*s^8*ws + 1.2478e+255*s^8 - 7.7621e+213*s^7*ws^8 + 4.8387e+218*s^7*ws^7 - 5.7637e+222*s^7*ws^6 + 3.5915e+230*s^7*ws^5 + 4.2122e+236*s^7*ws^4 + 2.7369e+241*s^7*ws^3 + 1.4076e+248*s^7*ws^2 + 2.6339e+249*s^7*ws + 2.0572e+257*s^7 - 5.2168e+209*s^6*ws^10 + 1.0103e+214*s^6*ws^9 - 3.5371e+220*s^6*ws^8 + 2.2567e+226*s^6*ws^7 + 3.4001e+232*s^6*ws^6 + 9.5471e+237*s^6*ws^5 + 6.907e+241*s^6*ws^4 + 9.913e+246*s^6*ws^3 + 3.7354e+255*s^6*ws^2 + 8.413e+254*s^6*ws + 2.891e+263*s^6 - 3.0095e+213*s^5*ws^10 + 1.2146e+218*s^5*ws^9 + 1.3223e+224*s^5*ws^8 + 1.7168e+230*s^5*ws^7 - 1.3395e+236*s^5*ws^6 + 2.6851e+241*s^5*ws^5 + 1.3718e+248*s^5*ws^4 + 2.9996e+249*s^5*ws^3 + 3.9942e+257*s^5*ws^2 + 2.5473e+257*s^5*ws + 4.5819e+265*s^5 - 1.0434e+209*s^4*ws^12 + 8.4668e+211*s^4*ws^11 - 6.9202e+220*s^4*ws^10 + 3.2845e+225*s^4*ws^9 + 6.818e+232*s^4*ws^8 + 3.146e+237*s^4*ws^7 - 2.2528e+244*s^4*ws^6 + 9.4169e+246*s^4*ws^5 + 3.7335e+255*s^4*ws^4 + 8.9376e+254*s^4*ws^3 + 2.891e+263*s^4*ws^2 + 4.474e+262*s^4*ws + 1.7485e+271*s^4 - 4.276e+212*s^3*ws^12 + 3.47e+215*s^3*ws^11 + 1.3494e+224*s^3*ws^10 + 2.6238e+229*s^3*ws^9 - 1.3454e+236*s^3*ws^8 + 8.7872e+240*s^3*ws^7 + 4.4564e+247*s^3*ws^6 + 1.2063e+249*s^3*ws^5 + 1.9823e+257*s^3*ws^4 + 2.6028e+256*s^3*ws^3 + 9.8906e+262*s^3*ws^2 + 8.3904e+264*s^3*ws + 2.7391e+273*s^3 - 3.4492e+220*s^2*ws^12 + 2.799e+223*s^2*ws^11 + 3.4125e+232*s^2*ws^10 - 1.8193e+235*s^2*ws^9 - 1.1279e+244*s^2*ws^8 + 3.3039e+246*s^2*ws^7 + 1.245e+255*s^2*ws^6 + 2.9442e+254*s^2*ws^5 + 9.7024e+262*s^2*ws^4 + 7.8861e+261*s^2*ws^3 + 2.5095e+270*s^2*ws^2 + 4.8895e+269*s^2*ws + 1.9905e+278*s^2 - 3.3148e+220*s*ws^12 + 2.6899e+223*s*ws^11 + 1.0516e+232*s*ws^10 + 2.0331e+237*s*ws^9 - 1.0373e+244*s*ws^8 + 6.8464e+248*s*ws^7 + 3.4325e+255*s*ws^6 - 6.7804e+256*s*ws^5 + 1.4597e+265*s*ws^4 - 4.3488e+264*s*ws^3 - 2.3319e+273*s*ws^2 + 7.6327e+271*s*ws + 3.1084e+280*s - 2.6732e+228*ws^12 + 2.1693e+231*ws^11 + 2.6488e+240*ws^10 - 1.4429e+243*ws^9 - 8.767e+251*ws^8 + 2.4141e+254*ws^7 + 9.6974e+262*ws^6 - 3.6803e+262*ws^5 - 1.497e+271*ws^4 + 4.8818e+269*ws^3 + 1.9883e+278*ws^2 + 2.9811e+273*ws + 1.2142e+282))/((1.9723e+81*ws^6 + 1.6586e+70*ws^5 - 1.3024e+93*ws^4 + 1.9498e+95*ws^3 + 2.1636e+104*ws^2 + 7.694e+89*ws - 3.024e+112)*(1.8535e+158*s^15 + 2.3223e+162*s^14 + 9.2675e+158*s^13*ws^2 + 1.8385e+170*s^13 + 1.0063e+163*s^12*ws^2 + 1.5501e+174*s^12 + 1.8535e+159*s^11*ws^4 + 5.5157e+170*s^11*ws^2 - 4.8956e+152*s^11*ws + 6.0797e+181*s^11 + 1.703e+163*s^10*ws^4 + 4.6214e+174*s^10*ws^2 - 8.0497e+160*s^10*ws + 2.6358e+185*s^10 + 1.8535e+159*s^9*ws^6 + 6.1289e+170*s^9*ws^4 - 9.7911e+152*s^9*ws^3 + 1.418e+182*s^9*ws^2 - 5.0127e+164*s^9*ws + 6.7076e+192*s^9 + 1.3934e+163*s^8*ws^6 + 4.607e+174*s^8*ws^4 - 4.0254e+160*s^8*ws^3 + 7.7101e+185*s^8*ws^2 - 2.0666e+183*s^8*ws + 1.6298e+195*s^8 + 9.2675e+158*s^7*ws^8 + 3.6774e+170*s^7*ws^6 + 6.0799e+181*s^7*ws^4 - 1.1547e+165*s^7*ws^3 + 2.0084e+193*s^7*ws^2 - 7.7771e+185*s^7*ws + 1.5541e+201*s^7 + 5.4188e+162*s^6*ws^8 + 1.5552e+174*s^6*ws^6 + 2.0123e+161*s^6*ws^5 + 7.4863e+185*s^6*ws^4 - 5.9779e+183*s^6*ws^3 + 3.717e+195*s^6*ws^2 - 3.6532e+193*s^6*ws + 3.677e+203*s^6 + 1.8535e+158*s^5*ws^10 + 1.8385e+170*s^5*ws^8 + 9.7911e+152*s^5*ws^7 - 6.07e+181*s^5*ws^6 - 8.0586e+164*s^5*ws^5 + 2.0074e+193*s^5*ws^4 - 1.0659e+186*s^5*ws^3 + 1.5545e+201*s^5*ws^2 - 5.7145e+195*s^5*ws + 9.4011e+208*s^5 + 7.7411e+161*s^4*ws^10 + 2.43e+172*s^4*ws^8 + 2.0124e+161*s^4*ws^7 + 2.3803e+185*s^4*ws^6 - 5.7559e+183*s^4*ws^5 + 2.6341e+195*s^4*ws^4 - 3.6377e+193*s^4*ws^3 + 1.22e+203*s^4*ws^2 - 5.3887e+200*s^4*ws + 2.2066e+211*s^4 + 6.1275e+169*s^3*ws^10 + 4.8956e+152*s^3*ws^9 - 4.0486e+181*s^3*ws^8 - 1.5239e+164*s^3*ws^7 + 6.6943e+192*s^3*ws^6 + 1.6657e+185*s^3*ws^5 + 5.2167e+200*s^3*ws^4 + 1.0076e+193*s^3*ws^3 + 1.3493e+208*s^3*ws^2 - 8.4161e+202*s^3*ws + 1.0712e+216*s^3 + 4.8461e+171*s^2*ws^10 + 4.0248e+160*s^2*ws^9 - 3.1534e+183*s^2*ws^8 - 1.8447e+183*s^2*ws^7 + 5.4181e+194*s^2*ws^6 + 3.6831e+193*s^2*ws^5 + 1.1917e+203*s^2*ws^4 - 1.0772e+201*s^2*ws^3 - 1.148e+211*s^2*ws^2 - 3.2874e+204*s^2*ws + 2.5068e+218*s^2 + 4.7489e+177*s*ws^10 + 3.795e+160*s*ws^9 - 3.1449e+189*s*ws^8 + 4.548e+185*s*ws^7 + 5.2104e+200*s*ws^6 + 5.7246e+195*s*ws^5 - 8.046e+208*s*ws^4 - 8.4161e+202*s*ws^3 + 1.0678e+216*s*ws^2 - 4.9815e+197*s*ws + 1.9579e+220*s + 3.7101e+179*ws^10 + 3.12e+168*ws^9 - 2.45e+191*ws^8 + 3.6677e+193*ws^7 + 4.0703e+202*ws^6 - 5.3837e+200*ws^5 - 6.2858e+210*ws^4 - 3.2874e+204*ws^3 + 8.3493e+217*ws^2 - 1.2972e+199*ws + 5.0985e+221));
G = matlabFunction(G_vd);
G(0,1) % s= 0, w =1
wV = 0.6:0.05:1.6; % define w values you want
sV = logspace(0,5,1e2)*1i;% define desired frequency
[WW,SS] = meshgrid(wV,sV);
sysV = G(SS,WW); % evaluate your transfer function in desired sV and wV
% plot
surf(WW,abs(SS),abs(sysV))
xlabel('W')
ylabel('Freq')
zlabel('Magnitude')
2 个评论
Aquatris
2024-3-26
I was getting real values with my example because I was taking the magnitude of the calculated values via the abs() function, which is plotted in the magnitude plot when you call the bode command. The phase, which can be found by the angle() command, is the 2nd plot you get with bode() function.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!