MATLAB 之 Simulink 操作基础和系统仿真模型的建立

news2024/11/16 0:53:32

这里写目录标题

  • 一、Simulink 操作基础
    • 1. Simulink 的启动与退出
      • 1.1 Simulink 的启动
      • 1.2 模型文件的打开
      • 1.3 Simulink 的退出
    • 2. Simulink 仿真初步
      • 2.1 模型元素
      • 2.2 仿真步骤
      • 2.3 简单实例
  • 二、系统仿真模型的建立
    • 1. Simulink 的基本模块
    • 2. 模块操作
      • 2.1 添加与删除模块
      • 2.2 选取模块
      • 2.3 复制模块
      • 2.4 模块外形的调整
      • 2.5 模块名的处理
    • 3. 模块的连接
      • 3.1 连接两个模块
      • 3.2 模块间连线的调整
      • 3.3.连线的分支
      • 3.4.标注连线
    • 4. 模块的参数和属性设置
      • 4.1 模块的参数设置
      • 4.2 模块的属性设置

一、Simulink 操作基础

  • Simulink 是 MATLAB 的重要组成部分既适用于线性系统,也适用于非线性系统,既适用于连续系统,也适用于离散系统和连续与离散混合系统。既适用于定常系统,也适用于时变系统。

1. Simulink 的启动与退出

1.1 Simulink 的启动

  • 在安装 MATLAB 的过程中。若选中了 Simulink 组件,则在 MATLAB 安装完成后,Simulink 也就安装好了。如果需要,可以直接启动 Simulink,步骤如下。
  • (1) 在 MATLAB 的命令行窗口输入 Simulink 命令,或选择 MATLAB 主窗口 “主页" 选项卡,单击 SIMULINK 命令组中的 Simulink 命令按钮,或选择 MATLAB 主窗口 “主页" 选项卡,单击 “文件” 命令组中的 “新建” 命令按钮,再从下拉菜单中选择 Simulink Model 命令,这时进入 Simulink 起始页。
  • (2) 在 Simulink 起始页单击 Blank Model 按钮,打开一个名为 untitled 的模型编辑窗口,如下图所示。利用模型编辑窗口,可以通过鼠标的拖放操作创建一个仿真模型。

在这里插入图片描述

  • 在 Simulink 模型编辑窗口选择 File ⟶ \longrightarrow New ⟶ \longrightarrow Blank Model 命令,或按 Ctrl+N 键,打开如下图所示的 Simulink Library Browser(Simulink 模块库浏览器)窗口。
  • 该窗口包含两个窗格,左侧的窗格以树状列表的形式列出了所有模块库。若单击某个模块库,右侧的窗格列出该模块库的子模块库;若单击某个子模块库,右侧的窗格列出该子模块库中的所有模块。

在这里插入图片描述

  • 在 Simulink Library Browser 窗口中,单击其工具栏中的按钮或按 Ctrl+N 键,可以打开模型编辑窗口。
  • (4) 模型创建完成后,在 Simulink 模型编辑窗口选择 File ⟶ \longrightarrow Save 命令或 Save as 命令,或单击模型编辑窗口工具栏中的 save 命令按钮,将模型以模型文件的格式存盘。
  • 保存文件的格式与当前系统支持的字符编码有关,如果模型中使用了中文字符,建议使用 SLX 格式存储。
  • 这里需要注意的是,Simulink 不能独立运行,只能在 MATLAB 环境中运行。

1.2 模型文件的打开

  • 如果要对一个已经存在的模型文件进行编辑修改,需要打开该模型文件,其方法有以下几种。
  • (1) 在 MATLAB 命令行窗口直接输入模型文件名(不要加扩展名),这要求该模型文件在当前文件夹下或在已定义的搜索路径中。
  • (2) 在 Simulink 起始页单击 Open file 按钮,然后选择或输入欲编辑模型的名字。或直接选择最近打开过的模型文件打开模型。
  • (3) 在 Simulink 模型编辑窗口选择 File ⟶ \longrightarrow Open 命令,或按 Ctrl+O 键,或单击工具栏中的 Open 命令按钮口,然后选择或输入欲编辑模型的名字。也可以选择 File ⟶ \longrightarrow Open Recent 命令打开最近打开过的模型文件。
  • (4) 在 Simulink Library Browser 窗口中,单击其工具栏中的 Open 命令按钮,也能打开已经存在的模型文件。

