当前位置: 首页 > news >正文

网站制作策划方案做网站银川

网站制作策划方案,做网站银川,传统营销和网络营销的区别,北京人力资源网站目录 0 专栏介绍1 最优控制理论2 线性二次型问题3 LQR的价值迭代推导4 基于差速模型的LQR控制5 仿真实现5.1 ROS C实现5.2 Python实现5.3 Matlab实现 0 专栏介绍 #x1f525;附C/Python/Matlab全套代码#x1f525;课程设计、毕业设计、创新竞赛必备#xff01;详细介绍全… 目录 0 专栏介绍1 最优控制理论2 线性二次型问题3 LQR的价值迭代推导4 基于差速模型的LQR控制5 仿真实现5.1 ROS C实现5.2 Python实现5.3 Matlab实现 0 专栏介绍 附C/Python/Matlab全套代码课程设计、毕业设计、创新竞赛必备详细介绍全局规划(图搜索、采样法、智能算法等)局部规划(DWA、APF等)曲线优化(贝塞尔曲线、B样条曲线等)。 详情图解自动驾驶中的运动规划(Motion Planning)附几十种规划算法 1 最优控制理论 最优控制理论是一种数学和工程领域的理论旨在寻找如何使系统在给定约束条件下达到最佳性能的方法。它的基本思想是通过选择合适的控制输入以最小化或最大化某个性能指标来优化系统的行为。其中系统的动态行为通常用状态方程描述状态表示系统在某一时刻的内部状态。状态空间表示将系统的状态和控制输入表示为向量通常用微分方程或差分方程来描述系统的演化。在最优控制理论中会设置代价函数或者目标函数用来衡量系统行为的好坏的函数。性能指标可以是各种形式如最小化路径长度、最小化能量消耗、最大化系统稳定性等。最优控制理论在许多领域都有广泛的应用包括航空航天、机器人学、经济学、生态学等。 2 线性二次型问题 若系统动力学特性可以用一组线性微分方程表示且性能指标为状态变量和控制变量的二次型函数则此类最优控制问题称为线性二次型问题。线性二次调节器(Linear Quadratic Regulator, LQR)是求解线性二次型问题常用的求解方法之一其假设系统零输入且期望状态为零。 如图所示的全状态反馈控制系统。设控制误差 x k z k − z k ∗ \boldsymbol{x}_k\boldsymbol{z}_k-\boldsymbol{z}_{k}^{*} xk​zk​−zk∗​其中 z k \boldsymbol{z}_k zk​、 z k ∗ \boldsymbol{z}_{k}^{*} zk∗​分别是第 k k k个控制时间步的实际状态和期望状态则全反馈控制律由误差驱动 v k v k ∗ − K x k ⇔ u v − v ∗ u k − K x k \boldsymbol{v}_k\boldsymbol{v}_{k}^{*}-\boldsymbol{Kx}_k\xLeftrightarrow{\boldsymbol{u}\boldsymbol{v}-\boldsymbol{v}^*}\boldsymbol{u}_k-\boldsymbol{Kx}_k vk​vk∗​−Kxk​uv−v∗ ​uk​−Kxk​ 上式表明可以通过选取状态变量和输入变量使系统等效为零输入(跟踪期望输入)且期望状态为零(消除状态误差)满足应用LQR进行最优控制的条件。定义代价函数 J ∑ k 0 N ( x k T Q x k u k T R u k ) J\sum_{k0}^N{\left( \boldsymbol{x}_{k}^{T}\boldsymbol{Qx}_k\boldsymbol{u}_{k}^{T}\boldsymbol{Ru}_k \right)} Jk0∑N​(xkT​Qxk​ukT​Ruk​) 其中 Q \boldsymbol{Q} Q与 R \boldsymbol{R} R是用户设定的半正定矩阵前者衡量了系统状态向期望轨迹的收敛速度后者衡量了系统能量消耗的相对大小二者互相制约——希望系统快速收敛往往需要加强控制力度导致能量耗散。因此 与 需要结合具体场景进行调节。 3 LQR的价值迭代推导 针对 J J J进行优化引入价值迭代策略价值迭代的理论基础请看Pytorch深度强化学习1-4策略改进定理与贝尔曼最优方程详细推导 J k ( x k , u k ) min ⁡ u k [ x k T Q x k u k T R u k J k 1 ( x k 1 ) ] J_k\left( \boldsymbol{x}_k,\boldsymbol{u}_k \right) \underset{\boldsymbol{u}_k}{\min}\left[ \boldsymbol{x}_{k}^{T}\boldsymbol{Qx}_k\boldsymbol{u}_{k}^{T}\boldsymbol{Ru}_kJ_{k1}\left( \boldsymbol{x}_{k1} \right) \right] Jk​(xk​,uk​)uk​min​[xkT​Qxk​ukT​Ruk​Jk1​(xk1​)] 即第 k k k步到终端的代价等于当前步的代价与第 k 1 k1 k1步到终端的代价之和。根据 J J J的定义其一定能表示成二次型 J k x k T P k x k J_k\boldsymbol{x}_{k}^{T}\boldsymbol{P}_k\boldsymbol{x}_k Jk​xkT​Pk​xk​对于优化问题 u k a r g min ⁡ u k J k ( x k , u k ) \boldsymbol{u}_k\mathrm{arg}\min _{\boldsymbol{u}_k}J_k\left( \boldsymbol{x}_k,\boldsymbol{u}_k \right) uk​argminuk​​Jk​(xk​,uk​)令 ∂ J k ( x k , u k ) ∂ u k ∂ ∂ u k ( x k T P k x k u k T R u k J k 1 ( A x k B u k ) ) ∂ ∂ u k ( u k T R u k ( A x k B u k ) T P k 1 ( A x k B u k ) ) 2 ( R B T P k 1 B ) u k 2 B T P k 1 A x k 0 \begin{aligned}\frac{\partial J_k\left( \boldsymbol{x}_k,\boldsymbol{u}_k \right)}{\partial \boldsymbol{u}_k}\frac{\partial}{\partial \boldsymbol{u}_k}\left( \boldsymbol{x}_{k}^{T}\boldsymbol{P}_k\boldsymbol{x}_k\boldsymbol{u}_{k}^{T}\boldsymbol{Ru}_kJ_{k1}\left( \boldsymbol{Ax}_k\boldsymbol{Bu}_k \right) \right) \\\frac{\partial}{\partial \boldsymbol{u}_k}\left( \boldsymbol{u}_{k}^{T}\boldsymbol{Ru}_k\left( \boldsymbol{Ax}_k\boldsymbol{Bu}_k \right) ^T\boldsymbol{P}_{k1}\left( \boldsymbol{Ax}_k\boldsymbol{Bu}_k \right) \right) \\2\left( \boldsymbol{R}\boldsymbol{B}^T\boldsymbol{P}_{k1}\boldsymbol{B} \right) \boldsymbol{u}_k2\boldsymbol{B}^T\boldsymbol{P}_{k1}\boldsymbol{Ax}_k\\0\end{aligned} ∂uk​∂Jk​(xk​,uk​)​​∂uk​∂​(xkT​Pk​xk​ukT​Ruk​Jk1​(Axk​Buk​))∂uk​∂​(ukT​Ruk​(Axk​Buk​)TPk1​(Axk​Buk​))2(RBTPk1​B)uk​2BTPk1​Axk​0​ 则 u k ∗ − ( R B T P k 1 B ) − 1 B T P k 1 A x k \boldsymbol{u}_{k}^{*}-\left( \boldsymbol{R}\boldsymbol{B}^T\boldsymbol{P}_{k1}\boldsymbol{B} \right) ^{-1}\boldsymbol{B}^T\boldsymbol{P}_{k1}\boldsymbol{Ax}_k uk∗​−(RBTPk1​B)−1BTPk1​Axk​对比 u k − K x k \boldsymbol{u}_k-\boldsymbol{Kx}_k uk​−Kxk​可得 K k ( R B T P k 1 B ) − 1 B T P k 1 A \boldsymbol{K}_k\left( \boldsymbol{R}\boldsymbol{B}^T\boldsymbol{P}_{k1}\boldsymbol{B} \right) ^{-1}\boldsymbol{B}^T\boldsymbol{P}_{k1}\boldsymbol{A} Kk​(RBTPk1​B)−1BTPk1​A 将 u k − K x k \boldsymbol{u}_k-\boldsymbol{Kx}_k uk​−Kxk​代入 J k J_k Jk​可得 J k x k T P k x k x k T ( Q K k T R K k ( A − B K k ) P k 1 ( A − B K k ) ) x k J_k\boldsymbol{x}_{k}^{T}\boldsymbol{P}_k\boldsymbol{x}_k\boldsymbol{x}_{k}^{T}\left( \boldsymbol{Q}\boldsymbol{K}_{k}^{T}\boldsymbol{RK}_k\left( \boldsymbol{A}-\boldsymbol{BK}_k \right) \boldsymbol{P}_{k1}\left( \boldsymbol{A}-\boldsymbol{BK}_k \right) \right) \boldsymbol{x}_k Jk​xkT​Pk​xk​xkT​(QKkT​RKk​(A−BKk​)Pk1​(A−BKk​))xk​ 从而 P k Q A T P k 1 A − A T P k 1 B ( R B T P k 1 B ) − 1 B T P k 1 A \boldsymbol{P}_k\boldsymbol{Q}\boldsymbol{A}^T\boldsymbol{P}_{k1}\boldsymbol{A}-\boldsymbol{A}^T\boldsymbol{P}_{k1}\boldsymbol{B}\left( \boldsymbol{R}\boldsymbol{B}^T\boldsymbol{P}_{k1}\boldsymbol{B} \right) ^{-1}\boldsymbol{B}^T\boldsymbol{P}_{k1}\boldsymbol{A} Pk​QATPk1​A−ATPk1​B(RBTPk1​B)−1BTPk1​A 称为离散迭代黎卡提方程。根据贝尔曼最优原理在迭代过程中 P k \boldsymbol{P}_k Pk​会逐步收敛。 4 基于差速模型的LQR控制 根据差分机器人运动学模型 p ˙ [ x ˙ y ˙ θ ˙ ] [ v cos ⁡ θ v sin ⁡ θ ω ] [ f 1 f 2 f 3 ] \boldsymbol{\dot{p}}\left[ \begin{array}{c} \dot{x}\\ \dot{y}\\ \dot{\theta}\\\end{array} \right] \left[ \begin{array}{c} v\cos \theta\\ v\sin \theta\\ \omega\\\end{array} \right] \left[ \begin{array}{c} f_1\\ f_2\\ f_3\\\end{array} \right] p˙​ ​x˙y˙​θ˙​ ​ ​vcosθvsinθω​ ​ ​f1​f2​f3​​ ​ 选择状态量 p [ x y θ ] T \boldsymbol{p}\left[ \begin{matrix} x y \theta\\\end{matrix} \right] ^T p[x​y​θ​]T和状态误差量 x [ x − x r y − y r θ − θ r ] T \boldsymbol{x}\left[ \begin{matrix} x-x_r y-y_r \theta -\theta _r\\\end{matrix} \right] ^T x[x−xr​​y−yr​​θ−θr​​]T控制量 s [ v ω ] T \boldsymbol{s}\left[ \begin{matrix} v \omega\\\end{matrix} \right] ^T s[v​ω​]T和控制误差量 u [ v − v r ω − ω r ] T \boldsymbol{u}\left[ \begin{matrix} v-v_r \omega -\omega _r\\\end{matrix} \right] ^T u[v−vr​​ω−ωr​​]T可得 x ( k 1 ) ( T A I ) x ( k ) T B u ( k ) \boldsymbol{x}\left( k1 \right) \left( T\boldsymbol{A}\boldsymbol{I} \right) \boldsymbol{x}\left( k \right) T\boldsymbol{Bu}\left( k \right) x(k1)(TAI)x(k)TBu(k) 其中 A [ 0 0 − v r sin ⁡ θ r 0 0 v r cos ⁡ θ r 0 0 0 ] , B [ cos ⁡ θ r 0 sin ⁡ θ r 0 0 1 ] \boldsymbol{A}\left[ \begin{matrix} 0 0 -v_r\sin \theta _r\\ 0 0 v_r\cos \theta _r\\ 0 0 0\\\end{matrix} \right] , \boldsymbol{B}\left[ \begin{matrix} \cos \theta _r 0\\ \sin \theta _r 0\\ 0 1\\\end{matrix} \right] A ​000​000​−vr​sinθr​vr​cosθr​0​ ​,B ​cosθr​sinθr​0​001​ ​ 接着按照LQR算法求解即可。 5 仿真实现 5.1 ROS C实现 核心代码如下所示 Eigen::Vector2d LQRPlanner::_lqrControl(Eigen::Vector3d s, Eigen::Vector3d s_d, Eigen::Vector2d u_r) {Eigen::Vector2d u;Eigen::Vector3d e(s - s_d);e[2] regularizeAngle(e[2]);// state equation on errorEigen::Matrix3d A Eigen::Matrix3d::Identity();A(0, 2) -u_r[0] * sin(s_d[2]) * d_t_;A(1, 2) u_r[0] * cos(s_d[2]) * d_t_;Eigen::MatrixXd B Eigen::MatrixXd::Zero(3, 2);B(0, 0) cos(s_d[2]) * d_t_;B(1, 0) sin(s_d[2]) * d_t_;B(2, 1) d_t_;// discrete iteration Ricatti equationEigen::Matrix3d P, P_;P Q_;for (int i 0; i max_iter_; i){Eigen::Matrix2d temp R_ B.transpose() * P * B;P_ Q_ A.transpose() * P * A - A.transpose() * P * B * temp.inverse() * B.transpose() * P * A;if ((P - P_).array().abs().maxCoeff() eps_iter_)break;P P_;}// feedbackEigen::MatrixXd K -(R_ B.transpose() * P_ * B).inverse() * B.transpose() * P_ * A;u u_r K * e;return u; }5.2 Python实现 核心代码如下所示 def lqrControl(self, s: tuple, s_d: tuple, u_r: tuple) - np.ndarray:dt self.params[TIME_STEP]# state equation on errorA np.identity(3)A[0, 2] -u_r[0] * np.sin(s_d[2]) * dtA[1, 2] u_r[0] * np.cos(s_d[2]) * dtB np.zeros((3, 2))B[0, 0] np.cos(s_d[2]) * dtB[1, 0] np.sin(s_d[2]) * dtB[2, 1] dt# discrete iteration Ricatti equationP, P_ np.zeros((3, 3)), np.zeros((3, 3))P self.Q# iterationfor _ in range(self.lqr_iteration):P_ self.Q A.T P A - A.T P B np.linalg.inv(self.R B.T P B) B.T P Aif np.max(P - P_) self.eps_iter:breakP P_# feedbackK -np.linalg.inv(self.R B.T P_ B) B.T P_ Ae np.array([[s[0] - s_d[0]], [s[1] - s_d[1]], [self.regularizeAngle(s[2] - s_d[2])]])u np.array([[u_r[0]], [u_r[1]]]) K ereturn np.array([[self.linearRegularization(float(u[0]))], [self.angularRegularization(float(u[1]))]])5.3 Matlab实现 核心代码如下所示 function u lqrControl(s, s_d, u_r, robot, param)dt param.dt;% state equation on errorA eye(3);A(1, 3) -u_r(1) * sin(s_d(3)) * dt;A(2, 3) u_r(1) * cos(s_d(3)) * dt;B zeros(3, 2);B(1, 1) cos(s_d(3)) * dt;B(2, 1) sin(s_d(3)) * dt;B(3, 2) dt;% discrete iteration Ricatti equationP param.Q;% iterationfor i1:param.lqr_iterationP_ param.Q A * P * A - A * P * B / (param.R B * P * B) * B * P * A;if max(P - P_) param.eps_iterbreak;endP P_;end% feedbackK -inv(param.R B * P_ * B) * B * P_ * A;e [s(1) - s_d(1); s(2) - s_d(2); regularizeAngle(s(3) - s_d(3))];u [u_r(1); u_r(2)] K * e;u [linearRegularization(robot, u(1), param), angularRegularization(robot, u(2), param)]; end完整工程代码请联系下方博主名片获取 更多精彩专栏 《ROS从入门到精通》《Pytorch深度学习实战》《机器学习强基计划》《运动规划实战精讲》… 源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系
http://www.hkea.cn/news/14321429/

