Commit 38608e3c authored by Per Hagen's avatar Per Hagen 🐵
Browse files

Updated DFB criteria TT893 (280,320) TT891A (46,54)

parent 83048b26
Pipeline #2364291 passed with stage
in 12 seconds
__version__ = "1.5.30"
__version__ = "1.5.31"
......@@ -173,10 +173,11 @@
},
"source": [
"# 2. Query All Signals Prior to Analysis"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deleteable": false,
"tags": [
......@@ -320,31 +321,27 @@
"deletable": false
},
"source": [
"# 5. Quench Protection System\n",
"\n",
"The signal names used for quench detection are shown in the figure below (*please run a cell below to display a QPS circuit schematic corresponding to the circuit name under analysis*).\n",
 
"The signal names used for quench detection are shown in the figure below (*please run a cell below to display a QPS circuit schematic corresponding to the circuit name under analysis*).\n",
 
"**Quench Detector Type** \n",
"DQQDC - current leads quench detector \n",
"DQAMG - controller attached to global protection \n",
"\n",
"**Current Leads:**\n",
"- Typical resistance for U_RES: 7 uOhm\n",
"- Threshold for U_HTS: 3 mV, 1s\n",
"- Polarity convention: Arrows show how signals are measured. If I > 0, LD1: U_RES > 0, LD2: U_RES < 0\n",
"- PM file\n",
" - Buffer range 0 to 250, event at point 50\n",
" - Time range: -10 to 40 s\n",
"- PM file\n",
" - Buffer range 0 to 250, event at point 50\n",
" - Time range: -10 to 40 s\n",
" - Frequency: 5 Hz (dt = 200 ms)\n",
" \n",
"**Magnet:**\n",
"- Threshold on U_RES_B1: 100 mV, 10 ms\n",
"- U_RES_B2, U_1_B2, U_2_B2 and U_INDUCT_B2 are given for diagnostics only\n",
"- Signals are measured with -2.5 V offset and with the gain factor = 0.0012\n",
"- See polarity convention in the circuit schematics\n",
"- U_RES_B1 = U_1_B1 + U_2_B1\n",
"- Threshold on U_RES_B1: 100 mV, 10 ms\n",
"- U_RES_B2, U_1_B2, U_2_B2 and U_INDUCT_B2 are given for diagnostics only\n",
"- Signals are measured with -2.5 V offset and with the gain factor = 0.0012\n",
"- *Attention: B1 signals and B2 singals can be shifted by 4 ms from each other*\n",
......
......@@ -182,10 +182,11 @@
"# 2. Query All Signals Prior to Analysis"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deleteable": false,
"tags": [
"skip_output"
]
......@@ -333,12 +334,11 @@
" - Time range: -2 to 2 s\n",
" - Frequency: 250 Hz (dt = 4 ms)"
]
},
{
"cell_type": "code",
"execution_count": null,
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from lhcsmapi.gui.pc.fgc_pm_event_select.IpdFgcPmEventSelectBaseModule import IpdFgcPmEventSelectBaseModule\n",
......
......@@ -159,10 +159,11 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deleteable": false,
"tags": [
"skip_output"
]
},
"outputs": [],
"source": [
......@@ -302,44 +303,39 @@
"**Quench Detector Type**\n",
"\n",
"DQQDC – current leads quench detector\n",
"\n",
"DQAMG – controller attached to global protection\n",
"\n",
"**Current Leads:**\n",
"- Typical resistance for U_RES: 7 uOhm\n",
"\n",
"**Current Leads:**\n",
"- Typical resistance for U_RES: 7 uOhm\n",
"- Threshold for U_HTS: 3 mV, 1 s\n",
"- Polarity convention: if I_B1 = I_B2 > 0, LD1:U_RES < 0, LD3:U_RES > 0\n",
"- PM file:\n",
" - Buffer range: 0 to 250, event at point 50\n",
" - Time range: -10 to 40 s\n",
" - Frequency: 5 Hz (dt = 200 ms)\n",
"\n",
"- See polarity convention here above\n",
"- U_RES_B1 = U_1_B1 + U_2_B1\n",
"- U_RES_B2 = U_1_B2 + U_2_B2\n",
"**Magnet:**\n",
"- See polarity convention here above\n",
"- U_RES_B1 = U_1_B1 + U_2_B1\n",
"- U_RES_B2 = U_1_B2 + U_2_B2\n",
"- Threshold on U_RES: 100 mV, 10 ms\n",
"- Attention: B1 signals & B2 signals can be shifted by 4ms from each other\n",
" - U_2_Qx = -Ldi / dt > 0\n",
"- PM file:\n",
" - Buffer range: 501 to 1500, event at point 1000\n",
"- If pure inductive signal:\n",
" - If dI/dt < 0:\n",
" - U_1_Qx = Ldi / dt < 0\n",
" - U_2_Qx = -Ldi / dt > 0\n",
"- PM file:\n",
" - Buffer range: 501 to 1500, event at point 1000\n",
 
 
" - Frequency: 250Hz (dt = 4ms)"
]
},
{
"cell_type": "code",
 
 
"metadata": {},
"outputs": [],
"source": [
"from lhcsmapi.gui.pc.fgc_pm_event_select.IpqFgcPmEventSelectBaseModule import IpqFgcPmEventSelectBaseModule\n",
"IpqFgcPmEventSelectBaseModule('IPQ').display_qps_circuit_schematic(circuit_name)"
......
......@@ -150,12 +150,13 @@
"outputs": [],
"source": [
"print('hwc_test = \\'%s\\'\\ncircuit_name = \\'%s\\'\\ncampaign = \\'%s\\'\\nt_start = \\'%s\\'\\nt_end = \\'%s\\'' % (hwc_test, circuit_name, campaign, t_start, t_end))"
]
},
{
"cell_type": "markdown",
{
"cell_type": "markdown",
"metadata": {
"deletable": false
},
"source": [
"# 2. Query All Signals Prior to Analysis"
]
......@@ -282,19 +283,26 @@
"\n",
"**Magnet:**\n",
"- See polarity convention here above\n",
"- U_RES_B1 = U_1_B1 + U_2_B1\n",
"- U_RES_B2 = U_1_B2 + U_2_B2\n",
"- Threshold on U_RES: 100 mV, 10 ms\n",
"- Threshold on U_RES: 100 mV, 10 ms\n",
"- Attention: B1 signals & B2 signals can be shifted by 4ms from each other\n",
"- If pure inductive signal:\n",
" - If dI/dt < 0:\n",
" - U_1_Qx = Ldi / dt < 0\n",
" - U_2_Qx = -Ldi / dt > 0\n",
"- PM file:\n",
" - Buffer range: 501 to 1500, event at point 1000\n",
" - Time range: -2 to 2s\n",
" - Frequency: 250Hz (dt = 4ms)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from lhcsmapi.gui.pc.fgc_pm_event_select.IpqFgcPmEventSelectBaseModule import IpqFgcPmEventSelectBaseModule\n",
"IpqFgcPmEventSelectBaseModule('IPQ').display_qps_circuit_schematic(circuit_name)"
]
......
......@@ -139,10 +139,11 @@
"cell_type": "markdown",
"metadata": {
"deletable": false
},
"source": [
"# 2. Query All Signals Prior to Analysis"
]
},
{
"cell_type": "code",
"execution_count": null,
......
......@@ -144,10 +144,11 @@
},
"source": [
"# 2. Query All Signals Prior to Analysis"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deleteable": false,
"tags": [
......@@ -285,11 +286,31 @@
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"busbar_metadata_resistance_df = rb_analysis.merge_busbar_metadata_with_resistance(res_busbar_df, circuit_type, circuit_name)\n",
"busbar_metadata_resistance_df = rb_analysis.merge_busbar_metadata_with_resistance(res_busbar_df, circuit_type, circuit_name)\n",
"rb_analysis.display_busbar_metadata_resistance_with_threshold(busbar_metadata_resistance_df, threshold=3e-9)"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false
},
"source": [
"## 4.2. Magnet Resistance\n",
"\n",
"*ANALYSIS*:\n",
"\n",
"- Calculation of the magnet resistance as the slope of a linear fit of U,I curve obtained from the corresponding mean alues of the voltage and current\n",
"\n",
"*CRITERIA*:\n",
"\n",
"- Check if the magnet resistance is below 50 nOhm\n",
"\n",
"*GRAPHS*:\n",
"\n",
"- The magnet resistance, R\n",
"- The green box denotes the validity region of the magnet resostance (0, 50] nOhm"
]
},
......
......@@ -201,10 +201,11 @@
" else:\n",
" timestamp_fgc_ref = float('nan')\n",
" i_meas_ref_df = rb_query.query_pc_pm(timestamp_fgc_ref, timestamp_fgc_ref, signal_names=['I_MEAS'])[0]\n",
" \n",
" # PIC\n",
" timestamp_pic = rb_query.find_timestamp_pic(timestamp_fgc, spark=spark)\n",
" \n",
" # EE Voltage\n",
" source_timestamp_ee_odd_df = rb_query.find_source_timestamp_ee(timestamp_fgc, system='EE_ODD')\n",
" timestamp_ee_odd = source_timestamp_ee_odd_df.loc[0, 'timestamp']\n",
" source_ee_odd = source_timestamp_ee_odd_df.loc[0, 'source']\n",
......@@ -577,17 +578,43 @@
]
},
{
"cell_type": "code",
"execution_count": null,
 
 
"deletable": false
},
"outputs": [],
},
"outputs": [],
"source": [
"rb_analysis.plot_ee_temp(circuit_name + '_EE_EVEN', timestamp_ee_even, t_res_even_0_df + t_res_even_1_df, t_res_even_0_ref_df + t_res_even_1_ref_df)"
]
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false
},
"outputs": [],
"source": [
"rb_analysis.analyze_ee_temp(circuit_name + '_EE_EVEN', timestamp_ee_even, t_res_even_0_df + t_res_even_1_df, t_res_even_0_ref_df + t_res_even_1_ref_df, abs_margin=25, scaling=1)"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false
},
"source": [
"# 6. Busbar\n",
"## 6.1. Busbar Resistance\n",
"\n",
"*ANALYSIS*:\n",
"\n",
"- Calculation of the busbar resistance as the slope of a linear fit of U,I curve obtained from the corresponding mean alues of the voltage and current\n",
"\n",
"*CRITERIA*:\n",
"\n",
"- Check if the busbar resistance is below 3 nOhm\n",
"\n",
"*GRAPHS*:\n",
"\n",
......
......@@ -161,15 +161,17 @@
"outputs": [],
"source": [
"circuit_type = 'RQ'\n",
"if 'hwcb' in locals():\n",
" circuit_name = hwcb.get_circuit_name()\n",
" t_start = Time.to_unix_timestamp(hwcb.get_start_time())\n",
" t_end = Time.to_unix_timestamp(hwcb.get_end_time())\n",
" is_automatic = hwcb.is_automatic_mode()\n",
"else:\n",
" t_start = Time.to_unix_timestamp(t_start)\n",
" t_end = Time.to_unix_timestamp(t_end)\n",
" is_automatic = False\n",
"\n",
"circuit_names = [circuit_name if 'RQD' in circuit_name else circuit_name.replace('F', 'D'), \n",
" circuit_name if 'RQF' in circuit_name else circuit_name.replace('D', 'F')]\n",
"\n",
"rqd_query = RqCircuitQuery(circuit_type, circuit_names[0], max_executions=4)\n",
......@@ -405,11 +407,31 @@
"deletable": false
},
"source": [
"## 5.2. Magnet Resistance\n",
"\n",
"*ANALYSIS*:\n",
"*ANALYSIS*:\n",
"\n",
"- Calculation of the busbar resistance as the slope of a linear fit of U,I curve obtained from the corresponding mean alues of the voltage and current\n",
"\n",
"*CRITERIA*:\n",
"\n",
"- Check if the busbar resistance is below 50 nOhm\n",
"\n",
"*GRAPHS*:\n",
"\n",
"- The busbar resistance, R\n",
"- The green box denotes the validity region of the busbar resostance (0, 50] nOhm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- RQD"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false
......
......@@ -162,15 +162,17 @@
},
"outputs": [],
"source": [
"circuit_type = 'RQ'\n",
"if 'hwcb' in locals():\n",
" circuit_name = hwcb.get_circuit_name()\n",
" t_start = Time.to_unix_timestamp(hwcb.get_start_time())\n",
" t_end = Time.to_unix_timestamp(hwcb.get_end_time())\n",
" is_automatic = hwcb.is_automatic_mode()\n",
"else:\n",
" t_start = Time.to_unix_timestamp(t_start)\n",
" t_end = Time.to_unix_timestamp(t_end)\n",
" is_automatic = False\n",
"\n",
"circuit_names = [circuit_name if 'RQD' in circuit_name else circuit_name.replace('F', 'D'), \n",
" circuit_name if 'RQF' in circuit_name else circuit_name.replace('D', 'F')]\n",
"\n",
......@@ -379,11 +381,31 @@
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false
},
},
"source": [
"## 5.2. Magnet Resistance\n",
"\n",
"*ANALYSIS*:\n",
"\n",
"- Calculation of the busbar resistance as the slope of a linear fit of U,I curve obtained from the corresponding mean alues of the voltage and current\n",
"\n",
"*CRITERIA*:\n",
"\n",
"- Check if the busbar resistance is below 50 nOhm\n",
"\n",
"*GRAPHS*:\n",
"\n",
"- The busbar resistance, R\n",
"- The green box denotes the validity region of the busbar resostance (0, 50] nOhm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- RQD"
]
},
{
......
......@@ -242,15 +242,17 @@
# # RQD
u_res_rqd_nxcals_dfs = rqd_query.query_signal_nxcals(t_start, t_end, t0=t_start, system='LEADS', signal_names='U_RES', spark=spark)
u_hts_rqd_nxcals_dfs = rqd_query.query_signal_nxcals(t_start, t_end, t0=t_start, system='LEADS', signal_names='U_HTS', spark=spark)
tt891a_rqd_nxcals_dfs = rqd_query.query_dfb_signal_nxcals(t_start, t_end, system='LEADS_WINCCOA', signal_names='TT891A', spark=spark)
tt893_rqd_nxcals_dfs = rqd_query.query_dfb_signal_nxcals(t_start, t_end, system='LEADS_WINCCOA', signal_names='TT893', spark=spark)
# # RQF
u_res_rqf_nxcals_dfs = rqf_query.query_signal_nxcals(t_start, t_end, t0=t_start, system='LEADS', signal_names='U_RES', spark=spark)
u_hts_rqf_nxcals_dfs = rqf_query.query_signal_nxcals(t_start, t_end, t0=t_start, system='LEADS', signal_names='U_HTS', spark=spark)
tt891a_rqf_nxcals_dfs = rqf_query.query_dfb_signal_nxcals(t_start, t_end, system='LEADS_WINCCOA', signal_names='TT891A', spark=spark)
tt893_rqf_nxcals_dfs = rqf_query.query_dfb_signal_nxcals(t_start, t_end, system='LEADS_WINCCOA', signal_names='TT893', spark=spark)
rq_analysis = RqCircuitAnalysis(circuit_type, pd.DataFrame(), is_automatic=True)
timestamp_dct = {'FGC_RQD': timestamp_fgc_rqd, 'FGC_RQF': timestamp_fgc_rqf, 'PIC_RQD': timestamp_pic_rqd, 'PIC_RQD': timestamp_pic_rqd, 'EE_RQD': timestamp_ee_rqd, 'EE_RQF': timestamp_ee_rqf}
```
......@@ -641,11 +643,33 @@
RqCircuitAnalysis.assert_u_hts_min_max_value(u_hts_rqd_nxcals_dfs+u_hts_rqf_nxcals_dfs, value_range=(-0.5e-3, 0.5e-3))
```
%% Cell type:markdown id: tags:
## 8.3. DFB Temperature - TT891A.TEMPERATURECALC
## 8.3. DFB Temperature - TT893.TEMPERATURECALC
*CRITERIA*:
- Check if the temperature is over the dew point, but not overheated -> 280 K < TT893 < 320 K, even without current
*GRAPHS*:
- Temperature at the top of the current lead on the right axis, TT893.TEMPERATURECALC
- Green box denotes the temperature validity region [280, 320] K of the temperature at the top of the current lead
- t = 0 s corresponds to the start time of the test
%% Cell type:code id: tags:
``` python
if t_pnob3 > 1800:
RqCircuitAnalysis.assert_tt893_min_max_value(tt893_rqd_nxcals_dfs+tt893_rqf_nxcals_dfs, value_range=(280, 320))
```
%% Cell type:markdown id: tags:
## 8.4. DFB Temperature - TT891A.TEMPERATURECALC
*CRITERIA*:
- Check if the temperature is regulated around 50 K -> 46 K < TT891A < 54 K, even without current
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment