基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图

基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图

参考论文: 高效连续型射频功率放大器研究

假期就要倒计时啦,估计是寒假假期的最后一个博客,希望各位龙年工作顺利,学业有成。

全部工程下载:基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图-ADS工程
不着急的穷学生和穷工程师可以私信我,打6-8折哦!

如果硕士毕业设计用到双输入,也算是比较深入的了,一般都是作为压轴的那一章。

作者我复现了七天,数字双输入的超宽带Doherty实际实现是有一定门槛的,需要对每个输入支路的功率、相位进行扫描,在此进行复现并给出模板、画图代码(虽然我现在不清楚实际测量的时候怎么搞,估计要写个脚本查表吧)。


使用几个频点的数据来近似说明整体的数据:
在0.7-3.1GHz的范围内,饱和输出功率为43.31-44.78dBm,饱和输出增益为10.37-12.24dB,饱和输出效率为60.5-74.07%,回退6dB效率为45.43%-61.5%。


前置文章:单输入Doherty 功率放大器的极限带宽分析(含Matlab分析代码),数字双输入的就是为解决此问题的,。

类似的双输入架构:双输入宽带混合 Doherty-Outphasing功率放大器设计(2021.02 MTT)-从理论到ADS版图

目录

    • 基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图
    • 0、实现效果展示
      • 0.1、版图展示
      • 0.2、扫描的结果
      • 0.3、实现的效果
    • 1、双输入的核心理论
      • 1.1、提要
      • 1.2、理论推导
      • 1.3、所需的约束
    • 2、基于ADS与CGH40010F的验证
    • 3、系统仿真和扫描
      • 3.1、系统仿真和扫描原理图
      • 3.2、使用Matlab提取数据
      • 3.3、画图分析的Matlab代码
    • 4、运行环境

0、实现效果展示

基于CGH40010F

这个博客几乎就是对“高效连续型射频功率放大器研究”论文中数字双输入部分的复现,是在原来的基础上进行了一的OPTIM,主要是原来论文里面的微带线参数都是保留一位小数,精度可能不太够

0.1、版图展示

整体的版图如下,由于是双输入的,有两个输入的端口
在这里插入图片描述

0.2、扫描的结果

数字双输入的超宽带Doherty实际实现是有一定门槛的,需要对每个输入支路的功率、相位进行扫描,此处Pin1 的扫描范围为6-30dBm,Pin2 的扫描范围为6-30dBm,相位差的扫描范围为0-180,最后扫描模板得到的结果如下(例如2700MHz),一般都会对其取包络(使用Matlab脚本提取,后面介绍):
在这里插入图片描述

0.3、实现的效果

因为需要对每个频率下的参数进行扫描,所以取几个频率点的数据进行参考,使用几个频点的数据来近似说明整体的数据:
在0.7-3.1GHz的范围内,饱和输出功率为43.31-44.78dBm,饱和输出增益为10.37-12.24dB,饱和输出效率为60.5-74.07%,回退6dB效率为45.43%-61.5%。

使用Matlab脚本提取包络,700MHz效率与增益结果如下所示,在700MHz,实现了44.78dBm的饱和输出功率,12.24dB的饱和增益,饱和效率为72.2%,回退6dB效率为50.13%
在这里插入图片描述

使用Matlab脚本提取包络,1500MHz效率与增益结果如下所示,在1500MHz,实现了43.38dBm的饱和输出功率,10.37dB的饱和增益,饱和效率为60.5%,回退6dB效率为61.5%
在这里插入图片描述
使用Matlab脚本提取包络,2300MHz效率与增益结果如下所示,在2300MHz,实现了44.31dBm的饱和输出功率,11.3dB的饱和增益,饱和效率为70.48%,回退6dB效率为45.43%
在这里插入图片描述
使用Matlab脚本提取包络,3100MHz效率与增益结果如下所示,在3100MHz,实现了43.3dBm的饱和输出功率,11.68dB的饱和增益,饱和效率为74.07%,回退6dB效率为49.91%
在这里插入图片描述

1、双输入的核心理论

1.1、提要

