前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >智能汽车虚拟化技术(下)

智能汽车虚拟化技术(下)

作者头像
刘盼
发布于 2023-12-13 00:55:01
发布于 2023-12-13 00:55:01
8340
举报
文章被收录于专栏:人人都是极客人人都是极客

前言:

上篇内容主要介绍了虚拟化技术本身的基本概念,以及车载虚拟化技术的一些特点。而本篇的内容则主要围绕一些虚拟化的技术路线以及行业内的部分应用来展开,同时也带来我们的虚拟机管理器产品(Photon Hypervisor)的介绍。

Hypervisor 与虚拟机协作技术路线

(1)全虚拟化

最初的虚拟化是通过软件模拟具有完整硬件系统功能的、运行在一个隔离环境中的计算机系统,即通过软件虚拟硬件设备提供给GuestOS使用,优点是GuestOS不感知外部真实硬件环境、不用改动。

由于GuestOS中每次访问全虚拟化硬件都要陷入到Hypervisor中,直接导致该方式虚拟的硬件性能较差,一般只用来模拟如串口等比较简单的硬件。对硬件的模拟可以在Hypervisor中直接模拟,也可以将请求传递到其他VM中进行模拟,如在某一VM中通过QEMU进行模拟。

(2)硬件辅助虚拟化

Intel最早提出硬件辅助虚拟化技术,由硬件直接提供共享功能,支持多GuestOS的访问,减少软件虚拟技术带来的延时和性能损耗。

Intel提出了分别针对处理器&内存、IO、网络的Intel VT-x、Intel VT-d和Intel VT-c技术等。随着ARM算力提升,从移动端向边缘、甚至云算力中心发展,ARM也在不断增强其硬件辅助虚拟化技术,比如stage2页表转换、虚拟异常等。

(3)半虚拟化

在硬件辅助虚拟化技术不完善、不强大的发展阶段,或者对于某些复杂外设的共享复用,为避免全虚拟化的性能问题,可以采用GuestOS与Hypervisor协作的半虚拟化技术。

这种技术一般应用于IO设备虚拟化,采用前后端的方式来实现IO设备虚拟化,在GuestOS中实现前端驱动,在Hypervisor或HostOS中实现后端驱动,前后端一般按照VirtIO标准来实现,后端驱动作为硬件的实际访问方。

GuestOS中前端驱动通过Virt Queue等通信机制与后端驱动进行通信,前端驱动将Guest OS的请求传递给后端驱动,后端驱动将请求发送给硬件驱动,处理完后将结果再传回给前端驱动。半虚拟化相对全虚拟化实现的硬件性能较好,且可实现相对比较复杂的硬件,比如 : 块设备,网卡,显示设备等。

Hypervisor支持将硬件资源直接分配给其上虚拟机中GuestOS使用,无需通过Hypervisor进行地址和指令翻译。例如 : 串口资源、USB资源等接口比较丰富的资源可以通过Pass-through直接分配给某虚拟机使用。

设备控制器一般都是以MMIO方式来访问的,所以只需要将控制器地址区域映射到VM就可实现设备控制器的分配,同时还需要分配一个设备硬件中断对应的虚拟中断到该VM,直接透传的方式就是VM独占访问该硬件,所以在性能上是最好的。

而针对车载虚拟化场景,硬件辅助虚拟化和半虚拟化都有涉及。

因为目前用的ARM64架构的硬件是支持硬件辅助虚拟化的,但整体方案上基本上都是用半虚拟化的方案。

车载虚拟化产品

车载虚拟化Hypervisor产品目前国内外有多家厂商在做,比如国外的QNX Hypervisor, Opensynergy, ACRN Hypervisor, Mentor Hypervisor等,国内的RAITE Hypervisor, Alios Hypervisor以及国科础石的Photon Hypervisor等。

而面向汽车量产,业内主流的方案基本上是QNX Hypervisor产品。

QNX Hypervisor属于微内核架构,同时也适配多个平台(高通、瑞萨、恩智浦、瑞芯微等),目前在国内市场我们看到采用“QNX Hypervisor+高通8155”的组合方案相对比较多。

目前成熟的方案运行在座舱域的比较多,而在舱驾融合的趋势下,底层通过Hypervisor进行隔离,将自动辅助驾驶、智能座舱和高性能计算网关运行在一个SOC硬件上将是未来的重要方向。

