串级PID原理及调参
PID各参数的作用PID控制器是实际工程中应用最广泛的控制器,其核心思想是“用误差消除误差”,即使用目标值与实际值的差值经过PID控制器得到输入量,去不断修正实际值,使其与目标值接近。以一常规布局固定翼无人机的俯仰角控制系统为例,对PID的各因子进行测试,取其升降舵到俯仰角的传递函数为
\frac {\Delta \theta}{\Delta \delta e}(s)= \frac {-43.023s^3-118.0028s^2-28.7354s}{s^5+5.2253s^4+17.4334s^3+3.724s^2+6.9967s}比例P通过比例控制器对系统进行控制,系统输入$u=K_P(y_c-y)$。当比例系数$K_P$取0.2、0.5、0.8的响应如下。增大$K_P$的优点:
操纵输入u增大,加快系统响应。
降低系统静差。
$K_P$过大的缺点:
系统响应的超调、震荡越大,系统稳定性变差。
比例可以减小误差,但是不能完全消除误差。
比例P+积分I通过比例积分控制器对系统进行控制,系统输入$u=K_P(y_c-y)+K_I\int(y_c-y)dt$。当比例系数取0.5, ...
Markdown语法
Markdown其实就是一种易于编写的普通文本,会对部分标签的文本进行渲染。在渲染时会转换为html标签。在使用过程中,在语法后至少保留一个空格或空行。参考链接Markdown 教程
标题Markdown支持6种级别的标题,使用#的数量来表示等级123456# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题效果如下【为防止目录混乱,此处使用图片展示】:
列表
无序列表,使用*、+、-表示
有序列表,使用数字加.标识,例如:1.
为了方便编号,有序列表只关注第一个项目的数字编号,例如:
123456* 选项A* 选项B* 选项C1. 选项11. 选项22. 选项3
效果如下:
选项A
选项B
选项C
选项1
选项2
选项3
强调在段首增加”>”,可以使该段文字高亮显示,本文章中的示例已使用强调显示1> 强调文本效果如下:
强调文本
使用一个*或_包裹文字,可实现斜体;使用两个**或者__包裹文字,可以实现粗体1强调:*斜体*、**粗体**、**粗斜体***效果如下:
斜体、粗体、粗斜体
分割线在空行使用三个以上的* ...
PX4-gazebo
本文主要由AI生成,交叉一些测试信息、代码,不能代表全部正确。
Gazebo基本介绍Gazebo是一款开源的3D模拟器,包括多种物理引擎、传感器模拟、用户界面以及与机器人操作系统(ROS)的紧密集成。
以下是Gazebo的一些主要特点:
物理模拟:Gazebo能够模拟真实的物理现象,如重力、碰撞检测、摩擦力等。
传感器模拟:它支持多种传感器,包括摄像头、激光扫描仪、IMU(惯性测量单元)等。
图形界面:用户可以通过图形界面来直观地构建和配置仿真环境。
插件系统:Gazebo的插件系统允许用户自定义和扩展其功能。
集成与ROS:Gazebo与ROS(Robot Operating System)紧密集成,使得在仿真环境中测试ROS节点变得非常方便。
跨平台:Gazebo可以在多种操作系统上运行,包括Linux、macOS和Windows。
无人机模型基本介绍Gazebo 的模型通常以 .sdf(Simulation Description Format)文件格式存储,这是一种用于描述仿真场景的XML格式文件。用户可以在 Gazebo 的模型数据库中找到这些模型,并且可以直接在仿真环境 ...
C语言编程
编译流程.c====>.obj====>lib(exe)源码—二进制代码—连接库文件—生成exe(运行程序)、lib(静态库文件)、dll(动态库文件)集成化开发环境可以直接完成否则,需要先编译成.obj,再link连接成为exe
静态库和动态库
静态链接库
动态链接库
obj+lib ==> 完整的单独文件EXE
exe、dll(独立的二进制文件) ==> exe在调用时,动态加载dll
更方便内存的释放
必须升级exe
单独升级dll
不能跨语言使用
可跨语言使用
静态库示例SumTest.vcxproj【静态库项目】
toadd.h
1void add(int a, int b, int &c);
toadd.cpp
12345#include "toadd.h"void add(int a, int b, int &c){ c=a+b;}
项目属性:配置类型:静态库(.lib);
Test.vcxproj 【主程序项目】
main.cpp
12345678 ...
软件及问题记录
同步工具Syncthing安装与使用github下载地址 https://github.com/syncthing/syncthing/releases
Windows界面软件: SyncTrayzor https://github.com/canton7/SyncTrayzor
linux:nohup ./syncthing &
默认管理界面 IP:8384 访问。
vim ~/.config/syncthing/config.xml,修改访问地址127.0.0.1为0.0.0.0,以实现远程访问。
添加设备:查看“设备ID”,并在另一台设备“添加远程设备”,输入对应的ID。
添加同步文件夹:“添加文件夹”,设置本地存放路径、同步的设备。
A<=>B,两台设备之间互相同步,需要两台设备同时在线。
A<=>C<=>B,如果有一台不关机的设备C,可以充当文件服务器。
配置完成后,便可以同步文件。Syncthing 官方提供了发现服务器与中继服务器,同时也可以搭建自己的发现服务器与中级服务器。
客户端配置文件
12345678910 ...
docker应用
Dockerhttps://docs.docker.com/engine/install/ubuntu/
安装123456789101112131415161718192021222324252627282930# 更新软件包apt updateapt upgrade# 安装必要的软件包sudo apt-get install ca-certificates curl gnupgsudo install -m 0755 -d /etc/apt/keyrings# 下载并添加Docker官方GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpg# 添加仓库到apt资源echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/k ...
网络穿透
概述
支持协议
HTTPS
要求
frp
HTTP、HTTPS、SSH、FTP
自行配置
需要一台有公网的服务器转发
DDNSTO
HTTP、HTTPS、SSH
HTTP(S)均有
新设备/网络登录需扫码验证;SSH通过网页
cloudflare
HTTP、HTTPS
只有HTTPS
需要域名;cf服务在境外,代理网速较慢
zerotier
HTTP、HTTPS、SSH、FTP
自行配置
每个连接的设备都需要客户端、打通后为P2P
ipv6+ddns
HTTP、HTTPS、SSH、FTP
自行配置
ipv6不固定且难记,需要域名动态解析,需备案
frp内网穿透frp是一款基于Golang开发的高性能的内网穿透工具,可以实现将内网中的服务映射到公网上,从而实现公网访问内网服务的功能。
frp主要包含三个组件:frps、frpc和frpctl。
frps:是服务端组件,用于在公网上监听客户端请求,并将请求转发到内网中的目标服务。
frpc:是客户端组件,用于在内网中与frps建立连接,并将内网中的服务通过frps映射到公网上。
frpctl:是命令 ...
控制分配v1.14.0
控制分配流程
主流程在ControlAllocator.cpp中
更新参数、状态等,检查是否进入控制分配
通过地面站的参数,更新控制矩阵(必要的话)
update_effectiveness_matrix_if_needed
获取发布控制量(均为三轴),构建c矩阵
力矩控制量:vehicle_torque_setpoint
力控制量:vehicle_thrust_setpoint
控制分配ControlAllocator.cpp中查看Run()函数
更新参数、控制效率矩阵
参数更新、未解锁,执行更新参数
12updateParams(); //更新所有参数parameters_updated(); //从所有参数中,更新效率矩阵的参数
更新参数的过程
控制量斜率
更新控制效率矩阵源,根据源更新配置方法
根据以上信息,将更新的值复制到当前成员变量
更新控制效率矩阵
update_effectiveness_matrix_if_needed(EffectivenessUpdateReason::CONFIGURATION_UPDATE)
更新控制效率源的过程
效率 ...
恋爱记后端
应用配置Django新建应用1python manage.py startapp YYreminder
不操作数据库,因此不需要在settings中增加该应用
后端接口调用的模块
123456# 日历模块pip install sxtwl# 法定节假日模块(每年更新)pip install chinese_calendarpip install --upgrade chinese_calendar
《浪漫满屋》软件设计
需求一款主要在安卓端运行的APP,主要包括收纳间、每日状态展示、记账本等功能,后续可扩充各类Web应用。
功能身份验证
通用账号
登录获取Token,后续通过Token交互数据
收纳间衣橱【化妆品】等日常消耗类资产
【资产管理】一款资产管理软件,自定义分类。
【使用状态】记录资产的使用情况,并进行统计。
【资产搭配】如衣服组合套装,时尚搭配。
【统计】各类统计状态展示。
恋爱提醒
查看恋爱天数
查看天气、地区信息
查看工资下发时间
记账本主要技术栈第一版全部使用api接口,前端不保存db数据
前端:flutter【手机端】+部分django前台界面
后端:python-django
数据库:mysql
前后端接口规范
标准接口
1http://127.0.0.1:8000/api/
请求支持方法
GET:从服务器取出资源(一项或多项)。
POST:在服务器新建一个资源。
DELETE:从服务器删除资源。
返回状态
状态码
含义
说明
200
OK
请求成功
201
CREATED
创建成功
204
DELETED
删除成功
400
B ...
收纳间后端
应用配置Django新建应用新建应用1python manage.py startapp YYcontainer
项目中增加应用123INSTALLED_APPS = [ 'YYcontainer' # 新加的app]
图片保存设置12# 安装 Pillowpython -m pip install --upgrade Pillow==9.0 # -m 可以安装相关的依赖包
RomanticHome/settings.py
12MEDIA_ROOT = os.path.join(BASE_DIR, 'media')MEDIA_URL = '/media/'
RomanticHome/urls.py
12345from django.conf import settingsfrom django.conf.urls.static import staticurlpatterns = [ ...] + static(settings.MEDIA_URL, document_root=settings.MEDIA_R ...
《收纳间》项目设计
数据库设计
用户表使用Django自带的用户表,并通过rest_framework.authtoken验证身份信息。
类别表(字段如: 衣服、化妆品)与分类表(字段如: 品牌、尺码、颜色)分开
类别表(sort)关联到用户(user),具体物品、记录等关联到sort
下图结构中,record和suit的objects均为多对多关系
主要接口分类Sort查分类说明:如衣服、化妆品等
URL:yycon/get_sorts/
方法:GET
请求头(headers):
1"Authorization": "Token <your_token>"
响应值:
123456789{ "data": [ { "sort_id": "sort_id", "sort_name": "sort_name" } ]} ...