相关文章:

  • 亚马逊跨境电商开店万能优化大师下载
  • 网站建设的通知一级域名建站网站建设行吗
  • 建设网站软件无锡网站制作哪家便宜
  • 国外扁平化设计网站农村基本制度建设网站
  • 佛山网站建设哪家评价高关键词优化排名哪家好
  • 培训网站视频不能拖动怎么办全国文明网联盟网站建设
  • 赤峰城乡建设局网站政务网站模板
  • dw做网站的导航栏wordpress文章保存目录
  • wordpress网页版山西网站seo
  • 如何查询网站的建站工具网站建设模型
  • 肥城网站制作网站建设费用 优帮云
  • 苏州园区网站设计公司杭州品牌推广
  • 从化哪里做网站好网站维护是什么职位
  • 武威百度做网站多少钱公司网站建设费用估计
  • 重庆网站seo排名更改wordpress主题字体颜色
  • 濮阳公司做网站wordpress物流企业主题
  • h5四合一网站建设wordpress关闭手机主题
  • 网站建设 维护 编程网站页面设计策划书
  • 备案关闭网站墨刀怎么做网站
  • 网站建设高端培训学校微网站建设完 不知道怎么推广咋办
  • 渭南建网站仪征网站建设
  • 工信部网站 登陆有什么网站可以做外贸出口信息
  • 上海做网站推广关键词网站设计制作公司地址
  • 网站产品管理模块wordpress图片页面模板
  • 网站开发的论文怎么写给我看免费观看
  • ftp 网站基于php网站开发环境
  • 营销网站和展示型网站wordpress战队模板
  • 泰兴网站设计新网店怎么免费推广
  • 设置一个网站到期页面北京网站备案拍照
  • 做网站多少钱大概班级优化大师免费下载学生版