1.3 Simulink 的退出

  • 要退出 Simulink,只要关闭所有模型编辑窗口和 Simulink Library Browser 窗口即可。

2. Simulink 仿真初步

2.1 模型元素

  • 典型的 Simulink 模型包括以下 3 种元素。
  • (1) 信号源(Source)。信号源可以是 Constant(常量)、Clock(时钟)、Sine Wave(正弦波)、Step(单位阶跃函数)等。
  • (2) 系统模块。例如,Math Operations 模块(数学运算)、Continuous 模块(连续系统)、Discrete 模块(离散系统)等。
  • (3) 信宿(Sink)。信号可以在 Scope(示波器)、XY Graph(图形记录仪)上显示,也可以存储到文件(To File),导出到工作空间(To Workspace)。

2.2 仿真步骤

  • 利用 Simulink 进行系统仿真通常包括以下步骤。
  • (1) 建立系统仿真模型,包括添加模块,设置模块参数,进行模块连接等操作。
  • (2) 设置仿真参数。
  • (3) 启动仿真并分析仿真结果。

2.3 简单实例

  • 下面通过一个简单实例,说明利用 Simulink 建立仿真模型并进行系统仿真的方法。
  • 例如,我们利用 Simulink 仿真曲线 y ( t ) = sin ⁡ t sin ⁡ ( 4 π t ) ( 0 ≤ t ≤ π ) y(t)=\sin t\sin(4\pi t)(0\le t\le \pi) y(t)=sintsin(4πt)(0tπ)
  • 正弦信号由 Sources 模块库(信号源)中的 Sine Wave 模块提供,求积用 Math Operations 模块库(数学运算)中的 Product 模块实现,再用 Sinks 模块库(信号输出)中的 Scope 模块(示波器)输出波形,操作过程如下。
  • (1) 打开一个名为 untitled 的模型编辑窗口,创建仿真模型。
  • (2) 打开 Simulink Library Browser 窗口,将所需模块添加到模型中。在 Simulink Library Browser 窗口中展开 Simulink 模块库,然后单击 Sources 模块库,在右侧的窗口中找到 Sine Wave 模块,用鼠标将其拖曳到模型编辑窗口;单击 Math Operations 模块库,在右侧的窗口中找到 Product 模块,用鼠标将其拖曳到模型窗口;单击 Sinks 模块库,在右侧的窗口中找到 Scope 模块,用鼠标将其拖曳到模型窗口。
  • (3) 用连线将各个模块连接起来组成系统仿真模型,如下图所示。大多数模块两边有符号 “>”,与尖端相连的端表示信号输入端,与开口相连的端表示信号输出端。连线时从一个模块的输出端按下鼠标左键,拖曳至另一模块的信号输入端,松开鼠标左键完成连线操作,连线箭头表示信号流的方向。也可以单击信号流的源模块后,按住 Ctrl 键,然后单击信号流的目标模块,实现模块连线。

在这里插入图片描述

  • (4) 设置模块参数。对于两个 Sine Wave 模块,先分别双击它们打开其 Block Parameters 对话框,如下图所示,分别设置 Frequency(频率)为 1、4*pi,设置 Amplitude(幅值)都为 1,其余参数不改变。对于其他模块,其参数不改变。

在这里插入图片描述

  • 模型建好后,在模型编辑窗口选择 File ⟶ \longrightarrow Save 命令或 Save as 命令,或单击模型编辑窗口工具栏中的 save 命令按钮,将模型以模型文件的格式存盘。
  • (5) 设置系统仿真参数。在模型编辑窗口选择 Simulation ⟶ \longrightarrow Model Configuration Parameters 命令,打开仿真参数设置对话框,在 Star time 文本框中设置起始时间为 0,在 Stop time 文本框中设置终止时间为 pi。
  • 把 Solver options(算法选项)栏中的 Type 参数设为 Fixed-step(固定步长),并在其右侧的 Solver 下拉列表框中选择 ode5(Dormand-Prince)选项,即 5 阶 Runge-Kutta 算法,再把 Fixed-step size 的值设置为 0.001,如下图所示。

