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

企业网站找谁做wordpress 模板 怎么用

企业网站找谁做,wordpress 模板 怎么用,外贸出口流程的基本流程图,怎么做好网站方式推广线性二次调节器#xff08;Linear Quadratic Regulator#xff0c;LQR#xff09;是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下#xff0c;线性系统在LQR 控制方法中用状态空间方程描…        线性二次调节器Linear Quadratic RegulatorLQR是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下线性系统在LQR 控制方法中用状态空间方程描述性能能指标函数由二次型函数描述。 LQR 方法存在以下优点 最小能量消耗和最高路径跟踪精度。求解时能够考虑多状态情况。鲁棒性较强。 缺点 控制效果和模型精确程度有很大相关性。实时计算状态反馈矩阵和控制增益。 一、系统模型 1.1 车辆模型 一般来说阿克曼移动机器人可以简化为自行车模型是一个非线性时变系统工程上一般通过在平衡点附近差分线性化转化为线性系统来分析和控制具体就不推导了我直接给出模型。 1.2 线性系统状态反馈控制示意图 状态反馈是线性能控线性系统镇定的一个有效方法主要是通过极点配置方法寻找一组非正的闭环极点使得闭环系统大范围渐进稳定。 ABC分别代表系统矩阵、输入矩阵和输出矩阵K是待设计的状态反馈增益。 二、控制器设计 2.1 代价函数泛函设计 最优控制里代价函数一般设计为控制性能和控制代价的范数加权和形式如下 其中期望和实际的误差系统定义为 2.2 最优状态反馈控制律推导 当想要状态与期望状态之间的误差越差越小同时控制消耗更少的能量。求解极小值点时新定义拉格朗日函数如下  在拉格朗日函数基础上对各个优化变量的一阶导为零 得 当时候 推导LQR控制律时候设 ,求偏导后可得 由 得 由于状态量初始不为零只能是 又由于当上述方程成立时候收敛到了期望的范围 为零因此得到立卡提方程形式的矩阵微分方程 综上通过迭代或者近似方法求解上述立卡提方程后最优的控制律为 2.3 连续立卡提方程求解流程 三、具体实现代码 3.1 main函数 close all clear; clc; cx []; cy []; y0 (t_step) 10*sin(2 * t_step 1); x0_dot (t_step) 5 * 2 * cos(2 * t_step 1); x0 (t_step) -40*cos(t_step 0.5); for theta0:pi/200:2*picx(end 1) x0(theta);cy(end 1) y0(theta); end refer_path_primary [cx, cy]; x refer_path_primary(:, 1); y refer_path_primary(:, 2); points [x; y]; ds 0.1 ;%等距插值处理的间隔 distance [0, cumsum(hypot(diff(x, 1), diff(y, 1)))]; distance_specific 0:ds:distance(end); hypot(diff(x, 1), diff(y, 1)); diff(x, 1); diff(y, 1); s 0:ds:distance(end); refer_path interp1(distance, points, distance_specific, spline); figure(1) % 绘制拟合曲线 plot(refer_path(:, 1), refer_path(:, 2),b-,x, y,r.); hold on refer_path_x refer_path(:,1); % x refer_path_y refer_path(:,2); % y for i1:length(refer_path)if i1dx refer_path(i 1, 1) - refer_path(i, 1);dy refer_path(i 1, 2) - refer_path(i, 2);ddx refer_path(3, 1) refer_path(1, 1) - 2 * refer_path(2, 1);ddy refer_path(3, 2) refer_path(1, 2) - 2 * refer_path(2, 2);elseif ilength(refer_path)dx refer_path(i, 1) - refer_path(i - 1, 1);dy refer_path(i, 2) - refer_path(i - 1, 2);ddx refer_path(i, 1) refer_path(i - 2, 1) - 2 * refer_path(i - 1, 1);ddy refer_path(i, 2) refer_path(i - 2, 2) - 2 * refer_path(i - 1, 2);elsedx refer_path(i 1, 1) - refer_path(i, 1);dy refer_path(i 1, 2) - refer_path(i, 2);ddx refer_path(i 1, 1) refer_path(i - 1, 1) - 2 * refer_path(i, 1);ddy refer_path(i 1, 2) refer_path(i - 1, 2) - 2 * refer_path(i, 2);endrefer_path(i,3)atan2(dy, dx);%yawrefer_path(i,4)(ddy * dx - ddx * dy) / ((dx ^ 2 dy ^ 2) ^ (3 / 2)); end figure(2) plot(refer_path(:, 3),b-); figure(3) plot(refer_path(:, 4),b-) % %%目标及初始状态 L2;%车辆轴距 v2;%初始速度 dt0.05;%时间间隔 goalrefer_path(end,1:2); x_0refer_path_x(1); y_0refer_path_y(1); psi_0 refer_path(1, 3); % %运动学模型 ugv KinematicModel(x_0, y_0, psi_0, v, dt, L); Q eye(3) * 3.0; R eye(2) * 2.0; robot_state zeros(4, 1); step_points length(refer_path(:, 1)); for i1:1:step_pointsrobot_state(1)ugv.x;robot_state(2)ugv.y;robot_state(3)ugv.psi;robot_state(4)ugv.v;[e, k, ref_yaw, min_idx] calc_track_error(robot_state(1), robot_state(2), refer_path);ref_delta atan2(L * k, 1);[A, B] state_space( robot_state(4), ref_delta, ref_yaw, dt, L);delta lqr(robot_state, refer_path, min_idx, A, B, Q, R);delta delta ref_delta;[ugv.x, ugv.y, ugv.psi, ugv.v] update(0, delta, dt, L, robot_state(1), robot_state(2),robot_state(3), robot_state(4));ugv.record_x(end 1 ) ugv.x;ugv.record_y(end 1 ) ugv.y;ugv.record_psi(end 1 ) ugv.psi;ugv.record_phy(end 1 ) ref_delta; end figure(4) % 绘制拟合曲线 % scr_size get(0,screensize); % set(gcf,outerposition, [1 1 scr_size(4) scr_size(4)]); plot(ugv.record_x , ugv.record_y, Colorm,LineStyle--,LineWidth2); axis([-40,40,-40,40]) grid on hold on % 绘制车辆曲线 axis equal for ii 1:1:length(ugv.record_x)h PlotCarbox(ugv.record_x(ii), ugv.record_y(ii), ugv.record_psi(ii), Color, r,LineWidth2);h1 plot(ugv.record_x(1:ii), ugv.record_y(1:ii),Color, b);th1 text(ugv.record_x(ii), ugv.record_y(ii)10, [#car, num2str(1)], Color, m);set(th1, {HorizontalAlignment},{center});h2 PlotCarWheels(ugv.record_x(ii), ugv.record_y(ii), ugv.record_psi(ii),ugv.record_phy(ii),k,LineWidth2);h3 plot(ugv.record_x(1:ii) , ugv.record_y(1:ii), Colorb,LineStyle-,LineWidth4);drawnowdelete(h); delete(h1);delete(th1);delete(h3);for jj 1:1:size(h2)delete(h2{jj});end end % function [P] cal_Ricatti(A, B, Q, R)Qf Q;P Qf;iter_max 100;Eps 1e-4;for step 1:1:iter_maxP_bar Q A * P * A - A * P * B * pinv(R B * P *B) * B * P * A;criteria max(abs(P_bar - P));if criteria Epsbreak;endP P_bar;endend %%LQR控制器 function[u_star]lqr(robot_state, refer_path, s0, A, B, Q, R)x robot_state(1:3) - refer_path(s0,1:3);P cal_Ricatti(A, B, Q, R);K -pinv(R B * P * B) * B * P * A;u K * x;%状态反馈u_star u(2); endfunction [e, k, yaw, min_idx]calc_track_error(x, y, refer_path)p_num length(refer_path);d_x zeros(p_num, 1);d_y zeros(p_num, 1);d zeros(p_num, 1);for i1:1:p_num d_x(i) refer_path(i, 1) - x; d_y(i) refer_path(i, 2) - y;endfor i1:1:p_num d(i) sqrt(d_x(i) ^2 d_y(i) ^ 2) ;end[~, min_idx] min(d); yaw refer_path(min_idx, 3);k refer_path(min_idx, 4);angle normalize_angle(yaw - atan2(d_y(min_idx), d_x(min_idx)));e d(min_idx);if angle 0e e*(-1);end end %%将角度取值范围限定为[-pi,pi] function [angle]normalize_angle(angle)while angle piangle angle - 2*pi;endwhile angle piangle angle 2*pi;end end function [x_next, y_next, psi_next, v_next] update(a, delta_f, dt, L, x, y, psi, v)x_next x v * cos(psi) * dt;y_next y v * sin(psi) * dt;psi_next psi v / L * tan(delta_f) * dt;v_next v a * dt; end function [A, B]state_space(v, ref_delta, ref_yaw, dt, L)A[ 1.0, 0.0, -v * dt * sin(ref_yaw);0.0, 1.0, v * dt * cos(ref_yaw);0.0, 0.0, 1.0 ];B [ dt * cos(ref_yaw), 0;dt * sin(ref_yaw), 0;dt * tan(ref_delta) / L, v * dt / (L * cos(ref_delta) * cos(ref_delta))]; end function h PlotCarbox(x, y, theta, varargin) Params GetVehicleParams();carbox [-Params.Lr -Params.Lb/2; Params.LwParams.Lf -Params.Lb/2; Params.LwParams.Lf Params.Lb/2; -Params.Lr Params.Lb/2]; carbox [carbox; carbox(1, :)];transformed_carbox [carbox ones(5, 1)] * GetTransformMatrix(x, y, theta); h plot(transformed_carbox(:, 1), transformed_carbox(:, 2), varargin{:});end function hs PlotCarWheels(x, y, theta, phy, varargin) Params GetVehicleParams();wheel_box [-Params.wheel_radius -Params.wheel_width / 2;Params.wheel_radius -Params.wheel_width / 2;Params.wheel_radius Params.wheel_width / 2;-Params.wheel_radius Params.wheel_width / 2];front_x x Params.Lw * cos(theta); front_y y Params.Lw * sin(theta); track_width_2 (Params.Lb - Params.wheel_width / 2) / 2;boxes {TransformBox(wheel_box, x - track_width_2 * sin(theta), y track_width_2 * cos(theta), theta);TransformBox(wheel_box, x track_width_2 * sin(theta), y - track_width_2 * cos(theta), theta);TransformBox(wheel_box, front_x - track_width_2 * sin(theta), front_y track_width_2 * cos(theta), thetaphy);TransformBox(wheel_box, front_x track_width_2 * sin(theta), front_y - track_width_2 * cos(theta), thetaphy); };hs cell(4, 1); for ii 1:4hs{ii} fill(boxes{ii}(:, 1), boxes{ii}(:, 2), varargin{:}); endendfunction transformed TransformBox(box, x, y, theta) transformed [box; box(1, :)]; transformed [transformed ones(5, 1)] * GetTransformMatrix(x, y, theta); transformed transformed(:, 1:2); end function mat GetTransformMatrix(x, y, theta) mat [ ...cos(theta) -sin(theta), x; ...sin(theta) cos(theta), y; ...0 0 1]; end 3.2 运动学结构体  classdef KinematicModelhandlepropertiesx;y;psi;v;dt;L;record_x;record_y;record_psi;record_phy;endmethodsfunction selfKinematicModel(x, y, psi, v, dt, L)self.xx;self.yy;self.psipsi;self.v v;self.L L;% 实现是离散的模型self.dt dt;self.record_x [];self.record_y [];self.record_psi [];self.record_phy [];end end end 四、仿真参数和效果 4.1 参数配置 %期望轨迹 y0 (t_step) 10*sin(2 * t_step 1); x0_dot (t_step) 5 * 2 * cos(2 * t_step 1); L2;%车辆轴距 v2;%初始速度 dt0.05;%时间间隔 Q eye(3) * 3.0; R eye(2) * 2.0; robot_state zeros(4, 1); VehicleParams.Lw 2.8 * 2; % wheel base VehicleParams.Lf 0.96 * 2; % front hang VehicleParams.Lr 0.929 * 2; % rear hang VehicleParams.Lb 1.942 * 2; % width VehicleParams.Ll VehicleParams.Lw VehicleParams.Lf VehicleParams.Lr; % length VehicleParams.f2x 1/4 * (3*VehicleParams.Lw 3*VehicleParams.Lf - VehicleParams.Lr); VehicleParams.r2x 1/4 * (VehicleParams.Lw VehicleParams.Lf - 3*VehicleParams.Lr); VehicleParams.radius 1/2 * sqrt((VehicleParams.Lw VehicleParams.Lf VehicleParams.Lr) ^ 2 / 4 VehicleParams.Lb ^ 2); VehicleParams.a_max 0.5; VehicleParams.v_max 2.5; VehicleParams.phi_max 0.7; VehicleParams.omega_max 0.5; % for wheel visualization VehicleParams.wheel_radius 0.32*2; VehicleParams.wheel_width 0.22*2; iter_max 100; Eps 1e-4; 4.1 仿真效果
http://www.yingshimen.cn/news/17949/

