Psins代码解析之全局变量&轨迹仿真(test_SINS_trj.m)&惯性解算(test_SINS.m)

2023-11-09

旋转椭球体的4个基本参数:长半轴、扁率(椭圆度)、地心引力常数、自转角速率;

以上内容来自:《车载定位定向系统关键技术研究》付强文

旋转椭球体:

地球自转角速度:

地球重力加速度为:

子午圈和卯酉圈曲率半径为:

 

 以上内容来自:《捷联惯导算法及车载组合导航系统研究(硕士论文)》严恭敏

一、全局变量

global glv
    if ~exist('Re', 'var'),  Re = [];  end
    if ~exist('f', 'var'),   f = [];  end
    if ~exist('wie', 'var'), wie = [];  end
    if isempty(Re),  Re = 6378137;  end
    if isempty(f),   f = 1/298.257;  end
    if isempty(wie), wie = 7.2921151467e-5;  end
    glv.Re = Re;                    % the Earth's semi-major axis
    glv.f = f;                      % flattening
    glv.Rp = (1-glv.f)*glv.Re;      % semi-minor axis
    glv.e = sqrt(2*glv.f-glv.f^2); glv.e2 = glv.e^2; % 1st eccentricity
    glv.ep = sqrt(glv.Re^2-glv.Rp^2)/glv.Rp; glv.ep2 = glv.ep^2; % 2nd eccentricity
    glv.wie = wie;                  % the Earth's angular rate
    glv.meru = glv.wie/1000;        % milli earth rate unit
    glv.g0 = 9.7803267714;          % gravitational force
    glv.mg = 1.0e-3*glv.g0;         % milli g
    glv.ug = 1.0e-6*glv.g0;         % micro g 为 微g
    glv.mGal = 1.0e-3*0.01;         % milli Gal = 1cm/s^2 ~= 1.0E-6*g0
    glv.ugpg2 = glv.ug/glv.g0^2;    % ug/g^2
    glv.ws = 1/sqrt(glv.Re/glv.g0); % Schuler frequency
    glv.ppm = 1.0e-6;               % parts per million百万分之一
    glv.deg = pi/180;               % arcdeg 弧度单位 rad
    glv.min = glv.deg/60;           % arcmin
    glv.sec = glv.min/60;           % arcsec
    glv.hur = 3600;                 % time hour (1hur=3600second)
    glv.dps = pi/180/1;             % arcdeg / second
    glv.dph = glv.deg/glv.hur;      % arcdeg / hour ;最终单位为 rad/s;
%比如:imuerr.eb(1:3) = 1*glv.dph;即为:((1*pi/180)/3600)rad/s
    glv.dpss = glv.deg/sqrt(1);     % arcdeg / sqrt(second) 为 rad/sqrt(s)
    glv.dpsh = glv.deg/sqrt(glv.hur);  % arcdeg / sqrt(hour) 为 rad/sqrt(hour);最终单位为:rad/sqrt(s)
%imuerr.web(1:3) = web*glv.dpsh;即为:((1*pi/180)/sqrt(3600))rad/s   
    glv.dphpsh = glv.dph/sqrt(glv.hur); % (arcdeg/hour) / sqrt(hour) 为 rad/hour/sqrt(hour)
    glv.Hz = 1/1;                   % Hertz
    glv.dphpsHz = glv.dph/glv.Hz;   % (arcdeg/hour) / sqrt(Hz) 为 rad/hour/sqrt(Hz)
    glv.ugpsHz = glv.ug/sqrt(glv.Hz);  % ug / sqrt(Hz)
    glv.ugpsh = glv.ug/sqrt(glv.hur); % ug / sqrt(hour)
    glv.mpsh = 1/sqrt(glv.hur);     % m / sqrt(hour)
    glv.mpspsh = 1/1/sqrt(glv.hur); % (m/s) / sqrt(hour), 1*mpspsh~=1700*ugpsHz
    glv.ppmpsh = glv.ppm/sqrt(glv.hur); % ppm / sqrt(hour)
    glv.mil = 2*pi/6000;            % mil
    glv.nm = 1853;                  % nautical mile 海里
    glv.kn = glv.nm/glv.hur;        % knot 节
    %%
    glv.wm_1 = [0,0,0]; glv.vm_1 = [0,0,0];   % the init of previous gyro & acc sample
    glv.cs = [                      % coning & sculling compensation coefficients
        [2,    0,    0,    0,    0    ]/3
        [9,    27,   0,    0,    0    ]/20
        [54,   92,   214,  0,    0    ]/105
        [250,  525,  650,  1375, 0    ]/504 
        [2315, 4558, 7296, 7834, 15797]/4620 ];
    glv.csmax = size(glv.cs,1)+1;  % max subsample number
    glv.v0 = [0;0;0];    % 3x1 zero-vector
    glv.qI = [1;0;0;0];  % identity quaternion 初始四元数
    glv.I33 = eye(3); glv.o33 = zeros(3);  % identity & zero 3x3 matrices
    glv.pos0 = [34.246048*glv.deg; 108.909664*glv.deg; 380]; % position of INS Lab@NWPU
    glv.eth = []; glv.eth = earth(glv.pos0);
    %%
    [glv.rootpath, glv.datapath, glv.mytestflag] = psinsenvi;
    glv1 = glv;

