
住人の生活を大いに促進するシンプルな装置、つまりガス柱の自動温度制御の作成についてお話したいと思います。 同様のデバイスはすでにハブ上で作成および説明されていますが、Arduinoのような既製のモジュールを使用せずに、もう少し高度なデバイスを作成し、コンセプトと測定から実装までの作成プロセス全体を詳細に説明したいと思いました。 デバイスはブレッドボード上に組み立てられ、プログラミング言語はCです。これは、完全な(そして機能する!)デバイスの私の最初の開発です。
1.ソースデータ
私たちは賃貸アパートに住んでいますが、家にはお湯がありません。キッチンにあるヒーター(瞬間ガス給湯器
-HSV )の助けを借りて、その場で冷水が温められます。 シャワー中に圧力がさらに急上昇した場合は、裸でコラムにたたくか、誰かに電話する必要があります。 本格的な「スマートホーム」を統合する可能性はないため、ヒーターの自動制御を導入することにしました。 ところで、私はすぐにいくつかの同様の解決策を見つけました。たとえば、
ここでは、私の問題が既知であり、その形で解決されたことを意味します。
HSVモデル:Vector lux eco 20-3(中国)
水圧:約1.5 kgf /cm²(低圧、ヒーターは許容限度をわずかに超えて作動します)
ソリューション要件
- シンプルさ
- PIDコントローラーなど
- サポートされている温度を選択する機能
- 現在の設定を表示する
- デバイスのセキュリティ問題の解決
システム構成
いくつかの検討の後、デバイスアーキテクチャの概要は次のとおりです。
- サーボ(HSVの本体に直接)
- 標準温度センサーHSV
- 温度センサー信号増幅ユニットとサーボ電源安定化装置(HSV本体に直接)
- コントロールユニット(外部)
次に、開発プロセスを時系列で説明します。
2.サーボ
私の職業はソフトウェアであり、メカニックは常に最も難しい部分であるため、私はそれから始めることにしました。 長い間集まることができなかった最初の段階では、HSVは触ることを非常に恐れていましたが、次の圧力低下が私をスタートさせました。
コラムを分解して見て回ると、aliexpressで「配送用」に注文されたTowerPro MG995サーボマシンを設置する場所を見つけました。

駆動ロッドのバックラッシュをなくすために、1本のロッドにスプリングを搭載しました。 バックラッシュは完全に解消されましたが、別の問題が明らかになりました-モーメント> 10 kg * cmのサーボはHSVにとっては厚すぎることが判明しました。 機械の電子機器で過渡現象をオンにすると、ランダムな位置にジャークが発生し、アイドル状態の介在物が2、3回発生した後、推力が曲がります! Siluminカラムはこのような処理に耐えられません。 調整装置の軸上にない揺動形状も批判を引き起こし、調整の非直線性につながりました。 スロットルドライブアセンブリの最終ビュー:

アセンブリはやり直されました-VAZのスプリング(キャブレターから-自動車部品店で購入)が使用され、ロッキングチェアはシャフトの幾何学的軸上にあります。 この設計にはわずかなバックラッシュがありますが、調整が直線的であり、ステアリングマシンの怒りを抑えることができます。 角度は、レギュレーターの最も一般的な位置での調整に最適な値に設定されます。
3.ブロックセンサーHSV
HSVサーミスタの抵抗は20..50 KOhm以内に変化します。分圧器として直接使用するのは問題です。測定精度が低くなります。 しかし、実際に判明したように-電源電圧を12Vに上げると、許容できる出力信号範囲を簡単に得ることができます-リピーターモードでオペアンプのみを使用し(必要に応じてゲインを変更できます)、分圧器を負荷から分離します。 HSV内のブロック図:

分圧器R2とカラム温度センサーは、全測定範囲(実際には摂氏20..60度)で1.4..4.96 Vの電圧の信号を生成します。 最初に、彼は電源の損失を補うことができるブリッジ回路を開発しましたが、電源の効果がほとんどないという事実のために破棄され、最初の項目「TK」は「シンプル」でした。 オペアンプは、分圧器と負荷を分離します。 ツェナーダイオードD1は、センサーを切断するための出力電圧を5.1 Vに制限します(そうしないと、出力はコントローラーにとって致命的な12Vになります)-コントローラー回路は絶対誤差と見なされます。 7805統合スタビライザーはサーボに給電します-解決策は失敗します。マシンが停止すると、ひどく熱くなり、ドライブウェッジで失敗する可能性があります(組み込みの保護が機能しない場合)。 このブロックの詳細については説明しません。
4.コントローラー
コントローラーはディップケースのAtmega8 ICに基づいて組み立てられます。

クロッキング-8 MHz内部発振器。 電源-ボード上の別の7805。 標準LCD1602ディスプレイによる表示。 ブロック図:

ユニットの電源は、トランジスタを介してカラムから制御されます-小型リレーを使用します。 温度センサー信号(コネクタのピン番号4)はグランドに引き込まれ、動作中にセンサーが切断されると非常に高い温度が表示されます。これにより、レギュレーターが低下し、危険な状況が発生することはありません。 組立ブロック:


4.テストと調整
PIDコントローラーをテストするために、HSVモデルがQtで作成されました。 ヒーターの主なポイントと状況を解決しました-コールド/ホット、圧力降下を開始します。 特性を取得するために、UARTコネクタがコントローラーボードに追加されました。ここでは、インジケーターで2番目のデータ(現在の温度、スロットルの位置など)が送信されました。

テスト中に次のことが明らかになりました。
- 温度センサーの反応にさらされてからのHSVの非常に大きな慣性-約30秒
- コントローラーファームウェアの度数への丸めは悪い考えです。アルゴリズムはより正確に機能する場合があります
温度センサーの依存関係は、条件付きで線形と見なすことができます:

列からのテレメトリ描画プログラムでの最初の実行:

(チャートに凡例を追加するのを忘れました。以下-
赤 -センサー温度、
緑の点線 -スロットル位置、
青 -ユーザーが希望する温度)
ほぼ成功した調整
良いオッズオプション
良いスタートオプション最初の実行ではシステムの主要なパラメーターが
示されましたが、加速された式に従ってそれらを測定し
調整することはもはや難しくありませんでした。私は長い間苦労してパラメーターを選択しました。 振動を完全になくすことはできませんでしたが、1度以内の振動は許容できると見なされます。 受け入れられるオプション:


選択プロセスでは、積分係数を完全に無効にする必要がありました。これはシステムの大きな慣性によるものだと思います。 合計オッズ:
float Pk = 0.2; float Ik = 0.0; float Dk = 0.2;
5.パッケージング
デバイスは、ジャンクションボックスのプラスチックケースに組み込まれています。

そして、この形式で動作します。
6.使用の安全性
最初から尋ねられた重要な質問です。要点を見ていきましょう。
カラムおよびレギュレータ回路のガルバニック絶縁
12V電源が短絡し、センサー回路に220ボルトが現れるとどうなりますか? これにより、ガスがカラムに流れることはありません。 判明したように、それはそれを引き起こしません-カラムには2つのレベルのガス供給があります-コントローラーの電磁バルブと水のメカニカルバルブです。 ソレノイドだけを開くだけでは十分ではありません。水の流れがなければガスは入りません。
HSV内のセンサーの無効化または切り離し
サーミスタがHSV内のユニットから切断されると、信号0xFF(5.1V)が出力で生成され、プログラムによってエラーとしてチェックされ、コントローラーがプログラムを停止し、サーボドライブが最小に設定されます。
センサーのコントローラーからの切断または取り外し
この場合、高温が発生し(センサーラインを地面に引っ張ります)、ドライブの出力が最小値になり、ユーザーにとっても安全です。
HSVの電気機械的保護
HSVの保護値は、通常モードで動作し続けます。沸騰/過熱/コラムトラクションセンサーの場合、標準システムはそれを無効にする必要があります。
7.ファイル
完全なプロジェクトアーカイブは
githubで入手できます。 プロジェクトのディレクトリでは、測定結果、コントローラーファームウェア、およびQtのボイラーが利用可能です。
ご清聴ありがとうございました!