虚拟机管理器(Photon Hypervisor)

础光虚拟机管理器是国科础石推出的Hypervisor产品,是基于I型Hypervisor宏内核架构,可支持同时运行LinuxAndroid和RTOS等多个虚拟机操作系统,实现CPU、内存、外设等硬件资源在操作系统间的有效隔离,满足功能安全和信息安全的要求。

虚拟机管理器主要由如下三个部分构成:

  1. 虚拟化功能
  • CPU虚拟化:运行在ARMv8不同EL等级
  • 内存虚拟化:基于内存两阶段映射VTTBR
  • 中断虚拟化:基于GICv2/GICv3虚拟化扩展功能
  • 设备虚拟化:在hypervisor层实现驱动和后端 / 代理方式
  1. 基础内核
  • 内核动态内存管理
  • 基于优先级可抢占实时调度
  • 中断支持GICv2/GICv3
  • 支持驱动框架,支持clk,emmc等驱动
  1. BSP
  • 支持dts硬件资源配置
  • 板卡相关驱动,如串口

虚拟机管理器(Photon Hypervisor)部分核心功能

  1. CPU虚拟化

CPU虚拟化就是可以通过多个虚拟机共享物理CPU资源,对虚拟机中的敏感指令进行截获并模拟执行。

础光虚拟机管理器的CPU虚拟化原理是基于ARMV8的异常等级,Hypervisor通常是运行在EL2等级,GuestOS的内核是运行在EL1等级,GuestOS的用户态运行在EL0等级,实际上CPU虚拟化主要是解决不同的态之间切换的问题。

实际上操作系统只有异常(含中断)发生或异常(含中断)处理返回时,才能进行EL切换。

当异常发生:

有两种选择,停留在当前的EL,或者跳转到更高的EL,EL不能降级。

EL0 => EL1: SVC (system call)

EL1 => EL2: HVC (hypervisor call)

EL2 => EL3: SMC (secure monitor call)

当异常返回:

有两种选择,停留在当前EL,或者跳到更低的EL。

可以通过ERET(异常返回, 使用当前的SPSR_ELx和ELR_ELx)跳到更低的EL。在ELR_ELx中保存了返回的地址,SPSR_ELx中的M[3:0]中保存了异常返回的异常层级。

下图可能就会更直观一点。

一个虚拟机实际上是由多个VCPU来组成的,那么从Hypervisor这个角度来讲的话,实际上每个VCPU是对应到一个task任务上来的。

Hypervisor本身是一个实时操作系统,包含进程管理、进程调度等功能。task实际上分为两种:

  • 一种就是普通task,比如在Hypervisor上会有一些工作队列的task,这种task主要是为Hypervisor自身服务的,我们可以称之普通task,它的特点是和VCPU不做关联,
  • 还有一种 task 会跟VCPU做关联,也就是说一个VCPU会对应到一个task,最终在Hypervisor这层的调度都是以task为单位进行的。

下图可以简单解释task 之间切换的过程。

普通的task切换是从pre-task到next-task,在这里面会去做一些寄存器的保存以及寄存器的恢复。

如果涉及到VCPU的切换的话,除了需要保存和恢复task相关的寄存器,还需要额外保存和恢复与VCPU相关的vgic、虚拟时钟等寄存器。这里面也包括几种情况:

  • vcpu --> task 保存vcpu上下文
  • task --> vcpu 恢复vcpu上下文
  • vcpu --> vcpu 保存&恢复vcpu上下文
  • task --> task 不涉及vcpu上下文
  1. 内存虚拟化

础光虚拟机管理器内存虚拟化是基于ARMv8内存虚拟化的两阶段映射。虚拟机通过TTBRn_EL1完成Stage 1的地址转换,将虚拟机使用的VA转换成intermediate physical address(IPA,中间物理地址)。然后再通过VTTBR_EL2完成Stage 2的地址转换,将IPA转换成PA。Hypervisor内核运行在EL2,其使用的内存通过TTBR0_EL2完成地址映射。从而完成最终物理地址的映射。

下图更加直观,最左边是虚拟机视角,它里面除了内核,还有一些外设的映射,这里面看到的是虚拟机的虚拟地址。然后通过第一级映射(stage 1)转化成虚拟机的物理地址,然后再通过第二级映射(stage 2)最终转化成在HostOS上的物理地址,也就是硬件能看到的地址。