二、生成仿真轨迹 test_SINS_trj.m

俯仰角抬头为正;横滚角右倾斜为正;

其中方位角变化时(转弯时),先将飞机滚转相应的角度;即:先滚转、后转弯;

已知航向角速率、前向速度,利用向量叉乘得到向心力;利用如下公式,计算出滚转角、滚转角速率、

代码实现:

%‘2’为航向角速率(转弯),2deg/s,转弯时间为45秒;
%协调转弯时间为4秒,即飞机横滚时间,很滚角速率 根据前向速度和航向角速率计算出
seg = trjsegment(seg, 'coturnleft',   45, 2, xxx, 4); 

trjsegment子函数中对应部分:

        case 'coturnleft', % coordinate turn left
            rolllasting = var1; rollw = atan(cf/9.8)/dps/rolllasting; %rollw为横滚角速率(deg/s)
            seg = trjsegment(seg, 'rollleft',  rolllasting, rollw);
            seg = trjsegment(seg, 'turnleft',  lasting, w);
            seg = trjsegment(seg, 'rollright', rolllasting, rollw);

        case 'turnleft',
            seg.wat = [seg.wat; [lasting, seg.vel, 0, 0, w*dps,-cf, 0, 0]];
        case 'turnright',
            seg.wat = [seg.wat; [lasting, seg.vel, 0, 0,-w*dps, cf, 0, 0]];
        case 'rollleft',
            seg.wat = [seg.wat; [lasting, seg.vel, 0,-w*dps, 0, 0, 0, 0]];
        case 'rollright',
            seg.wat = [seg.wat; [lasting, seg.vel, 0, w*dps, 0, 0, 0, 0]];

描述一段完整的运动轨迹,其中初始姿态为0、初始速度为0、初始位置为【34.246048; 108.909664; 380】

  • 初始化
  • 静止100秒
  • 向北加速飞行10秒(a=1m/s^2)
  • 匀速保持100秒
  • 左转弯90°(最终方向为正西,包括飞机先滚转、再转弯、最后反向滚转,恢复滚转角为0)
  • 匀速保持100秒
  • 右转弯450°(最终方向为正北,包括飞机先滚转、再转弯、最后反向滚转,恢复滚转角为0)
  • 匀速保持100秒
  • climb 抬头(2°/s *10s=20°)-匀速保持-低头(-2°/s *10s=-20°)
  • 匀速保持100秒
  • descent 低头(-2°/s *10s=-20°) -保持 -抬头(2°/s *10s=20°)
  • 匀速保持100秒
  • 减速 5秒(a=-2m/s^2),至速度为0
  • 静止100秒

通过轨迹可以看出,最终:roll=pitch=0;yaw=0°;飞机朝北飞行;飞机速度矢量为0矢量;轨迹仿真时间为:966秒

航向角:

水平姿态角:

存在问题地方:生成角增量和速度增量的公式:

三、纯惯性导航仿真 test_SINS.m

由于纯惯导解算高度通道发散;

1、IMU误差生成函数和IMU数据添加误差函数:imuerrset.m和imuadderr.m

此处主要添加两项误差:常值零偏和随机游走为例:

(1)imuerrset.m

%% constant bias & random walk
imuerr.eb(1:3) = eb*glv.dph;   imuerr.web(1:3) = web*glv.dpsh;
imuerr.db(1:3) = db*glv.ug;    imuerr.wdb(1:3) = wdb*glv.ugpsHz;

最终:

imuerr.eb单位为:rad/s ;  imuerr.web单位为:rad/sqrt(s)