在这里插入图片描述

  • (6) 仿真操作。在模型编辑窗口选择 Simulation ⟶ \longrightarrow Run 命令,或单击工具栏中的 Run 命令按钮,再双击示波器模块,就可在示波器窗口中看到仿真结果,曲线如下图所示。

在这里插入图片描述

二、系统仿真模型的建立

  • Simulink 提供图形用户界面,用户可以用鼠标操作,从模块库中调用标准模块,将它们适当地连接起来以构成动态系统模型,并且用各模块的参数对话框为系统中各模块设置参数。
  • 当各模块的参数设置完成后,即建立起该系统的模型。如果没有对某一模块设置参数, 那就意味着使用 Simulink 预先为该模块设置的默认参数值作为该模块的参数。

1. Simulink 的基本模块

  • 模块是构成系统仿真模型的基本单元,用适当的方式把各种模块连接在一起就能够建立动态系统的仿真模型,所以构建系统仿真模型主要涉及 Simulink 模块的操作。
  • Simulink 的模块库提供了大量模块,大体分为两类:基本模块库和专业模块库。单击 Simulink Library Browser 窗口中 Simulink 前面的符号,将看到 Simulink 模块库中包含的基本子模块库,单击所需要的子模块库,在右边的窗口中将看到相应的模块,选择所需模块,可用鼠标将其拖曳到模型编辑窗口。
  • 同样,在 Simulink Library Browser 窗口左侧的 Simulink 选项上右击,在弹出的快捷菜单中选择 Open Simulink Libray 命令,将打开 Simulink 基本模块库窗口,如下图所示。双击其中的子模块库图标,打开子模块库,找到仿真所需要的模块。

在这里插入图片描述

  • 以 Continuous 模块库(连续系统)为例,在 Simulink 基本模块库窗口中双击 Continuous 模块库的图标即可打开该模块库窗口,也可以在 Simulink Library Browser 窗口中 Simulink 菜单下选中 Continuous 选项,然后在 Simulink Library Browser 窗口右侧打开连续系统模块库。
  • 在连续系统模块库中,包含 Integrator(积分环节)、Derivative(微分环节)、State- Space(状态方程)、Transfer Fcn(传递函数)等许多模块,可供连续系统建模使用。
  • Simulink 模块库内容十分丰富,其他模块库的操作方法与连续系统模块库相同。此外,我们还可以自己定制和创建模块。

2. 模块操作

2.1 添加与删除模块

  • 要把一个模块添加到模型中,首先要在 Simulink 模块库中找到该模块,然后将这个模块拖曳到模型编辑窗口中即可。
  • 要删除模块,需要先选定模块,再按 Delete 键,或选择 Edit ⟶ \longrightarrow Cut 命令或 Delete 命令。也可以右击需要删除的模块,在弹出的快捷菜单中选择 Cut 命令或 Delete 命令。Cut 命令将删除的模块送到剪贴板,Delete 命令将彻底删除模块。

2.2 选取模块

  • 要在模型编辑窗口中选择单个模块,只要用鼠标在模块上单击即可,这时模块四周出现深色边框。
  • 要选取多个模块,可以在所有模块所占区域的一角按下鼠标左键不放,拖向该区域的对角,在此过程中会出现深色框,当深色框包住了要选的所有模块后,放开鼠标左键,这时所有被选中模块的周围会出现深色边框,表示模块都被选中了。

2.3 复制模块

  • 在建立系统仿真模型时,可能需要多个相同的模块,这时可采用模块复制的方法。
  • 在同一模型编辑窗口中复制模块的方法是,单击要复制的模块,按住鼠标左键并同时按住 Ctrl 键,移动鼠标到适当位置放开鼠标左键,模块复制以后,会发现复制出的模块名称在原名称的基础上加上了编号,这是 Simulink 的约定,每个模型中的模块和名称是一一对应的, 每一一个模块都有不同的名字。
  • 在不同的模型编辑窗口之间复制模块的方法是,首先打开源模块和目标模块所在的窗口,然后单击要复制的模块,按住鼠标左键移动鼠标到相应窗口(不用按住 Ctrl 键),然后释放鼠标左键,该模块就会被复制过来,而源模块不会被删除。
  • 复制操作还可以通过在模型编辑窗口选择 Edit ⟶ \longrightarrow Copy 命令和 Edit+Paste 命令来完成。