具体虚拟机IPA不同类型地址的映射方式可参照下图:

不同种类的虚拟机IPA地址会以不同的映射方式最终对应到硬件上。比如:

  • Flash:虚拟flash,用于存放虚拟机相关镜像文件,内存由Hypervisor动态申请,非1:1映射
  • gicd:中断虚拟化的模拟设备,不需要映射到真实内存,在Hypervisor中做读写模拟
  • RAM:虚拟机RAM内存,在stage 2映射时做1:1映射
  • 外设MMIO:外设MMIO内存,在stage 2映射时做1:1映射
  1. 中断虚拟化

础光虚拟机管理器的中断虚拟化最底层基于GICv2/GICv3的虚拟化扩展的特性来做的。我们以GICv3为例,它有redistributor模块,我们可以理解每一个都会对应物理的CPU,为了支持虚拟化,除了提供physical CPU interface之外,也有virtual CPU interface。我们做中断虚拟化主要就是用了virtual CPU这部分特性。

那么如何实现的呢,我们还是以GICv3为例进行说明,整体的过程就是:

1)物理中断从Redistributor发往物理CPU Interface。

2)Hypervisor读取中断信息,决定中断是否发给虚拟CPU Interface。

3)Hypervisor设置LR寄存器,注入虚拟中断。

4)在虚拟机EL1产生中断,虚拟机处理该中断。

  1. 设备虚拟化

上面的CPU虚拟化、内存虚拟化以及中断虚拟化属于Hypervisor最基本的功能,但其实整个Hypervisor的难点和重点在于设备虚拟化。

怎么理解设备虚拟化?举个例子来说,比如说硬件上除了包含CPU、内存和一些中断功能控制器之外,其实还有很多外设,比如USB,音频,摄像头等等设备,我们怎么样吧这些外设给虚拟机用,这里面就需要用到设备虚拟化的功能。

目前可以采用设备透传和设备共享两种方案,他们的区别在于:

  • 设备透传——设备被某个虚拟机独享
  • 设备共享——设备可以在多个虚拟机间共享

举个例子,比如在多个虚拟机的场景下,硬件只有一个网卡,当虚拟机需要对外通讯的时候,通过设备透传的方案,那么只能把网卡给一个虚拟机使用,而设备共享的话则是可以多个虚拟机共享使用。

在我们的产品中,主要还是采用设备共享的方式实现设备虚拟化。

关于设备共享,目前业内主要是两种方案,即host后端方式代理后端方式。

两种方式的区别在于一种是把后端做到Hypervisor这层,另外一种方式就是把后端做到其中的一个GuestOS里面去。两种方式各有利弊,首先host后端方式的好处是虚拟机重启相互不会影响,也不需要修改虚拟机的内核,但需要与芯片/驱动厂商深度合作,一方面通用性和适配的工作量很大,同时也需要在Hypervisor增加很多模块使其相对复杂,带来不稳定性。

而代理后端方式则相反,可以充分利用Linux的成熟生态,另外把后端做到GuestOS以后Hypervisor只实现代理框架,更轻量化,通用性强;但虚拟机VM0如果重启会影响其他虚拟机,同时也需要修改虚拟机(后端)的内核。

我们的Hypervisor产品则可以根据不同的硬件适配情况选择更优的方式实现设备虚拟化。

当然,设备虚拟化这里还有更多更具体的核心功能,同时也有除上述虚拟化功能之外的其他功能点,但篇幅有限,暂不做过多介绍了。

随着产品开发的不断深入,目前我们的虚拟机管理器产品已完成多家主流芯片厂商的适配,并在功能安全认证方面不断努力,接下来也会持续位大家带来同步产品的进展情况,请大家持续关注。