imuerr.db单位为:m/s^2 ;  imuerr.wdb单位为:m/s^2/sqrt(s)

(2)imuadderr.m

    drift = [ ts*imuerr.eb(1) + sts*imuerr.web(1)*randn(m,1), ...
              ts*imuerr.eb(2) + sts*imuerr.web(2)*randn(m,1), ...
              ts*imuerr.eb(3) + sts*imuerr.web(3)*randn(m,1), ...
              ts*imuerr.db(1) + sts*imuerr.wdb(1)*randn(m,1), ...
              ts*imuerr.db(2) + sts*imuerr.wdb(2)*randn(m,1), ...
              ts*imuerr.db(3) + sts*imuerr.wdb(3)*randn(m,1) ];
imu(:,1:6) = imu(:,1:6) + drift;

2、初始姿态、速度、位置误差

avpseterr.m

function davp = avpseterr(phi, dvn, dpos)
% avp errors setting.
% Inputs: phi - platform misalignment angles. NOTE: leveling errors 
%               phi(1:2) in arcsec, azimuthe error phi(3) in arcmin
%         dvn - velocity errors in m/s
%         dpos - position errors dpos=[dlat;dlon;dhgt], all in m
% Output: davp = [phi; dvn; dpos]

3、利用一阶马尔可夫生成气压高度计仿真信息

bhsimu.m

    t = (trj.avp(1,10):ts:trj.avp(end,10))';
    bh = interp1(trj.avp(:,10), trj.avp(:,9), t, 'linear');
    bh = bh + bias + markov1(var, tau, ts, length(bh),1);

一阶马尔可夫过程生成的数据为:

利用一阶马尔可夫+初始高度偏差+真实高度=气压高度计,结果为;

目的是每次捷联惯导更新时,都将气压高度计送到位置信息中;

ins.vn(3) = href(k1,2);  ins.pos(3) = href(k1,1);

4、纯惯导解算:

(1)首先对地球、载体相关参数进行外推以双子样为例,nts=2*ts,外推ts;

    %% earth & angular rate updating 
    vn01 = ins.vn+ins.an*nts2; pos01 = ins.pos+ins.Mpv*vn01*nts2;  % extrapolation at t1/2
    ins.eth = ethupdate(ins.eth, pos01, vn01);
    ins.wib = phim/nts; ins.fb = dvbm/nts;  % same as trjsimu
    ins.web = ins.wib - ins.Cnb'*ins.eth.wnie;
%     ins.wnb = ins.wib - ins.Cnb'*ins.eth.wnin;
    ins.wnb = ins.wib - (ins.Cnb*rv2m(phim/2))'*ins.eth.wnin;  % 2014-11-30 因为是外推1/2时刻,所以除以2

主要是利用:

  • 前一时刻速度、加速度、前一时刻位置;外推得到nts时刻的速度、位置
  • 利用外推得到的速度、位置去更新地球相关参数,主要为:子午圈、卯酉圈半径;东北天下wnie分量(与纬度有关)、wnen分量(与速度、位置有关)、重力加速度(与纬度、高度有关)、等信息

(2)速度更新:以双子样为例,nts=2*ts

程序中,首先根据子样数进行圆锥补偿,得到dvbm,即速度增量;

    nn = size(imu,1);
    nts = nn*ins.ts;  nts2 = nts/2;  ins.nts = nts;
    [phim, dvbm] = cnscl(imu,0);    % coning & sculling compensation
%     [phim, dvbm] = cnscl0(imu);    % coning & sculling compensation
    phim = ins.Kg*phim-ins.eb*nts; dvbm = ins.Ka*dvbm-ins.db*nts;  % calibration

然后根据速度更新公式:

其中速度更新公式中的一项如下:dvbm/Δt就等于括号中的内容,也就是下面的 ins.fb

也就是ins.fn=qmulv(ins.qnb,ins.fb);然后通过旋转矢量进行变换;

    %% (1)velocity updating
    ins.fn = qmulv(ins.qnb, ins.fb);
%     ins.an = qmulv(rv2q(-ins.eth.wnin*nts2),ins.fn) + ins.eth.gcc;
    ins.an = rotv(-ins.eth.wnin*nts2, ins.fn) + ins.eth.gcc;
    vn1 = ins.vn + ins.an*nts;

(3)位置更新:以双子样为例,nts=2*ts

利用上面外推nts时刻得到的地球参数和速度更新得到的速度;利用梯形积分得到位置;

    %% (2)position updating