2.4 模块外形的调整

  • 要改变单个模块的大小,首先将鼠标指针指向该模块,此时模块的四角出现白色的小方块,用鼠标左键单击其周围的 4 个白方块中的任何一个并拖动到需要的位置后释放鼠标即可。
  • 若要改变整个模型中所有模块的大小,可以选择模型编辑窗口的 View ⟶ \longrightarrow Zoom 菜单项,其中的 Zoom in 和 Zoom out 命令分别用来放大和缩小整个模型,Normal View(100%)命令用来将整个模型恢复到原始的正常大小,Fit to View 命令用来将当前选中的模块或当前模型放大到整个窗口大小来观察。
  • 要调整模块的方向,首先选定模块,然后在模型编辑窗口选择 Diagram ⟶ \longrightarrow Rotate & Flip 菜单项,其中的 Clockwise 命令使模块顺时针方向旋转 90°,Counterclockwise 命令使模块逆时针方向旋转 90°,Flip Block 命令使模块旋转 180°。
  • 要改变模块的颜色,首先选定模块,然后在模型编辑窗口选择 Diagram ⟶ \longrightarrow Format 菜单项,其中的 Foreground Color 命令用来设置模块的前景色,即模块的图标、边框和模块名的颜色。
  • 选择 Background Color 命令,设置模块的背景色,即模块的背景填充色。
  • 选择 Canvas Color 命令,改变模型编辑窗口的背景色。
  • 选择 Shadow 命令,使模块产生阴影效果。

2.5 模块名的处理

  • 要隐藏或显示模块名,首先选定模块,然后在模型编辑窗口选择 Diagram ⟶ \longrightarrow Format ⟶ \longrightarrow Show Block Name 命令,使模块隐藏的名字显示出来或隐藏模块名。
  • 要修改模块名,单击模块名的区域,这时会在此处出现编辑状态的光标,在这种状态下能够对模块名随意修改。
  • 模块名和模块图标中的字体也可以更改,方法是选定模块,在模型编辑窗口选择 Diagram ⟶ \longrightarrow Format ⟶ \longrightarrow Font Style 命令,这时会弹出 Select Font 对话框,在对话框中选择需要的字体。
  • 模块名的位置有一定的规律, 当模块的接口在左右两侧时,模块名只能位于模块的上下两侧,默认在下侧;当模块的接口在上下两侧时,模块名只能位于模块的左右两侧,默认在左侧。
  • 因此,模块名只能从原位置移动到相对的位置。可以用鼠标拖动模块名到其相对的位置;也可以选定模块,在模型编辑窗口选择 Diagram ⟶ \longrightarrow Rotate & Flip ⟶ \longrightarrow Flip Block Name 命令实现模块名相对的移动。

3. 模块的连接

当设置好各个模块后,还需要把它们按照一定的顺序连接起来才能组成一个完整的系统模型。

3.1 连接两个模块

  • 从一个模块的输出端连到另一个模块的输入端,这是 Simulink 仿真模型最基本的连接情况。
  • 方法是先移动鼠标指针到输出端,当鼠标指针变成十字形光标时按住鼠标左键,移动鼠标指针到另一个模块的输入端,当连接线由虚线变成实线时,释放鼠标左键就完成了两个模块的连接。
  • 如果两个模块不在同一水平线上,连线是一条折线。 若要用斜线表示,需要在连线后选中连线,再按住 Shift 键进行拖动。

3.2 模块间连线的调整

  • 调整模块间连线位置可采用鼠标拖放操作来实现。
  • 先将鼠标指针移动到需要移动的线段的位置,按住鼠标左键,移动鼠标到目标位置,释放鼠标左键。
  • 删除连线的方法和删除模块的方法相同,即先选中连线,再删除。

3.3.连线的分支

  • 在仿真过程中,经常需要把一个信号输送到不同的模块,这时就需要从一根连线分出一根连线。
  • 操作方法是,在先连好一条线之后,把鼠标指针移到分支点的位置,先按住 Ctrl 键,然后按住鼠标拖曳到目标模块的输入端,释放鼠标和 Ctrl 键。