如果有想更多了解虚拟机管理器(Photon Hypervisor)产品的小伙伴,可以后台留言,我们将与您进一步交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人人都是极客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
动态系统建模与仿真MATLAB Simulink的应用案例
动态系统建模与仿真是工程、控制、物理等领域中的重要研究方向。MATLAB Simulink提供了一种直观的图形化环境,使得建模与仿真变得更加高效。本文将深入探讨动态系统建模的基本概念,并通过具体的应用案例展示如何使用MATLAB Simulink进行动态系统的建模与仿真。
一键难忘
2025/01/08
4400
基于车辆运动学的智能车轨迹跟踪控制方法
我国智能驾驶车辆起源于1980年,然而在1992年国防科技大学研发真正第一辆智能车。2003年,清华大学研发的THMR-V可在清晰的车道线上完成车道保持,而且它的最高时速可达到150km/h,如图1所示。
一点人工一点智能
2023/06/06
1.3K0
基于车辆运动学的智能车轨迹跟踪控制方法
Matlab仿真PID控制(带M文件、simulink截图和参数分析)
线性定常系统的控制中,PID是个非常常见的控制方式,如果可以通过Matlab仿真出PID的控制效果图,那么对系统设计时的实时调试将会容易得多。在这里我们将会以一个利用系统辨识参数的PID设计为为例展示Matlab仿真PID的过程。 首先需要对一个未知的系统的参数进行辨识,以延迟环节可以忽略不计的电机调速系统为例。将时间戳导入xdata向量,对应的时刻转速导入ydata向量,进行系统辨识
全栈程序员站长
2022/09/06
5K0
Matlab仿真PID控制(带M文件、simulink截图和参数分析)
基于Simulink实现模糊PID仿真
        传统 PID 控制器自出现以来,凭借其控制原理简单、稳定性好、工作可靠、易于实现等优点成为工业控制主要技术,常被用于机器人驱动控制。但是传统 PID 参数整定异常麻烦,当被控对象的结构和参数具有一定的不确定性,无法对其建立精确的模型时,传统 PID 无法进行实时调节, 为了获得更好的速度控制性能和循迹动态响应,但常规PID 控制难以解决被控对象数学模型复杂、非线性以及时变不确定性等系统问题,而自适应模糊 PID 控制可以有效解决此问题。本文依靠 MATLAB/SIMULINK 的模糊逻辑工具箱的Fuzzy Logic Controller 与常规 PID Controller 结合,针对水下航行器控制系统进行PID仿真实验。