%     ins.Mpv = [0, 1/ins.eth.RMh, 0; 1/ins.eth.clRNh, 0, 0; 0, 0, 1];
    ins.Mpv(4)=1/ins.eth.RMh; ins.Mpv(2)=1/ins.eth.clRNh;
%     ins.Mpvvn = ins.Mpv*((ins.vn+vn1)/2+(ins.an-ins.an0)*nts^2/3);  % 2014-11-30
    ins.Mpvvn = ins.Mpv*(ins.vn+vn1)/2;
    ins.pos = ins.pos + ins.Mpvvn*nts;  
    ins.vn = vn1;
    ins.an0 = ins.an;

(4)姿态更新:以双子样为例,nts=2*ts

    %% (3)attitude updating
    ins.Cnb0 = ins.Cnb;
%     ins.qnb = qupdt(ins.qnb, ins.wnb*nts);  % lower accuracy than next line
    ins.qnb = qupdt2(ins.qnb, phim, ins.eth.wnin*nts);
    [ins.qnb, ins.att, ins.Cnb] = attsyn(ins.qnb);
    ins.avp = [ins.att; ins.vn; ins.pos];

利用四元数进行姿态更新;

其中用到了三角函数和单位四元数关系:

5、误差图:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Psins代码解析之全局变量&轨迹仿真(test_SINS_trj.m)&惯性解算(test_SINS.m) 的相关文章

  • java并发编程(7) 共享模型之工具 - 自定义线程池

    文章目录 前言 1 线程池 2 线程池自定义 步骤1 自定义拒绝策略接口 步骤2 自定义任务队列 1 任务队列参数定义 2 任务队列获取任务 3 任务队列添加任务 4 任务队列其他方法 5 任务队列全部代码 步骤3 自定义线程池 1 线程池
  • Qt多进程间通信方式——共享内存

    正文 Windows平台下进程间通信常用方式有管道 文件映射 Socket通信和共享内存等 这里详细介绍一下Qt的共享内存机制 Qt官方例子 Qt官方的例子主要是一个客户端加载图片后 将图片存储到共享内存中 另一个客户端从共享内存中获取图片
  • duboo使用zookeeper连接的单机及集群配置方式

    1 单机配置
  • Spring Boot中使用WebSocket 【第一部分】

    简介 所谓WebSocket 类似于Socket 它的作用是可以让Web应用中的客户端和服务端建立全双工通信 在基于Spring的应用中使用WebSocket一般可以有以下三种方式 使用Java提供的 ServerEndpoint注解实现
  • 关于maven项目中Tomcat10与JSTL问题汇总(Debug亲身经历)

    文章目录 问题描述与解决方法 问题1 无法在web xml或使用此应用程序部署的jar文件中解析绝对uri http java sun com jsp jstl core 问题2 java lang NoClassDefFoundError
  • java 调用cmd_java打开本地应用程序(调用cmd)---Runtime用法详解

    有时候我们需要借助java程序打开电脑自带的一些程序 可以直接打开或者借助cmd命令窗口打开一些常用的应用程序或者脚本 在cmd窗口执行的命令都可以通过这种方式运行 例如 packagecn xm exam test importjava
  • 爱情与婚姻的区别(多种说法)

    在生活中 爱情与婚姻的话题 总是被人们不停的讨论着 有人说婚姻是爱情的坟墓 也有人说婚姻是爱情的延续 可我却认为 爱情是浪漫的 而婚姻是现实的 在现实中没有一个人敢说自己真正的懂得爱情 或是看透了婚姻 而至于婚姻是爱情的延续也好 或婚姻是爱
  • html5 css3教案,认识CSS3和HTML5

    内容简介 认识CSS3和HTML5 内容节选 共100页 本文写于2006年1月 当时IE7 IE8和Firefox3还未发行 文中所有说的浏览器支持均未包括这三个版本的浏览器 在IE8和Firefox3中 文中的大部分选择符已经被支持 d
  • android 实现GridView多选效果

    在使用 GridView的时候 有时需要多选上面显示的类容 比如批量删除上面显示的图片 批量上传图片等 这个时候我们可以使用层叠图来实现 效果如下 点击图片后 上面会显示出一个打钩的图片 如图 再点击选中图片 勾消失 转存失败重新上传取消
  • 基于均匀分布总体的样本及其概率密度函数的数据分析

    基于均匀分布总体的样本及其概率密度函数的数据分析 在数据分析中 我们经常遇到从某个总体中获取的样本数据 本文将讨论一个由均匀分布总体生成的样本 并使用R语言来演示相关的数据分析技术 首先 让我们了解均匀分布总体及其概率密度函数 均匀分布是一
  • 动态数据锚点定位

    锚点定位 左侧点击右侧锚点定位样式一 div class left a href book time a a href search a a href search flow a div div class right div div di
  • Java算法LC刷(3.无重复字符的最长子串)

    无重复字符的最长子串 package com core doc LeetCode public class T3 public static void main String args int map lengthOfLongestSubs
  • DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead

    问题描述 使用find element by id时报错 DeprecationWarning find element by commands are deprecated Please use find element instead
  • php组件缓冲区溢出漏洞,一个缓冲区溢出漏洞的简易教程

    这篇文章类似于 傻瓜系列之利用缓冲区溢出 在这类漏洞中 我们的做法是利用网络 程序控制器 输入等等 发送超大的数据缓冲区给程序 覆盖程序内存的重要部分 在这些缓冲区覆盖程序内存之后 我们可以重定向程序的执行流并运行注入代码 首先 我们需要做
  • 财务用计算机在成本核销,《初级会计电算化》精选题库附答案解析(五)

    初级会计电算化 练习题五 含答案解析 1 当月的记账凭证必须全部记账 如有未记账的当月凭证 系统将 TopSage A 不能结账 B 继续结账 C 放到下月 答案 A 2 往来账管理的往来客户档案的设置其最主要内容是 TopSage A 客
  • 关于 IDEA创建Spring项目时出现Cannot resolve plugin XXX的解决办法

    在创建spring项目时候Plugins文件夹下面出现许多的红色波浪报错 如下 org apache maven plugins maven clean plugin 2 5 org apache maven plugins maven c
  • 前端 - js - 编程题23 - 两数之和

    给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标 你可以假设每种输入只会对应一个答案 但是 你不能重复利用这个数组中同样的元素 示例 给定nums 2 7 11 15
  • Windows系统如何查看占用的端口

    Windows系统如何查看占用的端口 在有些时候 我们需要知道Windows系统占用了那些端口 比如 需要在服务器上部署一个应用程序时 需要给这个应用程序提供空闲端口用来通信 除了一些约定俗成的端口外 例如 HTTP服务占用80端口 FTP
  • Java多线程列子

    问题如下 两个线程 线程A 线程B 一个固定容量为50的队列List

