参考:MATLAB的图像上怎么标记数据点?&Text函数精讲
text(x,y,txt)
该函数中 x,y 要添加的内容的位置实际上是指坐标系中的坐标点,要添加的内容从此点显示。txt 是你想添加的文本(包括图形、文本、符号、数字等)。 不常用:箭头文字标注:
text(pi,0,'\leftarrow sin(\pi)') %\leftarrow表示左箭头, 后面sin(pi)为标注内容 text(2,8,'A Simple Plot','Color','red','FontSize',14) 具有颜色大小的字体的%标记位置 str = {
'A simple plot','from 1 to 10'}; text(5,7,str) %标记字符串,分行
常用:图形标注
xt = [2 9]; yt = [2 9]; str = {
'o','*'}; %圆圈 text(xt,yt,str)添加两个图线上数据点的标记% text(6,6,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold') %添加数据标记,红色,中间,字体加重
text(x,y,z,txt) %用法是一样的,但这是在三维绘图中添加标记内容。
参考:
坐标轴
set(0,'defaultfigurecolor','w') xlabel('名字') : 加x轴名称 ylabel('名字') : 加y轴名称 title('名字') :在图像上方加名字
窗口与图形
figure(2) %是当前窗口 subplot(3,2,3) % (3,2)表示一个窗口有m*n个窗,3行2列,p为当前操作窗口,从左往右数
2019b是的,双击波特图可以改变Hz,
标注
clear x=0:pi/50:pi; y=cos(2*x); y2=sin(x).*sin(6*x);
plot(x,y,'r*',x,y2,'b-')
grid on
title('曲线y=cos(2x)与曲线sin(x)sin(6x)')
xlabel('x轴')
ylabel('y轴')
gtext('y1=cos(2x)')
gtext('y2=sin(x)sin(6x)')
legend('y1=cos(2x)','y2=sin(x)sin(6x)')
参考:频率响应分析–伯德图(matlab中bode函数的使用)、
附录
1、零极点传递函数
z = []; % 零点 p = [-5*10^3 -10^5]; % 极点 k = 100; %
增益 G = zpk(z, p, k) % 求传递函数 bode(G) margin(G) set(0,'defaultfigurecolor','w') xlabel('Frequency') % 加x轴名称 ylabel('Margin') % 加y轴名称 title('Current Control') %在图像上方加名字
可用 figure1
P=bodeoptions
% P.Grid='on'
% P.XLim={
[10 40000]}
% P.XLimMode={
'manual'}
P.FreqUnits='Hz'
%% currentcontrol
z = [-10^4]; % 零点
p = [-5*10^3 -10^5]; % 极点
k = 317*p(1)*p(2)/z(1); % 增益
G = zpk(z, p, k) % 求传递函数
%margin(G)
set(0,'defaultfigurecolor','w')
hold on
%% voltage tcontrol
z = [-10^5]; % 零点
p = [-3*10^3 -3*10^3]; % 极点
k = 317*p(1)*p(2)/z(1); % 增益
G1 = zpk(z, p, k) % 求传递函数
bode(G,'k.',G1,'k-') %'k*',w)
%margin(G1)
set(0,'defaultfigurecolor','w')
grid on
legend('电流模式控制','电压模式控制')
figure2
一些个CM相关的程序
理想cap和非理想cap
C=3.64*10^(-12)
RX=42.9*10^3
Cp=4.6*10^(-12)
Av=2000
%Cidel=40*10^(-12)
%
num =[1]; % 分子多项式的系数
den = [Cp 0]; % 分母多项式的系数
Cp = tf(num, den)
% 理想的环路滤波
num =[RX*C, 1]; % 分子多项式的系数
den = [C*11 0]; % 分母多项式的系数
G_idel_Esr = tf(num, den)
num =[1]; % 分子多项式的系数
den = [11*C 0]; % 分母多项式的系数
G_idelcap = tf(num, den)
%非理性环路滤波
num =[RX*C, 1]; % 分子多项式的系数
num=10^7*num
den = [RX*C*Av 1]; % 分母多项式的系数
G_noidel_Esr = tf(num, den)
G_idel_Esr_Cp=G_idel_Esr+Cp
%
bode(G_noidel_Esr,'k.')
G_noidel_Esr
hold on
bode(G_idel_Esr,'k-')
%bode(G_idel_Esr,G_noidel_Esr,G_idelcap)
%bode(G_idel_Esr,'k-.',G_noidel_Esr,'^-')
hold on
%bode(G_idelcap,'s-')
%legend('理想特性','非理性特性','理想电容')
legend()
legend('非理想特性','理想特性')
CAPM
**C=24.47*10^(-12) %^pF
RY=1.7668*10^(9)
RY=31.47*10^(3)
gm=4*14*10^(-6)
Av=gm*RY
Rcomp=RY+1/gm
Ccomp=Av*C
rout=149.643*10^(9)
gout=1/rout
Av_gout=Av=gm*(RY*rout/(rout+RY))
%分析
num =[1]; % 分子多项式的系数
den = [C 0]; % 分母多项式的系数
Gcp= tf(num, den)
G_DC=Gcp+RY
% AC分析-理想
num =[1]; % 分子多项式的系数
den = [Ccomp 0]; % 分母多项式的系数
Gcp= tf(num, den)
G_AC=Gcp+Rcomp
%加了rout以后
num =[1]; % 分子多项式的系数
den = [Ccomp 0]; % 分母多项式的系数
Gcp= tf(num, den)
G_AC=Gcp+Rcomp
bode(G_AC,'k.')
hold on
%bode(G_DC,'k-')
%legend()**
RO_CM-基于改进后
C=24.47*10^(-12) %^pF
RY=1.7668*10^(9)
RY=31.47*10^(3)
gm=4*14*10^(-6)
Av=gm*RY
Rcomp=RY+1/gm
Ccomp=Av*C
%rout=149.643*10^(9)
rout=590*10^(10)
%% AC分析-理想
num =[1]; % 分子多项式的系数
den = [Ccomp 0]; % 分母多项式的系数
Gcp= tf(num, den)
G_AC=Gcp+Rcomp
bode(G_AC,'k-')
hold on
%% 零点
num =[Av*RY*C 0]; % 分子多项式的系数
den = [RX*CP 1]; % 分母多项式的系数
Gz1=tf(num, den)
Gz1=Gz1+1/RX+1/rout
%分析
G_vaDCrout=1/Gz1
G_i=(1-G_vaDCrout)/RX
G_R=1/G_i
bode(G_R,'k.')
hold on
%bode(G_DC,'k-')
legend()
%%
legend('理想特性','考虑rout')
matlab 如何循环
for a= 10:20
fprintf('value of a : %d\n',a)
end
提取bode图关键数据
[z,p,K] = tf2zp(num,den)
[z,p,K] = tf2zp(G)
[z,p,k] = zpkdata(Gzpk) %返回 cell 类型的零极点及增益
[z,p,k] = zpkdata (Gzpk,,'v') %返回向量形式的零极点及增益
zpk(G_il_vc)
[z,p,k] = zpkdata(G_il_vc,'v') %返回 cell 类型的零极点及增益
复数处理
x = complex(1,3)
real(x)% 取复数的实部的函数
imag(x)% 取复数的虚部的函数
abs(x)% 求复数的模的函数
conj(x)% 求复数的共轭复数
angle(x) % 求复数的辐角
abs(p(1))
abs(p(2))
S-VoLTAGE
不知道Vslope与VIN比值,Ri与R的比值。
Ts=1/400*10^(3)
L=10*10^(-6)
V=10
Vout=5
C=44*10^(-6)
R=5
D=Vout/V
D1=1-D
m2=V/L
m1=m2*(1-D)/D
mc=0
%mc=1*10^3
wn=pi/Ts
Qz=-2/pi
Fg=D*D*Ts/2/L
Fv=(1-2*D)*Ts/2/L
Fm=(1/(mc+m1))
a=1+Fm*V/D/R+Fm*Fv*V/D
b=1+R*C*Fm*V/D/L
Gco=V/D*Fm/a
wc=1/sqrt(L*C)*sqrt(a)
Qc= R*sqrt(C/L)*a/ b
Rf1=511*10^3
Rf2=105*10^3
C3=75*10^(-12)
%% appendeix
%电流环路
num =[R*C 1]; % 分子多项式的系数
den = [L*L*R L/R 1]; % 分母多项式的系数
G_powerstage_id=tf(num, den)
%电流采样
num =[1 0]; % 分子多项式的系数
den = [wn*Qz]; % 分母多项式的系数
G1=tf(num, den)
num =[1 0 0]; % 分子多项式的系数
den = [wn*wn]; % 分母多项式的系数
G2=tf(num, den)
G_current_sample=G1+G2+1
%% 电压环路建模-简化版
Ri=2000;
wp=1/R/C
wl=V/Vslppe
z = []; % 零点
p = [wp wl]; % 极点
k = R/Ri*p(1)/z(1); % 增益
G_voltuge_sample=zpk(z, p, k)
%% 电压采样环路Hc
% Rf_Parell=Rf1*Rf2/(Rf1+Rf2)
% k=Rf2/(Rf1+Rf2)
% wp1=1/C3/Rf_Parell
% wz1=1/Rf1/C3
% z = [-wz1]; % 零点
% p = [-wp1]; % 极点
% k = k*p(1)/z(1); % 增益
% G_votage_fdb = zpk(z, p, k) % 求传递函数
% [z,p,k] = zpkdata (G_votage_fdb,'v') %返回向量形式的零极点及增益
%% 引入
%% plot电压
% figure(1)
% bode(G_voltuge_sample,'k.')
% hold on
% bode(G_votage_fdb,'k-')
% hold on
%% plot 电流
% figure(2)
% G_il_vc=m1/(mc+m1)/Ts*L/(1-D)/R*G_powerstage_id*G_current_sample
% G_il_vc_nosample=m1/(mc+m1)/Ts*L/(1-D)/R*G_powerstage_id
% bode(G_il_vc_nosample,'k-')
% hold on
% bode(G_il_vc,'k.')
% hold on
% zpk(G_il_vc)
% [z,p,k] = zpkdata(G_il_vc,'v') %%返回 cell 类型的零极点及增益
% %bode(G_current_sample)
% %bode(G_il_vc,'k-',G_current,'k.')
% %(G_current,'k.')
%
% legend('不考虑电流采样','考虑电流采样')
%% 电压环路
G_voltuge_sample
zpk(G_voltuge_sample)
[z,p,k] = zpkdata (G_voltuge_sample,'v') %返回向量形式的零极点及增益
S_buck
Ts=1/400*10^(3)
L=10*10^(-6)
V=10
Vout=8
C=44*10^(-6)
R=5
D=Vout/V
D1=1-D
m2=V/L
m1=m2*(1-D)/D
mc=(1-1/2/0.9)*m2
%mc=1*10^3
wn=pi/Ts
Qz=-2/pi
Fg=D*D*Ts/2/L
Fv=(1-2*D)*Ts/2/L
Fm=(1/(mc+m1))
a=1+Fm*V/D/R+Fm*Fv*V/D
b=1+R*C*Fm*V/D/L
Gco=V/D*Fm/a
wc=1/sqrt(L*C)*sqrt(a)
Qc= R*sqrt(C/L)*a/ b
Rf1=511*10^3
Rf2=105*10^3
C3=75*10^(-12)
%% appendeix
%电流环路
num =[R*C 1]; % 分子多项式的系数
den = [L*L*R L/R 1]; % 分母多项式的系数
G_powerstage_id=tf(num, den)
%电流采样
num =[1 0]; % 分子多项式的系数
den = [wn*Qz]; % 分母多项式的系数
G1=tf(num, den)
num =[1 0 0]; % 分子多项式的系数
den = [wn*wn]; % 分母多项式的系数
G2=tf(num, den)
G_current_sample=G1+G2+1
%% 电压环路建模
num =[1 0]; % 分子多项式的系数
den = [wc*Qc]; % 分母多项式的系数
G1=tf(num, den)
num =[1 0 0]; % 分子多项式的系数
den = [wc*wc]; % 分母多项式的系数
G2=tf(num, den)
G_voltuge_sample=Gco/(G1+G2+1)
%% 电压采样环路Hc
% Rf_Parell=Rf1*Rf2/(Rf1+Rf2)
% k=Rf2/(Rf1+Rf2)
% wp1=1/C3/Rf_Parell
% wz1=1/Rf1/C3
% z = [-wz1]; % 零点
% p = [-wp1]; % 极点
% k = k*p(1)/z(1); % 增益
% G_votage_fdb = zpk(z, p, k) % 求传递函数
% [z,p,k] = zpkdata (G_votage_fdb,'v') %返回向量形式的零极点及增益
%% 引入补偿网络
GM=4*14*10^(-6)
ro=129.64*10^(9)
Av=GM*ro % Y运放增益
Rcomp=28.9306*10^(3)
RX=42.9*10^3
RY=
Ccomp= %
%% plot电压
figure(1)
bode(G_voltuge_sample,'k-')
hold on
%bode(G_votage_fdb,'k-')
hold on
%% plot 电流
% figure(2)
% G_il_vc=m1/(mc+m1)/Ts*L/(1-D)/R*G_powerstage_id*G_current_sample
% G_il_vc_nosample=m1/(mc+m1)/Ts*L/(1-D)/R*G_powerstage_id
% bode(G_il_vc_nosample,'k-')
% hold on
% bode(G_il_vc,'k.')
% hold on
% zpk(G_il_vc)
% [z,p,k] = zpkdata(G_il_vc,'v') %%返回 cell 类型的零极点及增益
% %bode(G_current_sample)
% %bode(G_il_vc,'k-',G_current,'k.')
% %(G_current,'k.')
%
% legend('不考虑电流采样','考虑电流采样')
%% 电压环路
G_voltuge_sample
zpk(G_voltuge_sample)
[z,p,k] = zpkdata (G_voltuge_sample,'v') %返回向量形式的零极点及增益
feadback
太粗放了,要求精炼。