单输入Doherty 功率放大器的极限带宽分析(含Matlab分析代码)中分析了单输入DPA的极限带宽。在传统单输入DPA中,存在固定的载波功放和固定的峰值功放,因此在回退点的等效电路是固定的(峰值功放视为开路),如:
在这里插入图片描述
但是,如果我们能够自定义输入功率,从而自定义哪个功放充当峰值功放和载波功放,就可以在回退时获得两种工作模式(相当于有两种电路了,自然带宽可以拓展):
在这里插入图片描述

1.2、理论推导

上图中, θ 1 \theta_1 θ1 θ 2 \theta_2 θ2都和频率相关,所提及的角度是在f0出的电长度。(先简单回顾一下一个基础知识,在 f 0 f_{0} f0处电长度为180,那么在x f 0 f_{0} f0处其等效电长度为x180。例如,在在 f 0 f_{0} f0处电长度为180,那么在2 f 0 f_{0} f0处其等效电长度为2180=360。

为了简便起见,首先假设在某一工作频点处 θ 1 = 90 \theta_1=90 θ1=90,观察 θ 2 \theta_2 θ2的取值和带宽的关系(下面都使用Matlab脚本分析画图得到,分别对两种模式进行分析):
在这里插入图片描述
直观一些,可以看到无论 θ 2 \theta_2 θ2取何值,双输入 Doherty 功放在归一化频率f = 2处效率恶化严重。此时,工作在模式 I 下的双输入 Doherty 功放只有在f为 1 或者 3 附近具有良好的回退效率(红色鲜艳)。

可以看出,在工作模式 II 下,当 θ 2 \theta_2 θ2约为45°时,双输入 Doherty 功放在归一化频率1.3-2.6 之间可以获得良好的回退效率;而当 θ 2 \theta_2 θ2为其他值时,双输入 Doherty 功放只能在某一小频率区间获得良好的回退效率。

在这里插入图片描述
分析代码:

clc
clear
close all

Ropt=1;
% 相对带宽表达式
f0=1;
f_arrary=f0*linspace(0.6, 3.3, 99);
theta_1=90;
theta_2=0:5:180;

figure(1)
subplot(2,1,1)
[X,Y] = meshgrid(f_arrary,theta_2);
for i=1:1:length(theta_2)
    for j=1:1:length(X)
        Z(i,j)=DPA_Effi_Cal_v2(X(i,j),90,Y(i,j));
    end
end
surf(Y,X,Z);
title('双输入 Doherty 功放工作在模式 I')
colormap jet%jet是一种配色方案,还有其他方案如winter,summer····见help colormap
colorbar
xlabel('\theta_2');
ylabel('归一化频率');
zlabel('Efficiency(%)');

subplot(2,1,2)
[X,Y] = meshgrid(f_arrary,theta_2);
for i=1:1:length(theta_2)
    for j=1:1:length(X)
        Z(i,j)=DPA_Effi_Cal_v2(X(i,j),Y(i,j),90);
    end
end
surf(Y,X,Z);
title('双输入 Doherty 功放工作在模式 II')
colormap jet%jet是一种配色方案,还有其他方案如winter,summer····见help colormap
colorbar
xlabel('\theta_2');
ylabel('归一化频率');
zlabel('Efficiency(%)');

1.3、所需的约束

θ 1 \theta_1 θ1在f1处电长度为90°, θ 2 \theta_2 θ2在f1处电长度为45°,延时的变化符合微带线基本特性 θ 1 \theta_1 θ1在f2处电长度为2 * 90°, θ 2 \theta_2 θ2在f2处电长度为2 * 45°,以此类推)。

此外,TL1和TL2的阻抗要是Ropt,B类最佳阻抗。

负载RL的阻抗为Ropt/2,需要使用后匹配网络匹配到50欧姆。

2、基于ADS与CGH40010F的验证

作者论文中参数都是有效的,我是在原来的基础上进行了一的OPTIM,主要是原来论文里面的微带线参数都是保留一位小数,精度可能不太够

作者Ropt选的是30欧姆,漏极电压28V,栅极电压-3.3V。

2.1 θ 1 \theta_1 θ1电长度和阻抗的约束实现