随机推荐

  • 解决Spring boot 工程console打印太多信息

    resources下添加配置文件 logback xml 添加下面代码
  • 决策树(Decision Tree)

    一 简介 决策树 decision tree 是一种基本的分类与回归方法 本章主要讨论用于分类的决策树 决策树模型呈树形结构 在分类问题中 表示基于特征对实例进行分类的过程 它可以认为是if then规则的集合 也可以认为是定义在特征空间与
  • SpringBoot实战——个人博客项目

    目录 一 项目简介 二 项目整体架构 数据库模块 后端模块 前端模块 三 项目具体展示 四 项目的具体实现 1 一些准备工作 数据库 数据表的创建 设置数据库和MyBatis的配置 将前端项目引入到当前项目中 2 登录注册模块 实体类的创建
  • 【手写一个Tomcat】SimpleTomcat-01

    目录 前言 实现 http TomcatRequest http TomcatResponse http TomcatServlet SimpleTomcat servlet FirstServlet servlet SecondServl
  • 常用数据库validationQuery检查语句

    validationQuery是用来验证数据库连接的查询语句 这个查询语句必须是至少返回一条结果的SELECT语句 每种数据库都有各自的验证语句 下表中从网上收集了几种常见数据库的validationQuery 数据库 validation
  • 搭建服务注册与发现中心

    使 Spring Cloud Netflix 中的 Eureka 搭建服务注册与发现中 创建SpringBoot应 添加依赖 spring web eureka server 配置服务注册与发现中心 设置服务注册与发现中 的端 server
  • 数据挖掘应用实例_手把手教你做数据挖掘 !(附教程&数据源)

    作者 宋莹 本文长度为10427字 建议阅读20 分钟 本文为你介绍数据挖掘的知识及应用 引言最近笔者学到了一个新词 叫做 认知折叠 就是将复杂的事物包装成最简单的样子 让大家不用关心里面的细节就能方便使用 作为数据科学领域从业者 我们所做
  • 行业首发!《硬件工程师进阶武器库》免费赠送!限量2000份,送完不补!

    对于刚入硬件行业的3 5年工程师来说 如果能有一个好的师傅引路 那是最好不过的了 但是往往大神很少 能够愿意倾囊相授的也难遇到 如果在这个阶段 能够找到行业中top级企业内部的学习资料 或者高阶的技能图谱 或者行业大神的学习教程等等 就能够
  • Unity Koreographer 之 音乐制作插件介绍学习,一般使用步骤介绍(包括:一般音乐游戏制作流程简绍) 一

    Unity Koreographer 之 音乐制作插件介绍学习 一般使用步骤 介绍 一 目录 Unity Koreographer 之 音乐制作插件介绍学习 一般使用步骤 一 一 Koreographer 简单介绍 二 Koreograph
  • 例说数据结构&STL(一)——vector

    1 白话vector 向量 数据结构vector又称为动态数组 因为它无需像普通数组定义的时候规定具体空间大小 一定程度上可以节约内存空间 但是它又具有普通数组连续物理内存存储的优势 即各元素之间构成一个线性的前后次序 数据的物理存储位置与
  • Java中继承详解

    为什么要继承 面相对象思想中提出了继承的概念 专门用来进行共性抽取 实现代码复用 继承概念 子类将父类的一些属性与方法继承过来 然后自己再添加一些新的特性 继承的语法 1 在Java中如果要表示类之间的继承关系 需要借助extends关键字
  • 内存函数的介绍

    前言 本博客向大家介绍四个内存函数 memcpy 内存拷贝 memmove 内存移动 memcmp 内存比较 memset 内存设置 memcpy函数的介绍及其应用 num表示要拷贝几个字节 遇到 0 他并不会停下来 如果destinati
  • 图像处理(二十一)基于数据驱动的人脸卡通动画生成-Siggraph Asia 2014

    基于数据驱动的人脸卡通动画生成 原文地址 http blog csdn net hjimce article details 47083321 作者 hjimce 在现实生活中 我们经常会去评价一个人 长得是否漂亮 是不是帅哥美女 然而如何
  • 牛客10道练习题2--练习记录

    原题 牛客10道练习题2 meiribaofu的博客 CSDN博客 1 快递运输 一辆运送快递的货车 运送的快递均放在大小不等的长方体快递盒中 为了能够装载更多的快递 同时不能让货车超载 需要计算最多能装多少个快递 输入描述 第一行输入每个
  • 【华为OD机试】寻找身高相近的小朋友(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 题目描述 小明今年升学到小学一年级 来到新班级后发现其他小朋友们身高参差不齐 然后就想基于各小朋友和自
  • WSL使用史上最详细教程

    文章目录 1 概述 1 1 什么是适用于 Linux 的 Windows 子系统 1 2 什么是 WSL 2 1 3 WSL 2 中的新增功能 1 4 比较 WSL 2 和 WSL 1 1 4 1 比较功能 1 4 2 使用 Linux 文
  • 出现No module named ‘keras‘ 或者 module ‘xxxxxxx’ has no attribute ‘xxx’ 的问题原因和解决方案

    问题一 当导入keras工具包时出现 No module named keras 出现这个问题时 说明你的python语言库中并没有安装这个工具包 打开cmd 然后输入命令pip install keras就可以了 然后在python环境中
  • React-Native画线平滑处理

    参考 http blog csdn net pz789as article details 52795275 这次开发要手写画线 我们一般画线的时候是直接获取屏幕上的点 然后利用ART绘制出一天路径线 Sample React Native
  • 蓝桥杯 2019 JAVA A组 最大降雨量

    题目 试题四 最大降雨量 问题描述 由于沙之国长年干旱 法师小明准备施展自己的一个神秘法术来求雨 这个法术需要用到他手中的49张法术符 上面分别写着1至49这49个数字 法术一共持续7周 每天小明都要使用一张法术符 法术符不能重复使用 每周
  • Psins代码解析之全局变量&轨迹仿真(test_SINS_trj.m)&惯性解算(test_SINS.m)

    旋转椭球体的4个基本参数 长半轴 扁率 椭圆度 地心引力常数 自转角速率 以上内容来自 车载定位定向系统关键技术研究 付强文 旋转椭球体 地球自转角速度 地球重力加速度为 子午圈和卯酉圈曲率半径为 以上内容来自 捷联惯导算法及车载组合导航系