小编use*_*838的帖子

我不了解PID控制器的积分部分

我不理解PID控制器的组成部分.让我们假设来自维基百科的这个伪代码:

previous_error = 0
integral = 0 
start:
  error = setpoint - measured_value
  integral = integral + error*dt
  derivative = (error - previous_error)/dt
  output = Kp*error + Ki*integral + Kd*derivative
  previous_error = error
  wait(dt)
  goto start
Run Code Online (Sandbox Code Playgroud)

积分在开始时设置为零.然后在循环中它整合了错误随着时间的推移.当我对测量值或设定值进行(正)变化时,误差将变为正值,积分将在整个时间内(从头开始)"吃掉"值.但我不明白的是,当误差稳定回零时,积分部分仍然会有一些值(随时间积分的误差),并且仍然会对控制器的输出值有所贡献,但它不应该.

请问有人解释一下吗?

controller integral control-theory pid-controller

11
推荐指数
2
解决办法
2万
查看次数

处理C中的多字节(非ASCII)字符

我想做我自己的版本的wc(unix过滤器),但我有非ASCII字符的问题.我做了一个文本文件的HEX转储,发现这些字符占用多个字节,所以它们不适合char.有什么方法我怎么能从文件中读取这些字符并像C一样处理它们(所以我可以计算文件中的字符)?我一直在谷歌搜索并找到一些wchar_t类型,但没有任何简单的例子如何将它与文件一起使用.

c string file character

5
推荐指数
3
解决办法
5442
查看次数