Output/OutputSub_TL2原理图
微带线TL2的在f1处电长度为90°,阻抗为Ropt,延时的变化符合微带线基本特性 θ 1 \theta_1 θ1在f2处电长度为2 * 90°,以此类推)。构建优化:
在这里插入图片描述
查看阻抗和延时的实现效果,比较好:
在这里插入图片描述

2.2 θ 2 \theta_2 θ2电长度和阻抗的约束实现

Output/OutputSub_TL1原理图
微带线TL1的在f1处电长度为45°,阻抗为Ropt,延时的变化符合微带线基本特性 θ 2 \theta_2 θ2在f2处电长度为2 * 45°,以此类推)。构建优化:
在这里插入图片描述
查看结果,差的不多:
在这里插入图片描述

2.3 后匹配网络阻抗匹配约束

Output/OutputSub_PMN
理论负载是Ropt/2,需要把Ropt/2变换到50欧姆,也就是要把15欧姆变换到50欧姆,构建优化:
在这里插入图片描述
匹配良好:
在这里插入图片描述

2.4 输入匹配设计

Input/InputMatch_Sub

输入匹配要求不高,我直接用作者提供的电路,需要自己设计的可以使用源牵引方法,参考:番外5:ADS功放设计之负载牵引与源牵引、ADS使用记录之AB类功放设计。

电路图如下:
在这里插入图片描述
匹配效果还可以:
在这里插入图片描述

3、系统仿真和扫描

3.1、系统仿真和扫描原理图

Test/HB1ToneGComp2swp_v1
双输入架构使用俩个输入端口,扫描的相位差为变量My_Delay:
在这里插入图片描述
Param1就是Pin1的输入功率,Param2就是Pin2的输入功率,My_Delay为扫描的相位差,RFfreq为当前的频率,需要自己设置:
在这里插入图片描述
运行得到结果,:
在这里插入图片描述

3.2、使用Matlab提取数据

把上面表格的数据导出为csv:
在这里插入图片描述
打开我提供的Matlab代码,修改名字为你的csv文件名,此外需要手动修改Mydelay为你ADS中所设的的延迟扫描参数,例如:
在这里插入图片描述

% 输入csv的名字
csv_name='3100.csv';
% 手动设定扫描延时
Mydelay=-180:5:0;

运行Matlab即可。
全部代码:
在这里插入图片描述
运行代码,可以得到效率、增益和所需的输入功率、延迟等信息(2700MHz):
在这里插入图片描述
作者也提供了输入功率、相位差数据,可以对比一下,其中两路的输入功率数据是高度一致的:
在这里插入图片描述

3.3、画图分析的Matlab代码

DPA_Effi_Cal_v2.m

function [effi] = DPA_Effi_Cal_v2(freq,theta_1,theta_2)
% theta是对于f0而言的,此处来计算在freq处的角度
theta_1=theta_1*freq/1;
theta_2=theta_2*freq/1;

Ropt=1;
RL=Ropt/2;
ZP_OPBO=Ropt./(1j*tand(theta_2));% 峰值负载为无穷
ZC_OPBO=1./(1/RL+1./ZP_OPBO);% 并联关系
ZCB=Ropt*(ZC_OPBO+1j*Ropt*tand(theta_1))./(Ropt+1j*ZC_OPBO.*tand(theta_1));% Zin计算
effi=78.54*real(ZCB)/(2*Ropt);% 计算效率,阻抗大于2Ropt被认为是饱和,效率为78.54
effi(effi>78.54)=78.54;
effi(isnan(effi))=78.54;
end

draw_data.m

clc
clear
close
% 输入csv的名字
csv_name='3100.csv';
data=readmatrix(csv_name);%csvread只能读取纯数据
% 手动设定扫描延时
Mydelay=-180:5:0;

%添加延时数据到data数组
repeat_times=length(data)/length(Mydelay);
Mydelay_data=[];
for ind=1:1:repeat_times
    Mydelay_data=[Mydelay_data Mydelay];
end
data(:,5)=Mydelay_data;

Pout_dbm=data(:,3);%提取输出功率数据
Pout_dbm_Draw_step=0.4;
Pout_dbm_Draw=min(Pout_dbm):Pout_dbm_Draw_step:max(Pout_dbm);