3.4.标注连线

  • 为了使模型更加直观,可读性更强,可以为传输的信号做标记。
  • 操作方法是双击要做标记的连线,将出现一个小文本编辑框,在其中输入标注文本,这样就建立了一个信号标记。

4. 模块的参数和属性设置

  • 模块参数定义模块的动态行为和状态,属性定义模块的外观。

4.1 模块的参数设置

  • 在模型编辑窗口打开模块参数设置对话框有以下方法。
  • (1) 双击要设置的模块。
  • (2) 选择要设置的模块,再选择 Diagram ⟶ \longrightarrow Block Parameters 命令。
  • (3) 右击要设置的模块,从快捷菜单中选择 Block Parameters 命令。
  • 模块参数设置对话框分为两部分,上面一部分是模块功能说明,下面一部分用来进行模块参数设置。

4.2 模块的属性设置

  • 在模型编辑窗口打开模块属性设置对话框有以下方法。
  • (1) 选定要设置属性的模块,选择 Diagram ⟶ \longrightarrow Properties 命令。
  • (2) 右击要设置属性的模块,从快捷菜单中选择 Properties 命令。
  • 模块属性对话框包括 General、Block Annotation 和 Callbacks 3 个选项卡。
  • General 选项卡中可以设置 3 个基本属性:Description 属性对该模块在模型中的用法进行说明;Priority 属性规定该模块在模型中相对于其他模块执行的优先顺序,优先级的数值必须是整数(可以是负整数),该数值越小,优先级越高,也可以不输入优先级数值,这时系统自动选取合适的优先级;Tag 属性是用户为模块添加的文本格式的标记。
  • Block Annotation 选项卡中指定在该模块的图标下显示模块的哪个参数。
  • Callbacks 选项卡中指定当对该模块实施某种操作时需要执行的 MATLAB 命令或程序。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速训练自己的大语言模型:基于LLAMA-7B的lora指令微调

目录 1. 选用工程:lit-llama2. 下载工程3. 安装环境4. 下载LLAMA-7B模型5. 做模型转换6. 初步测试7. 为什么要进行指令微调?8. 开始进行指令微调8.1. 数据准备8.2 开始模型训练8.3 模型测试 前言: 系统:ubuntu 18.04显卡&#xff…

大数据ETL工具对比(Sqoop, DataX, Kettle)

前言 在实习过程中,遇到了数据库迁移项目,对于数据仓库,大数据集成类应用,通常会采用ETL工具辅助完成,公司和客户使用的比较多的是Sqoop, DataX和Kettle这三种工具。简单的对这三种ETL工具进行一次梳理。 ETL工具&…

无法更新iPhone,提示“无法检查更新”怎么办?

当我们需要 iPhone更新系统时,可以前往iPhone设置-通用-软件更新中获取更新推送。不过一些用户可能会遇到无法更新的问题,例如会提示“无法检查更新,检查软件更新时出错”。 以上情况可能是网络问题,可以尝试重新打开设置&#xf…

vue2实现公式规则编辑校验弹窗功能

文章目录 需求描述技术栈最终效果演示功能实现逻辑拆分代码目录结构实现思路光标实现底部单个符号或字段结构设计监听键盘事件&处理光标公式规则校验 总结 需求描述 需要一个弹窗,弹窗内部需要能够进行公式规则的配置并进行公式规则合法性校验。 技术栈 vue2e…

Thymeleaf的常用语法

🌟 Thymeleaf的常用语法 Thymeleaf是一个Java模板引擎,用于处理HTML、XML、JavaScript、CSS等文件。它可以与Spring框架无缝集成,为Web应用程序提供优雅的模板解决方案。本文将介绍Thymeleaf的常用语法,包括th属性、表达式、内置…

Spring Boot 中的 @RestController 注解,如何使用

Spring Boot 中的 RestController 注解 在 Spring Boot 中,我们经常需要编写 RESTful Web 服务,以便于客户端与服务器之间的通信。为了简化 RESTful Web 服务的开发,Spring Boot 提供了 RestController 注解,它可以让我们更方便地…

