由于最近在弄stm32控制小车的事情,小车的转速可以通过10ms内采集的编码脉冲数enc表示,控制信号由pwm占空比表示。

要用PID对小车速度进行控制,需要求得pwm-enc之间的增益系数Ka,于是我采集了多组pwm-enc样本数据,用直线拟合的方法求Ka,具体python代码如下:

import matplotlib.pyplot as plt

import math

def linefit(x , y):

N = float(len(x))

sx,sy,sxx,syy,sxy=0,0,0,0,0

for i in range(0,int(N)):

sx += x[i]

sy += y[i]

sxx += x[i]*x[i]

syy += y[i]*y[i]

sxy += x[i]*y[i]

a = (sy*sx/N -sxy)/( sx*sx/N -sxx)

b = (sy - a*sx)/N

r = abs(sy*sx/N-sxy)/math.sqrt((sxx-sx*sx/N)*(syy-sy*sy/N))

return a,b,r

x=[0.5,

1,

2,

3,

4,

5,

6,

7,

8]

y=[2400,

4000,

5816,

7401,

9600,

12788,

15300,

18079,

22773]

a,b,r=linefit(x,y)

print(" y = %10.5f x + %10.5f , r=%10.5f" % (a,b,r) )

plt.plot(x,y,'ro')

plt.plot([0,8],[b,a*8+b])

plt.show()

这是拟合效果:

这是拟合出来的直线表达式:

python线性拟合_python直线拟合实例相关推荐

  1. 数据拟合: 直线拟合--多项式拟合

    数据拟合: 直线拟合--多项式拟合 1.问题概述 在实际问题中,常常需要从一组观察数据        (xi,yi)  i=1,2,,..,n 去预测函数 y=f(x) 的表达式,从几何角度来说,这个 ...

  2. matlab中散点图的线性拟合_Matlab直线拟合和平面拟合

    利用 Matlab 实现直线和平面的拟合 2011-04-14 10:45:43| 分类: 算法思想 | 举报 | 字号 订阅 直线和平面拟合是很常用的两个算法,原理非常简单.但如果 matlab 不 ...

  3. python 直线拟合_python matplotlib拟合直线的实现

    这篇文章主要介绍了python matplotlib拟合直线的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 import numpy ...

  4. python多变量拟合_python多元拟合问题

    貌似关于多元拟合的使用没有太多文章进行讲解. 首先给出数据集:数据集 目标函数: 在python中,我们使用scipy.optimize库中的curve_fit,首先给出其官方文档中一些比较重要的参数 ...

  5. python 线性回归函数_Python实现的简单线性回归算法实例分析

    本文实例讲述了Python实现的简单线性回归算法.分享给大家供大家参考,具体如下: 用python实现R的线性模型(lm)中一元线性回归的简单方法,使用R的women示例数据,R的运行结果: > ...

  6. python周期函数的拟合_Python可以拟合函数(数学意义)吗?

    可以的,有多种方法进行任意函数曲线的拟合.但如果你是普朗克,你得先猜出来黑体辐射的公式样子,拟合只能给出系数. -------------- 1.第一种是进行多项式拟合,数学上可以证明,任意函数都可以 ...

  7. 用python进行多项式拟合_python多项式拟合

    import numpy as np p=np.poly1d([1,2,3]) //多项式的系数,p为多项式 //多项式可以做加减乘除 print(p+[1,2]) //表示多项式加上一个多项式系数为 ...

  8. python线性结构图_Python学习线路图 -蓝鸥

    Python学习路线图 Python基础 适用/适合人群:适合小白,零基础 目标:掌握HTML CSS div+css,javascript,h5等前端基本技术 ●01开班典礼: 1.Pycharm安 ...

  9. python线性拟合模型_Python机器学习-线性回归模型篇

    一.What机器学习是什么 机器学习简单来说,是从数据中归纳出有用的规则,它是一种新的编程方式,它不需要人类来总结经验.输入逻辑,人类只需要把大量数据输入计算机,然后计算机就可以自动总结经验归纳逻辑, ...

最新文章

  1. 深入浅出深拷贝与浅拷贝
  2. Mathematica 画图操作中的一些小惊喜
  3. 软件公司与非软件公司区别(纯个人看法)
  4. C语言程序设计上机前三题,C语言程序设计(含上机实验与习题解答)
  5. Oracle中修改遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”
  6. netty冲突 play sbt_《Netty官方文档》本地传输接口
  7. 系统相机裁剪比例_如何正确设置相机:6个最常见的错误,你还在犯错吗?
  8. 各种云计算平台和云计算管理平台介绍
  9. iPhone 14屏幕细节曝光:LTPO OLED面板仍为Pro版专属
  10. C语言 pthread_create
  11. Django ORM QuerySet集合对象的特性
  12. AI议题首次进入世界移动大会,打响第一枪的是LG
  13. oracle 11g sql和pl/sql从入门到精通,Oracle 11g SQL和PL SQL从入门到精通_IT教程网
  14. cad计算机编程,CAD/CAM自动编程的步骤
  15. linux通信加密软件,5个Linux加密工具:VeraCrypt,CipherShed,CryFS,GnuPG,Encfs介绍
  16. 【面试指南】如何看待你的竞争对手30k,而你却3k?想要高薪,我们也要学会拧螺丝、造飞机的能力
  17. ps考证电脑怎么改卷
  18. 在 Microsoft Visual Studio Team System 和 Microsoft Visual SourceSafe 之间选择
  19. Java Maven项目对接金蝶SDK
  20. 金三银四求职季,程序员面试必备——数据库篇

热门文章

  1. 企划岗位入职工作总结
  2. (6)MyEclipse安装Mybatis插件
  3. centos7安装python3.x(多种方式)
  4. Emscripten SDK 安裝不成功
  5. c语言快速排序--超级简单代码少
  6. Java 值传递与引用传递
  7. DRIVER_IRQL_NOT_LESS_OR_EQUAL 0X000000d1 srvnet.sys
  8. Linux系统的shell是什么
  9. 一道Twitter编程面试题
  10. IDEA 启动找不到或无法加载主类的解决办法