f分布表完整图a=0.01_自动控制原理2.2.2传递函数零极点,零点如何影响输出响应曲线...

2.传递函数零点和极点

传递函数分子多项式和分母多项式经因式分解后可写为如下形式:

5de069ca463de66f25231702836b24a3.png

Zi是分子多项式零点,称为传递函数零点,Pj是分母多项式零点,称为传递函数极点。系数K*=b0/a0称为传递函数系数或根轨迹增益。

比较传递函数的一般表达式:

e6ef37f9e8ff69e0a4c5225479c718f3.png

可知,根轨迹增益是分子和分母代数方程中最高阶项对应的系数比值;

在复数平面上表示传递函数零点和极点的图形,称为传递函数的零极点分布图。在图中一般用O表示零点,用X表示极点;通过研究零极点分布图可以分析任意参数变化所对应的系统性能指标。

传递函数的分子和分母多项式经因式分解后也可以写为如下因式连乘积形式:

ca3b56795eb3c685f68f7579bea47c14.png

上式中,一次因子对应于实数零极点,二次因子对应于共轭复数零极点,τ和T为时间常数,ζ为阻尼比。

定义传递函数系数K为:

2c5d2b37c5332720a81e58b6f4b679a2.png

可知,分子分母分解为时间常数形式,增益是分子和分母代数方程中零阶项对应的比值;

这里注意到,二次因子对应的共轭复数零极点的时间常数形式,与弹簧和RLC系统获得二阶微分方程很相似:

a2ac84b41fecabdd982e3cff769b06f4.png

把弹簧阻尼系统的二阶微分方程改写为如下形式:

b9e4ba637f1d353b6aa7a17e1239f936.png

可知:

2ba5e911642ddcababb17237b3549a55.png

二阶系统的标准形式中,时间τ与质量M呈现正相关性,质量M越大时间常数越大。从惯性原理的角度考虑,质量越大,惯性越大,物体运动加速度越小,震荡频率越低,时间常数就越大;

阻尼比ζ与阻尼系数f呈现正相关性,阻尼系数越大,阻尼比ζ越大。

阻尼比ζ与质量M呈现负相关性,当f一定时,质量M越大,阻尼比ζ越小。这个关系可以从惯性的角度理解,质量M大,说明惯性大,对于同样大小的弹簧阻尼系数f,惯性越大的物体,在相等的时间内,使其由运动到停止所需要的弹簧阻尼系数f应该更大,即阻尼比ζ应该更大,而当弹簧阻尼系数f不变的情况下,惯性越大的物体由运动到停止所需要的时间更长,等效为阻尼比ζ相对于更大质量M来说产生的使物体从运动到停止的单位时间相对阻力更小。

传递函数极点和零点对输出的影响:

传递函数的极点就是微分方程的特征根,因此它们决定了所描述系统的自由运动模态。

设某系统传递函数为:

e5d2ca48cdeae20caa57e6abc731e327.png

可知,极点p1=-1,p2=-2,零点z1=-3.

自由运动模态为e-t和e-2t。当输入r(t)=r1+r2e-5t时,可求出系统的零状态响应为:

0ddef38767f13e49f99e2af8b5e90cc1.png

第一项输出值为:

170676eda64b96a93193d103b8dcac41.png

第二项输出值为:

ffcd142d1f6c63aa50758826e02dcf2d.png

把两个输出值进行叠加获得两个输入量的输出响应:

a0ec6da83836ea4fb16e61880991ef35.png

上式中前一项包含了输入量的模态,后一项包含了极点-1和-2产生的自由运动模态;

两个不同的输入函数都形成了自由运动模态,说明自由运动模态是系统固有的成分,与输入函数形式无关;但是,如果没有输入量,也就不会产生自由模态,因此,可以认为自由模态是由输入函数激发而形成的。

传递函数的零点不形成自由模态,但影响着各个自由模态在输出响应中的模态系数。

设两个极点相同零点不同的传递函数:

a4bdbbcb3d5479510d225b71d99590ec.png

极点都是-1,-2,零点分别为-0.5和-1.33.

求传递函数的单位阶跃响应:

f92a53036f0a76c2da1ce2a3ce1ebb87.png

上式说明,两个不同零点的系统,相同的自由模态对应的模态系数不相同。

在极点相同情况下,零点接近原点且距离两个极点的距离都比较远,对应的两个模态的系数大,反之,零点远离原点且距离两个极点距离较近,对应的两个模态的系数小;

ee0a2a73f781036bd262d8ebc4c2c154.png
683205d73ce18197676073c268dc47ab.png

上图为两个输出响应曲线

极点靠近原点,自由模态衰减慢,极点远离原点,自由模态衰减快;当零点位于两个极点之间时,运动模态系数符号都为负,系统不会产生过冲。

当零点位于两个极点右侧时,靠近零点的自由运动模态系数为正,由于极点靠近原点,衰减速度慢,所以在曲线上表现为过冲衰减。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在PaddlePaddle 2.2.2中,可以使用`paddle.nn.utils.clip_grad_norm_()`函数来实现梯度裁剪。具体步骤如下: 1. 导入函数:`from paddle.nn.utils import clip_grad_norm_`。 2. 在模型的反向传播中计算梯度,并使用`backward()`函数将梯度传递给前一层。 3. 使用`clip_grad_norm_()`函数对梯度进行裁剪。该函数接受两个参数:梯度列和最大梯度范数。例如,如果希望将梯度的范数限制在`max_norm`以内,可以使用以下代码: ``` grads = paddle.grad(loss, parameters) clip_grad_norm_(grads, max_norm) ``` 其中,`loss`是模型的损失函数,`parameters`是需要更新的模型参数,`max_norm`是最大梯度范数。 4. 最后,使用优化器更新模型参数。例如,可以使用`Adam`优化器: ``` optimizer = paddle.optimizer.Adam(parameters, learning_rate=lr) optimizer.step() ``` 完整的梯度裁剪示例代码如下: ``` import paddle # 导入clip_grad_norm_函数 from paddle.nn.utils import clip_grad_norm_ # 定义模型和损失函数 class MyNet(paddle.nn.Layer): def __init__(self): super(MyNet, self).__init__() self.fc = paddle.nn.Linear(10, 1) def forward(self, x): return self.fc(x) net = MyNet() loss_fn = paddle.nn.MSELoss() # 定义优化器和学习率 parameters = net.parameters() lr = 0.01 optimizer = paddle.optimizer.Adam(parameters, learning_rate=lr) # 训练模型 for epoch in range(10): for batch_id, data in enumerate(train_loader()): x_data, y_data = data x = paddle.to_tensor(x_data) y = paddle.to_tensor(y_data) y_pred = net(x) loss = loss_fn(y_pred, y) loss.backward() # 使用clip_grad_norm_函数对梯度进行裁剪 grads = paddle.grad(loss, parameters) clip_grad_norm_(grads, max_norm=1.0) optimizer.step() optimizer.clear_grad() print('epoch %d, loss %.4f' % (epoch, loss.numpy())) ``` 在上面的代码中,我们使用`clip_grad_norm_()`函数将梯度范数限制在1.0以内。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值