相关文章:

  • 国外有趣的网站怎么申请网站域名
  • 网站登录不上怎么回事新型建筑模板样品图片
  • 做会所网站的123logo设计
  • 建设网站实训心得体会建设风景网站策划书
  • 黄金网站软件入口免费建站之星
  • 邹城网站建设哪家便宜做网站最省钱
  • 网站建设推广的话术微信公众号api接口大全
  • 在哪个网站注册域名深圳seo培训
  • 网站只收录无权重百度指数明星搜索排名
  • 个人网站如何赚钱路由器做php网站吗
  • 建设网站总经理讲话范本南浔住房和城乡建设局网站
  • 做网站 图片素材怎么找网站建站网站45133
  • 医药类网站建设评价网站上传用什么软件做视频格式
  • 网络推广关键词优化公司域名对seo的影响
  • 在线个人资料制作网站高端大气网站模板
  • 网站制作推广电话云梦网站建设
  • 深圳市中农网是专业农产品营销网站假冒网站能通过备案登记吗
  • 网站建设销售找客源wordpress 通用代码
  • windows服务器网站权限如何找专业的网站建设公司
  • 网站图片多 如何优化wordpress落叶插件
  • 如何更新网站缓存沈阳网站建设德泰诺
  • 手机网站有吗做网站不用tomcat行吗
  • 企业网站建设有什么好处定制软件开发合同
  • 推广网站有哪些平台越南做网站
  • 房产汽车网站模板西安市城市建设管理局网站
  • 网站代码下载校园网站怎么建
  • 财经资讯网站该怎么做推广中铁建设集团最新门户网登录
  • 文化网站设计经典案例北京市住房和城乡官网
  • 网站开发要懂英文吗南宁网络公司有哪些
  • 什么网站可以免费做会计初级线上销售培训班课程