for ind=1:1:length(Pout_dbm_Draw)
    eval(['Pout_dbm_DataAll.data', num2str(ind), '= [];']);
end

% 获取每个输出功率为Pout_dbm_Draw附近的点数据
for ind=1:1:length(data)
    for j=1:1:length(Pout_dbm_Draw)
        if abs(data(ind,3)-Pout_dbm_Draw(j))<=Pout_dbm_Draw_step/2
            eval(['Pout_dbm_DataAll.data', num2str(j), '=[Pout_dbm_DataAll.data', num2str(j),';data(ind,:)];']);
        end
    end
end
% 对每个数据提取最佳的效率点,并记录输入功率、延时等等
for ind=1:1:length(Pout_dbm_Draw)
    % 判断是否是空数组
    if eval(['isempty(Pout_dbm_DataAll.data',num2str(ind), ')'])
        eval('DrawData.Pin_1(ind)=NaN;');
        eval('DrawData.Pin_2(ind)=NaN;');
        eval('DrawData.Pout_dbm_Real(ind)=NaN;');
        eval('DrawData.Efficiency(ind)=NaN;');
        eval('DrawData.Delay(ind)=NaN;');
    else
        eval(['[max_val,max_ind]=max(Pout_dbm_DataAll.data', num2str(ind), '(:,4));']);
        eval(['DrawData.Pin_1(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,1);']);
        eval(['DrawData.Pin_2(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,2);']);
        eval(['DrawData.Pout_dbm_Real(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,3);']);
        eval(['DrawData.Efficiency(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,4);']);
        eval(['DrawData.Delay(ind)=Pout_dbm_DataAll.data', num2str(ind), '(max_ind,5);']);
    end
end

% 空数组插值
DrawData.Pin_1 = fillmissing(DrawData.Pin_1,'movmean',5);
DrawData.Pin_2 = fillmissing(DrawData.Pin_2,'movmean',5);
DrawData.Pout_dbm_Real = fillmissing(DrawData.Pout_dbm_Real,'movmean',5);
DrawData.Efficiency = fillmissing(DrawData.Efficiency,'movmean',5);
DrawData.Delay = fillmissing(DrawData.Delay,'movmean',5);
% 计算总的输入功率
DrawData.PinAll=10*log10((10.^(0.1*(DrawData.Pin_1-30)))+(10.^(0.1*(DrawData.Pin_2-30))))+30;
% 计算增益
DrawData.Gain=DrawData.Pout_dbm_Real-DrawData.PinAll;

% 画图
figure(1)

plot(DrawData.Pout_dbm_Real,DrawData.Efficiency,'-o','Color','r','LineWidth',1);hold on
ylabel('Drain Efficiency(%),Gain(dB)');xlabel('Pout(dBm)');

plot(DrawData.Pout_dbm_Real,DrawData.Gain,'-square','Color','magenta','LineWidth',1);hold on
legend('Efficiency', 'Gain')
title(csv_name)

figure(2)
plot(DrawData.Pout_dbm_Real,DrawData.Pin_1,'-v','Color','b','LineWidth',1);hold on
plot(DrawData.Pout_dbm_Real,DrawData.Pin_2,'-v','Color','b','LineWidth',1);hold on
ylabel('Pin(dBm)');xlabel('Pout(dBm)');
yyaxis right
plot(DrawData.Pout_dbm_Real,abs(DrawData.Delay),'-o','Color','black','LineWidth',1);
ylabel('Delay(°)');
legend('Pin_1', 'Pin_2','Delay')
title(csv_name)

4、运行环境

ADS版本:ADS2023

依赖的ADS库文件:Cree公司的GAN库,CGH40010F管子、(文件中包含,但可能要调整路径)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/396544.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

npm run dev运行出现NODE_OPTIONS=--max_old_space_size=4096 vite --mode dev --host?

问题描述 PS E:\AWorkDataease\DataEase\core\core-frontend> npm run dev dataease0.0.0 dev NODE_OPTIONS–max_old_space_size4096 vite --mode dev --host 0.0.0.0 ‘NODE_OPTIONS’ 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 解决方案 遇到…