Jmeter实现参数加密

目录 一、使用__digest自带函数 以md5加密算法演示使用方法 二、在BeanShell 中使用JAVA代码实现算法加密 规避BUG的方法 JMeter有两种方法可以实现算法加密 一、使用__digest自带函数 参数说明: Digest algorithm:算法摘要,可输入值&a…

如何避免在处理数据时出现错误?

介绍 当业务运营管道中发生大量事情时,数据输入任务的优先级往往较低。但是,数据输入被认为是所有行业部门中经常发生的最重要的任务之一。从销售数据到客户分析,从财务数据到库存管理,每项工作都依赖于数据输入,这意…

前端vue入门(纯代码)16

【18.如何在Vue中配置代理服务器】 vue脚手架配置代理总结:修改了vue.config.js文件后必须重启项目【npm run serve】 方法一 ​ 在vue.config.js中添加如下配置: devServer:{proxy:"http://localhost:5000" }说明: 优点&#…

家政上门预约小程序;

家政上门预约小程序开发是一款本地生活类服务上门预约系统,覆盖家政保洁、保姆月嫂、上门维修、管道疏通、上门安装等各种到家服务。可以帮助创业者在不需要相关技术人员及大量资金投入的情况下,就能够轻松搭建并运营一个上门家政服务平台。 那么开发一…

【零基础入门学习Python---Python错误处理和异常保姆级教程】

🚀 Python 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【图像处理OpenCV(C++版)】——5.3 图像平滑之均值平滑(滤波)

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

Flutter学习四:Flutter开发基础(一)Widget

目录 0 引言 1 Widget 简介 1.1 Widget 概念 1.2 Widget 接口 1.3 Flutter中的四棵树 1.4 StatelessWidget 1.4.1 简介 1.4.2 Context上下文 1.5 StatefulWidget 1.6 State 1.6.1 简介 1.6.2 State生命周期 1.7 在 widget 树中获取State对象 1.7.1 通过Context…

详解如何使用nvm管理Node.js多版本

目录 NVM进行NodeJS多版本管理 背景 安装步骤 1. 下载nvm安装包 2. 安装nvm 使用步骤 下载nodejs 切换版本nodejs ​编辑 常用命令 NVM进行NodeJS多版本管理 背景 有的时候开发环境需要多个NodeJS的版本,这个时候就可以用NVM进行管理。 安装步骤 1. 下载n…

9 从0开始学PyTorch | 过拟合欠拟合、训练集验证集、关闭自动求导

这一小节在开始搞神经网络之前,我们先熟悉几个概念,主要还是把模型训练的流程打通。 过拟合和欠拟合 我们在日常的工作中,训练好的模型往往是要去评价它的准确率的,通过此来判断我们的模型是否符合我的要求。 几个可能的方案是&…

国外学位论文去哪里查找下载

查找下载国外博士论文最合适的文献数据库就是ProQuest学位论文全文数据库。 ProQuest学位论文全文数据库覆盖了大部分北美地区高等院校以及世界其他地区数千个高等院校每年获得通过的博硕士论文。是将ProQuest公司PQDD文摘库(现名PQDT)中适合中国科研人…

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Jun 2023)

Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2023 年 6 月更新) 在虚拟机、Mac 电脑和 TPM 不符合要求的旧电脑上安装 Windows 11 的通用方法总结 请访问原文链接:https://sysin.org/blog/windows-11-no-tpm/,查看最新版。原创作品…

nuxt3 多级动态路由

需求: 写法: 对应 文件目录 pages\product\[class]\[brand]\[SPU].vue pages/ --| product/ ----| [class] ------| [brand] --------| [SPU].vue script 内跳转方法 const router useRouter() const nuxtApp useNuxtApp()const jumpSPU () >…

caffeine和google-guava cache缓存使用详解和源码介绍

google-guava cache 1.pom引入其依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>20.0</version></dependency> 2.具体使用 com.google.common.cache.LoadingCache<Strin…

【selenium】问题记录

1、驱动和浏览器版本不一致 报错&#xff1a;selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 106 问题原因&#xff1a; chrome版本114&#xff0c;Chromedriver版本106 …