Qt的5种对话框使用详解
Qt的5种对话框使用详解对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。所谓标准对话框,是Qt内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同。
Qt常用的内置对话框有QFileDialog、QColorDialog、QFontDialog、QInputDialog和QMessageBox。下面对这些对话框做一些简单示例。
对话框类
说明
静态函数
函数说明
QFileDialog
文件对话框
getOpenFileName()
选择打开一个文件
getOpenFileNames()
选择打开多个文件
getSaveFileName()
选择保存一个文件
getExistingDirectory()
选择一个已有的目录
getOpenFileUrl()
选择打开一个文件,可选择远程网络文件
QColorDialog
颜色对话框
...
单片机ADC采样算法有效值采样法
单片机ADC采样算法有效值采样法在使用单片机ADC功能采样数据时,通常情况下用平均值计算就够了,但是在计算功率时就需要用有效值来计算真正做功的情况。如果是标准的正弦波的话,正弦波的峰值是有效值的1.414倍,可以通过峰值来计算有效值。但是实际应用中波形往往会发生畸变,如果按照1.414这个比例计算的话,误差往往会比较大。所以必须通过计算正弦波的面积来求有效值。
有效值又叫均方根值,对数据的平方和取平均值再开方所计算出来的值。所以通常情况下采用的计算方法是:将所有值平方求和,求其平均值,再开平方,就得到均方根值。用公式表达的话就是这样。
1234567891011// dsp28335中实现float32 get_rms(float32 values[], int length) { float32 sumOfSquares = 0.0; Uint16 i; for (i = 0; i < length; ++i) { sumOfSquares += values[i] * values[i]; // 累加每个值的平方 & ...
Matlab模块学习
Matlab模块学习1 使用 Product 模块对输入进行乘法和除法运算
2 Matlab中电压源问题(Problem with Controlled voltage source)The voltage source “Controlled Voltage Source” cannot be connected in parallel with the capacitive element defined in the block “Series RLC Branch”. Add a small resistor in series with the voltage source block, or with the capacitive element.
Answer:In ideal circuit, connecting a capacitor in pararell with a voltage source would short-circuit the voltage source(when initially,the voltage at the ...
Matlab之Simulink中的sum模块符号分布
Matlab之Simulink中的sum模块符号分布
文章介绍了sum模块的使用,特别是矢量规则,包括逆时针读取符号、空隙个数对符号位置的影响。符号+、-和|在不同场景下的作用,以及如何根据空隙数量确定它们的位置。文章提供了实例验证这些规则,并指出在某些情况下,符号|作为占位符并不实际显示。
1 sum使用简介相信大家在使用sum模块时应该都经历过被+、-、|这三个符号摆放位置的折磨,希望这篇文章可以帮助到你。
百度翻译如下:
增加或减少输入。指定以下选项之一:
a)每个输入端口包含+或-的字符矢量,|表示端口之间的间隔符(例如++|-|++)
b)标量,>=1,指定要求和的输入端口数。
当只有一个输入端口时,在所有维度或一个指定维度上添加或减去元素。
人翻译百度翻译:
a)矢量用法,输入为加减号,较为常用,本文主要解释这个用法。
b)标量用法,输入为阿拉伯数字,如输入3,会显示三个加号。
当输入1或是单独+时,会显示求和符号。
2 矢量规则说明
符号为逆时针读取,图1中List of signs:+-+–。
所有符号都分布在输入侧的那180度内,按照符号 ...
Matlab之simulink中的PID模块的使用
Matlab之simulink中的PID模块的使用1 Simulink中PID模块的介绍首先,找到PID模块,双击打开模块的参数设置,如下:
可以通过Automated tuning,可选择的方法有基于频率响应和基于传递函数。
注意:基于传递函数的时候自己定义的多个模块可能会无法调试。
1.1 控制器类型的选择可以看到Controller:可以选择PI、PD、PID、仅P或仅I控制等。
1.2 PID控制器格式Form:有并行(默认)和理想型(串行),其传函如下:
注意:传函中的P(比例增益)、I(积分增益)、D(微分增益)系数就是我们需要整定的三个PID参数。
1.3 时域选择Time domain:连续时间和离散时间。
当选择离散时间时,需要设置积分器和微分器中的滤波器的离散化方法,有向前欧拉,后向欧拉,双线性变换法,如下图:
可以看出,积分环节(1/s)通过前向欧拉离散化方法变成了Ts(1/(z-1))。
1.4 PID的饱和输出限制限制PID的输出,还有去饱和积分的方法,如,反算法、钳位法。如图所示:
更 ...
Simulink电力系统仿真常用模块
Simulink电力系统仿真常用模块1 蓝色库和黑色库的区别Simulink电路仿真库分为蓝色和黑色库。蓝色库里面的电路元器件更偏向于模拟电路仿真,黑色库里面的电路元器件更偏向于数字电路仿真。需要注意的是,蓝色库和黑色库里面的电路元器件不能混用,蓝色的电路元器件与黑色的电路元器件无法使用导线连接。
2 Simulink库中各电路元器件位置Matlab版本不同,Simulink电路仿真元器件库位置不太一样。以笔者使用的Matlab R2018a版本为例,电路仿真能用到的电路元器件基本在Simscape的子文件夹下面。(电力仿真模块一般在Simscape/Electrical/Specialized Power Systems目录下,外观是黑色的。当然Simscape/Electrical下面大部分元件是蓝色的)
分享一个寻找电路元器件的小技巧,Simulink在模型库中有搜索功能,只需要输入对应元器件的英文名称再挑选一番便能找到自己需要的元器件模型。后面如果对仿真元器件比较熟悉,可以直接在仿真页面双击搜索需要的元器件。(查找模块的方法可参照:Simulink 查找元 ...
电流环PID算法及例程
电流环PID算法及例程1 什么是电流环PID算法电流环PID算法是一种常用的控制算法,用于控制电机或其他设备中的电流。PID算法基于三个控制参数:比例(Proportional)、积分(Integral)或微分(Derivative),通过对当前误差、累计误差和误差变化率进行计算,来生成相应的控制输出。
下面是电流环PID算法的基本原理和步骤:
错误计算:首先需要计算电流环的误差,即期望电流与实际电流之间的差异。这通常通过将期望电流值减去实际电流值得到。
比例项计算:根据比例参数(Kp),将误差乘以一个比例增益,得到比例项的输出。比例项直接反映了误差的大小,控制输出与误差成正比。
积分项计算:根据积分参数(Ki),对误差进行累加,并乘以一个积分增益,得到积分项的输出。积分项可以消除静态误差,逐渐减小系统的稳态误差。
微分项计算:根据微分参数(Kd),计算误差的变化率,并乘以一个微分增益,得到微分项的输出。微分项可以预测误差的未来变化趋势,用于抑制系统的过冲和振荡。
控制输出计算:将比例项、积分项和微分项的输出相加,得到最终的控制输出。这个控制输出可以作为电流环的控制信号,用于调 ...
DSP28335实现PID闭环
DSP28335实现PID闭环1 Simulink下的模型及结果给定参考是0.5,经过PID,然后执行机构,最后输出,Simulink的仿真结果如下:
Kp=10;Ki=5;Kd=0.5
2 增量式PID介绍采用增量式PID算法:
比例P:e(k) - e(k-1),这次误差 - 上次误差
积分I:e(i),误差
微分D:e(k) - 2e(k-1) + e(k-2),这次误差 - 2*上次误差 + 上上次误差
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970%增量式PIDclc % 清屏clear all; % 删除workplace变量close all; % 关掉显示图形窗口%% %建立传递函数ts=0.001; %采样时间sys=tf(400,[1,50,0]);%建立传递函数模型,sys = tf(Numerator,Denomina ...
电源的控制模式
电源的控制模式1 分类电源的控制模式,主要包括电压控制模式和电流控制模式。下面进行介绍。
2 电压型控制原理:采样输出电压进行pwm控制。典型的芯片有TL494。
下面是buck电路电压型控制的原理框图:
等效的控制框图如下:
电压控制的特点如下:
优点:
抗噪声干扰
开关频率固定
缺点:
负载瞬态响应差,调节慢,因为只有感受到输出电压的变化,经过滤波后才能调节电压。
需要三型补偿。
3 电流型控制原理:采用电感电流或者原边电流进行控制。
电流控制的原理框图如下,包括电压外环和电流内环:
电流控制可以分为多个不同类型的控制方案:峰值、谷值、仿真、滞环和平均。下面主要介绍常规的两种,峰值电流控制和平均值电流控制。
3.1 峰值电流控制下面是峰值电流模式下的原理示意图。典型的芯片有UC3842。
原理:将高侧mos电流作为锯齿波与电压误差进行比较,生成pwm波。
峰值电流模式的特点如下:
优点:
暂态闭环响应较快,对输入电压的变化和输出负载的变化的瞬态响应均快。
控制环易于设计。
有固有的逐个脉冲限流功能。
自动均流并联功能 ...
spwm实现单向逆变
spwm实现单相逆变1 spwm分析当前比较主流的逆变控制器有svpwm(空间矢量脉宽调制)以及spwm(正弦脉宽调制)。其中svpwm更适用于三相逆变和foc控制。spwm的具体控制原理为将正弦波作为基波,三角波作为载波,利用pwm进行离散控制,在基波大于载波时,输出高电平,在小于载波时输出低电平。如下图。
我们就会得到一系列基于基波不断变化的pwm方波。
下面介绍pwm方波是如何转变为正弦波进行输出的,我们知道在载波(三角波)频率远远大于基波(正弦波)频率时,在一个周期内基波的值不会发生变化,为sin(t)。所以,在载波小于sin(t)时,pwm输出高电平,又因为三角波的线性特性,pwm的占空比是和sin(t)成正比的。我们知道,冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。换句话说就是通过一系列形状不同的窄脉冲信号,相对应时间的积分相等(面积相等),其最终效果相同。
所以一系列的pwm经过电感进行滤波之后,加在负载上的便是正弦电压。
2 matlab仿真验证1、下面左边的是频率很高的三角载波。可以看到输出为正弦波。
...