Linux RabbitMQ 安装及卸载

一、安装 1、前景 RabbitMQ是用Erlang编写的&#xff0c;所以需要先安装Erlang的编译环境 注意 Erlang和RabbitMQ的版本是有一些版本匹配关系的&#xff0c;如果不匹配会导致RabbitMQ无法启动 2、安装Erlang # 下载 wget https://packages.erlang-solutions.com/erlang/r…

使用纯 CSS 实现元素高度的过渡(不采用 max-height)

1. 前言 不知大家是否接触过元素高度的过渡&#xff0c;之前呢我是使用 CSS 加 JS 的方式来解决的&#xff0c;就是通过 JS 计算一下要过渡的元素的高度&#xff0c;然后自己给它加上 height 为某一数值。不知大家是如何解决的&#xff1f; 相信大家在做高度过渡时&#xff0…

Mac远程连接Windows 11

1. Windows配置 1.1 打开远程连接权限 打开“控制面板”搜索“远程”&#xff0c;选择“允许远程访问你的计算机”这一项。 1.2 添加远程连接用户 打开“计算机管理”&#xff0c;并在用户下新增“新用户”&#xff0c;share是我自己使用的名字&#xff0c;这个名字不固定随…

【Java EE初阶二十】关于http(一)

1. 初识http HTTP 最新的版本应该是 HTTP/3.0&#xff0c;目前大规模使用的版本 HTTP/1.1&#xff1b; 下面来简单说明一下使用 HTTP 协议的场景: 1、浏览器打开网站 (基本上) 2、手机 APP 访问对应的服务器 (大概率) 前面的 TCP与UDP 和http不同&#xff0c;HTTP 的报文格式&a…

0、电源管理入门之开篇即巅峰

目录 1. 电源状态介绍 2. Linux 电源管理的组成 3. ARM SoC中PCSA与SCP 4. SoC设计中的电源管理 “人是铁饭是钢,一顿不吃饿得慌”,对于嵌入式设备而言,没有电一切都白瞎,特别是带电池的终端嵌入式设备,对电能的管理尤其重要,也是我们调试设备的一个重点。可以说…

[工具探索]VSCode介绍和进阶使用

相比较GoLand、PhpStorm、PyCharm、WebStorm的重量级内存占用&#xff0c;从Windows系统来&#xff0c;各种卡死&#xff0c;换到MacOS倒不会卡死&#xff0c;但是内存占用太多&#xff0c;影响体验&#xff0c;决定换到VSCode。当然这个过程需要适应过渡期&#xff0c;旧伙计都…

文件包含+文件上传漏洞(图片马绕过)

目录 一.文件包含二.文件上传三.图片马四.题目 一.文件包含 将已有的代码以文件形式包含到某个指定的代码中&#xff0c;从而使用其中的代码或者数据&#xff0c;一般是为了方便直接调用所需文件&#xff0c;文件包含的存在使得开发变得更加灵活和方便&#xff08;若对用户输入…

广州游戏业:低调内敛 务实创新

广州游戏业&#xff1a;低调内敛 务实创新 中国游戏产业发展迅猛&#xff0c;不同城市因地制宜&#xff0c;各具特色。本篇我们的视角转到历史悠久的广州&#xff0c;看看这座百年老城的游戏业正在以怎样的姿态前行。 广州在中国游戏产业中有其独特地位——作为游戏产业发源地…

k8s学习(RKE+k8s+rancher2.x)成长系列之简配版环境搭建(三)

3.19.切换RKE用户&#xff0c;并做免密登录&#xff08;三台机器相互免密&#xff09; su rke cd~ ssh-keygen[rkemaster.ssh]$ssh-copy-id rkeslaver2 [rkemaster.ssh]$ssh-copy-id rkeslaver1 [rkemaster.ssh]$ssh-copy-id rkemaster3.20.搭建RKE集群 为了方便理解&#…

Mac清理系统垃圾软件CleanMyMac X2025免费版本下载