2024/12/15
1K0
基于Simulink实现模糊PID仿真
基于BP神经网络PID控制+Simulink仿真
最近在学习电机的智能控制,上周学习了基于单神经元的PID控制,这周研究基于BP神经网络的PID控制。
全栈程序员站长
2022/09/02
8.6K5
基于BP神经网络PID控制+Simulink仿真
【STM32H7的DSP教程】第49章 STM32H7的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
自适应滤波器能够根据输入信号自动调整滤波系数进行数字滤波。作为对比,非自适应滤波器有静态的滤波器系数,这些静态系数一起组成传递函数。
Simon223
2021/09/26
9780
【STM32H7的DSP教程】第49章       STM32H7的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
【自动控制原理】Simulink搭建仿真模型(信号发生器、比较点、传递函数、示波器)
在MATLAB中,可以使用Simulink来建立自动控制原理的仿真模型。Simulink是MATLAB的一个工具箱,用于建立、仿真和分析动态系统模型。可以使用Simulink中提供的各种组件和模块来模拟开环系统和闭环系统。
Qomolangma
2024/07/30
2.3K0
【自动控制原理】Simulink搭建仿真模型(信号发生器、比较点、传递函数、示波器)
【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)
大家好,又见面了,我是你们的朋友全栈君。 目录 0.背景 1.粒子群算法 1.1.算法简介 1.2.算法步骤 1.3.算法举例 2.PID自整定 2.1.基于M文件编写的PID参数自整定 *2.2.复杂系统的PID自整定(基于simulink仿真) 2.2.1.PSO优化PID的过程详解 2.2.2.在PSO优化过程中修改参数价值权重 阅读前必看: 本代码基于MATLAB2017a版本,如果版本不同可能会报错 请从set_para.m文件开始运行,其他M文件(+下载的资源包里面的slx文件)放在
全栈程序员站长
2022/06/28
1.7K0
【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)
【Matlab】简单控制系统建模(控制系统工具箱)
控制系统应用是MATLAB和Simulink的重点应用领域,它包括了被控对象建模、控制器设计、自动代码生成部署和系统验证全流程。具体如下:
DevFrank
2024/07/24
3360
【Matlab】简单控制系统建模(控制系统工具箱)
滑模控制器理论推导和matlab/simulink实例分享
前天有个微信好友咨询了一些滑模控制器的设计和理论推导,故整理一下相关的资料和内容分享,
用户9925864
2023/09/05
1.6K0
滑模控制器理论推导和matlab/simulink实例分享
【STM32F407的DSP教程】第49章 STM32F407的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第49章 STM32F407的自适应滤波器实现,无需Ma
Simon223
2021/09/26
6930
【STM32F407的DSP教程】第49章       STM32F407的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
基于神经网络的机器人学习与控制:回顾与展望
机器人因其高效的感知、决策和执行能力,在人工智能、信息技术和智能制造等领域中具有巨大的应用价值。目前,机器人学习与控制已成为机器人研究领域的重要前沿技术之一。各种基于神经网络的智能算法被设计,从而为机器人系统提供同步学习与控制的规划框架。首先从神经动力学(ND)算法、前馈神经网络(FNNs)、递归神经网络(RNNs)和强化学习(RL)四个方面介绍了基于神经网络的机器人学习与控制的研究现状,回顾了近30年来面向机器人学习与控制的智能算法和相关应用技术。最后展望了该领域存在的问题和发展趋势,以期促进机器人学习与控制理论的推广及应用场景的拓展。
一点人工一点智能
2023/04/27
2.3K0
基于神经网络的机器人学习与控制:回顾与展望
粒子群优化算法的实现方式_matlab粒子群优化算法
粒子群优化算法属于进化算法的一种,通过追随当前搜索到的最优值来寻找全局最优。粒子群算法也称粒子群优化算法(Particle Swarm Optimization,PSO),PSO有几个关键概念:粒子、优化函数、适值(Fitness Value)、飞行方向、飞行距离。
全栈程序员站长
2022/11/10
1.9K0
粒子群优化算法的实现方式_matlab粒子群优化算法
一文尽览 | 2023最新自动驾驶车辆控制全面综述!(状态估计/轨迹控制/框架应用等)
车辆控制是自动驾驶汽车、车联网和自动化汽车中最关键的挑战之一,在车辆安全、乘客舒适性、运输效率和节能方面至关重要。本次调查试图对车辆控制技术的现状进行全面彻底的概述,重点关注从微观层面的车辆状态估计和轨迹跟踪控制到宏观层面的CAV协同控制的演变。首先从车辆关键状态估计开始,特别是车辆侧滑角,这是车辆轨迹控制的最关键状态,以讨论具有代表性的方法。然后提出了用于AVs的符号车辆轨迹跟踪控制方法。除此之外,还进一步审查了CAV的协作控制框架和相应的应用程序。最后对未来的研究方向和挑战进行了讨论。本次调查旨在深入了解AVs和CAV车辆控制的最新技术,确定关键的重点领域,并指出进一步探索的潜在领域。
公众号-arXiv每日学术速递
2023/08/26
4.4K0
一文尽览 | 2023最新自动驾驶车辆控制全面综述!(状态估计/轨迹控制/框架应用等)
考虑绕障时耗的四轮全向移动机器人轨迹跟踪控制
为保证移动机器人动态环境下的运行安全性,须结合轨迹重规划实现实时绕障;针对路径重规划会带来额外的计算负担、难以保证控制系统实时性的问题,为实现高效高精移动机器人运动控制,提出考虑绕障时耗的四轮全向移动机器人轨迹跟踪控制器。
一点人工一点智能
2023/07/16
8430
考虑绕障时耗的四轮全向移动机器人轨迹跟踪控制
朴素贝叶斯模型(NBM)详解与在Matlab和Python里的具体应用
今天给大家介绍机器学习的一种分类模型朴素贝叶斯模型,这是我整理了好久的文章,希望大家能学到一点知识我也是欣慰的^_^o~ 努力! 点击阅读原文可获得工具包连接与密码:sm2s 回复贝叶斯Matlab可获取全部文章 Word版 贝叶斯 Thomas Bayes,英国数学家。他首先将归纳推理法用于概率论基础理论,并创立了贝叶斯统计理论,对于统计决策函数、统计推断、统计的估算等做出了贡献。 贝叶斯决策理论是主观贝叶斯派归纳理论的重要组成部分。贝叶斯决策就是在不完全情报下,对部分未知的状态用主观概率估计,然后用
量化投资与机器学习微信公众号
2018/01/29
5.3K0
ORB-SLAM——a Versatile and Accurate Monocular SLAM System)
本文提出了ORB-SLAM,在大小场景、室内室外环境下都可以实时操作的一种基于特征的单目SLAM系统。系统对复杂的剧烈运动具有鲁棒性,允许宽基线的闭环和重定位,且包含完整的自动初始化。基于最近几年的优秀算法之上,我们从头开始设计了一种新颖的系统,它对所有SLAM任务使用相同的特征:追踪、建图、重定位和闭环。合适策略的存在使得选择的重建点和关键帧具有很好的鲁棒性,并能够生成紧凑的可追踪的地图,只有当场景内容发生变化地图才改变,从而允许长时间操作。本文从最受欢迎的数据集中提供了27个序列的详尽评估。相对于其他最先进的单目SLAM方法,ORB-SLAM实现了前所未有的性能。为了社会的利益,我们将源代码公开。
全栈程序员站长
2022/06/26
8580
ORB-SLAM——a Versatile and Accurate Monocular SLAM System)
自动控制理论笔记
\(G(s) = \frac{a}{s+a}\) \(\frac{1}{a}\)是时间常数\(\tau\),对应上升为0.63 \(4\tau\)对应阶跃响应0.98
列夫托尔斯昊
2020/08/25
2K0
自动控制理论笔记
Greenplum 实时数据仓库实践(10)——集成机器学习库MADlib
MADlib是一个基于SQL的数据库内置的开源机器学习库,具有良好的并行度和可扩展性,有高度的预测精准度。MADlib最初由Pivotal公司与伯克利大学合作开发,提供了多种数据转换、数据探索、概率统计、数据挖掘和机器学习方法,使用它能够简易地对结构化数据进行分析和学习,以满足各行各业的应用需求。用户可以非常方便地将MADlib加载到数据库中,从而扩展数据库的分析功能。2015年7月MADlib成为Apache软件基金会的孵化器项目,经过两年的发展,于2017年8月毕业成为Apache顶级项目。最新的MADlib 1.18.0可以与PostgreSQL、Greenplum和HAWQ等数据库系统无缝集成。Greenplum MADlib扩展提供了在Greenplum数据库中进行机器学习和深度学习工作的能力。
用户1148526
2022/04/13
1.1K0
Greenplum 实时数据仓库实践(10)——集成机器学习库MADlib
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)
在第一章中,我提到最常见的监督学习任务是回归(预测值)和分类(预测类)。在第二章中,我们探讨了一个回归任务,使用各种算法(如线性回归、决策树和随机森林)来预测房屋价值(这将在后面的章节中进一步详细解释)。现在我们将把注意力转向分类系统。
ApacheCN_飞龙
2024/05/24
3620
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)
推荐阅读
动态系统建模与仿真MATLAB Simulink的应用案例
4400
基于车辆运动学的智能车轨迹跟踪控制方法
1.3K0
Matlab仿真PID控制(带M文件、simulink截图和参数分析)
5K0
基于Simulink实现模糊PID仿真
1K0
基于BP神经网络PID控制+Simulink仿真
8.6K5
【STM32H7的DSP教程】第49章 STM32H7的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
9780
【自动控制原理】Simulink搭建仿真模型(信号发生器、比较点、传递函数、示波器)
2.3K0
【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)
1.7K0
【Matlab】简单控制系统建模(控制系统工具箱)
3360
滑模控制器理论推导和matlab/simulink实例分享
1.6K0
【STM32F407的DSP教程】第49章 STM32F407的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
6930
基于神经网络的机器人学习与控制:回顾与展望
2.3K0
粒子群优化算法的实现方式_matlab粒子群优化算法
1.9K0
一文尽览 | 2023最新自动驾驶车辆控制全面综述!(状态估计/轨迹控制/框架应用等)
4.4K0
考虑绕障时耗的四轮全向移动机器人轨迹跟踪控制
8430
朴素贝叶斯模型(NBM)详解与在Matlab和Python里的具体应用
5.3K0
ORB-SLAM——a Versatile and Accurate Monocular SLAM System)
8580
自动控制理论笔记
2K0
Greenplum 实时数据仓库实践(10)——集成机器学习库MADlib
1.1K0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)
3620
相关推荐
动态系统建模与仿真MATLAB Simulink的应用案例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档