画伯德图及相位、幅值裕度

 

 

 s域:

无滞后:

num=[122.0501]

den=[0.8190 1]

g=tf(num,den);

margin(g);

grid on;

有滞后:

>> num=[106.9389];

>> den=[0.176 1];

>> g=tf(num,den,'iodelay',0.088)

                            106.9

  exp(-0.088*s) * -----------

                         0.176 s + 1

Continuous-time transfer function.

>> margin(g);

>> grid on;

z域:

Ts=0.1

dnum=[1]

dden=[1,-1]

Zk=tf(dnum,dden,Ts)

margin(Zk)

 

 

转载于:https://www.cnblogs.com/litthorse/p/8946806.html

### 使用MATLAB绘制波特并显示裕度相角裕度MATLAB中,可以通过`bode`函数来绘制系统的波特,并通过`margin`函数计算并显示系统的裕度相角裕度。 #### 绘制波特 为了创建一个传递函数模型并绘制其波特,可以使用如下代码: ```matlab % 定义传递函数 sys = tf([1, 2], [1, 4]); % 设置Bode选项 op = bodeoptions; op.FreqUnits = 'Hz'; op.PhaseWrapping = 'on'; % 绘制波特 figure; bode(sys, op); ``` 这段代码定义了一个简单的二阶系统 `sys` 并设置了频率单位为赫兹以及开启了相位包裹功能[^3]。接着调用了 `bode()` 函数来展示该系统的频域响应特性表。 #### 显示裕度相角裕度 要获取系统的稳定边界信息即所谓的相对稳定性指标,则需借助于 `margin()` 命令。此命令不仅可以返回这些数还可以直接标注到已有的伯德图之上以便直观观察: ```matlab % 计算并显示裕度相角裕度 [magMargin, phaseMargin, wMagMargin, wPhaseMargin] = margin(sys); disp(['Magnitude Margin (dB): ', num2str(magMargin)]); disp(['Phase Margin (degrees): ', num2str(phaseMargin)]); hold on; margin(sys); % 将结果叠加至现有形窗口内 grid on; title('Bode Diagram with Margins'); xlabel('Frequency (rad/s)'); ylabel({'Magnitude (dB)', 'Phase (deg)'}); legend('System Response', 'Location', 'Best') ``` 上述脚本会先求得具体的度与相位安全余量再打印出来供查阅;之后再次呼叫 `margin()` 方法使得这两个重要参数能在之前生成的像中标记清楚可见[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值