嘿&#xff0c;Mac用户们&#xff0c;你是否经常感觉你的Mac就像是在背着一个沉重的包袱在跑步&#xff1f;是的&#xff0c;我在说那些堆积如山的系统垃圾。清理这些垃圾不仅可以让你的Mac跑得更快&#xff0c;还能让它“呼吸”更畅快。今天&#xff0c;让我们一起来探索如何M…

数字化转型导师坚鹏:政府数字化转型之数字化技术

政府数字化转型之数字化技术 ——物联网、云计算、大数据、人工智能、虚拟现实、区块链、数字孪生、元宇宙等综合解析及应用 课程背景&#xff1a; 数字化背景下&#xff0c;很多政府存在以下问题&#xff1a; 不清楚新技术的发展现状&#xff1f; 不清楚新技术的重要应…

单片机01天_stm32f407zg_创建新工程

创建“寄存器版工程” 1、创建工程文件夹 创建工程文件夹“Project”&#xff0c;内部包含文件夹“CMSIS”&&“USER”。 CMSIS&#xff1a;Cortex系列内核接口驱动文件。 USER&#xff1a;存放用户编写的程序文件。 “USER”文件夹内包含“Inc”&&“Src”…

Apache Apisix网关系统历史漏洞复现分析

文章目录 前言CVE-2020-13945默认api令牌CVE-2021-45232未授权接口2.1 默认账户密码导致RCE2.2 未授权访问api接口RCE CVE-2022-24112 地址限制绕过CVE-2022-29266 JWT令牌伪造4.1 漏洞源码简析与修复4.2 漏洞环境搭建与复现 总结 前言 Apache APISIX 是一个动态、实时、高性能…

J-Flash J-Link解锁GD32单片机

目录 前言一、使用J-Flash工具解锁单片机1.打开J-Flash软件2.创建工程3.连接 J-Link4.解锁Flash 二、使用J-Link STM32 Unlock解锁GD321.打开J-Link STM32 Unlock工具2.命令行输入3.解锁成功4.验证 三、附录总结&#x1f600;*授人鱼,更要授人以渔&#xff0c;希望猿一的本篇博…

mysql同类型的多行变成一行value1和value2不同的列

关键字 row_number() over (partition by) 例如&#xff0c;下面的数据&#xff0c; 这是按照name分组后&#xff0c;展示property值。 我们想得到这样的值; 第一步&#xff1a;将每一组的property标上序号 select name,property,row_number() over (partition by name order…

零基础入门金融风控-贷款违约预测Task2 数据分析

Task2 数据分析 此部分为零基础入门金融风控的 Task2 数据分析部分&#xff0c;带你来了解数据&#xff0c;熟悉数据&#xff0c;为后续的特征工程做准备&#xff0c;欢迎大家后续多多交流。 赛题&#xff1a;零基础入门数据挖掘 - 零基础入门金融风控之贷款违约 目的&#…

HarmonyOS 鸿蒙应用开发(十一、面向鸿蒙开发的JavaScript基础)

ArkTS 是HarmonyOS&#xff08;鸿蒙操作系统&#xff09;原生应用开发的首选语言。它是用于构建用户界面的一种TypeScript方言&#xff0c;扩展了TypeScript以适应HarmonyOS生态系统的UI开发需求。ArkTS 融合了TypeScript的静态类型系统和现代UI框架的设计理念&#xff0c;为开…

Stable Diffusion 绘画入门教程(webui)-提示词

通过上一篇文章大家应该已经掌握了sd的使用流程&#xff0c;本篇文章重点讲一下提示词应该如何写 AI绘画本身就是通过我们写一些提示词&#xff0c;然后生成对应的画面&#xff0c;所以提示词的重要性不言而喻。 要想生成更加符合自己脑海里画面的图片&#xff0c;就尽量按照…

Unity2023.1.19没有PBR Graph?

Unity2023.1.19没有PBR Graph? 关于Unity2023.1.19没有PBR graph的说法,我没看见管方给出的答案,百度则提到了Unity2020版之后Shader Graph的“全新更新”,之前也没太注意版本的区别,以后项目尽量都留心一下。 之前文章说过,孪生智慧项目推荐使用URP渲染管线,以上的截…